İçindekiler:

Comunicação IoT Com a Dragonboard 410C: 5 Adım
Comunicação IoT Com a Dragonboard 410C: 5 Adım

Video: Comunicação IoT Com a Dragonboard 410C: 5 Adım

Video: Comunicação IoT Com a Dragonboard 410C: 5 Adım
Video: Qualcomm launches its premium 820E embedded platform for IoT developers 2024, Temmuz
Anonim
Bir Dragonboard 410C ile İletişime Geçin IoT Com
Bir Dragonboard 410C ile İletişime Geçin IoT Com

Bu, en basit şekilde, en iyi şekilde, en iyi şekilde, IoT para a sua casa için karşılaştırmalı ürünler. Abrir uma cortina, ligar uma tomada, ajustar a temperatura de um Environmente, monitöramento de segurança, entre outros yararları de ekipman IoT.

Agora, diziler arası dönüştürücü esses uyarılar das "coisas" da sua casa, em solicitações de serviço, e ainda melhor, em serviços que você conhece e que já está acostumado. O ticari "zé da agua" não tem condições de entrar num grande pazaryeri para satıcısı bir sua gua e tão pouco ter recursos para talepler e manter um sistema de pedidos.

Para que você, serviços como o do seu 'Zé da água', que você semper confiou, será mostrado como montar bir temel de uma plataforma IoT com a dragonboard, para çözücü essa comunicação kullanın.

Adım 1: Bir Sua Dragonboard 410C hazırlayın

Bir Sua Dragonboard 410C hazırlayın
Bir Sua Dragonboard 410C hazırlayın

Neste passo vamos bir nossa Drabonboard 410C para se tornar o ağ geçidi ve nossa estrutura IoT dentro da sua casa hazırlar.

Primeiramente, vamos instalar um sistema operasyonel ve placa. GPS, isteğe bağlı yerelleştirme, herhangi bir anlık kayıt gerektirmeyen, herhangi bir anlık kayıt gerektirmeyen, sistematiği kontrol eden Linaro 17.04.1, sistem kontrolü, Dragonboard 410C ve 96board'ları çalıştırma olarak veja, dahili bağlantı.

GPIO'lar ve Dragonboard 410C'nin kullanımı için bir kitaplık kütüphanesi kurun. Para isso, você deve seguir os passos abaixo (abra o konsolun seu sistema operacional para executar os comandos):

Ön koşullar libmraa

  • sudo apt-get güncellemesi
  • sudo apt-cache arama pcre
  • sudo apt-get install libpcre3-dev
  • sudo apt-get kurulum git
  • sudo apt-get install cmake
  • sudo apt-get install python-dev
  • sudo apt-get kurulum swig

yükleniyor

  • sudo git klonu
  • sudo mkdir mraa/build && cd $_
  • sudo cmake.. -DBUILDSWIGNODE=KAPALI
  • sudo yapmak
  • sudo kurulum yap

Python için bir biblioteca com'da para utilizar, que é o caso deste Instructable, Python'u biblioteca için dışa aktarma ve dışa aktarma ek olarak. Para isso, o editör de texto de sua tercih edilen esancia para seguir os passos abaixo, vamos utilziar o VIM kullanın:

  • sudo vim ~/.bashrc
  • pressione a teclar i, para iniciar a edição do arquivo
  • adicionar ve linha seguinte son bir arquivo yapmak yok: export PYTHONPATH=$PYTHONPATH:$(dirname $(find /usr/local -name mraa.py))
  • pressione ESC para sair da edição do arquivo e digite ':x!' e para salvar e sair do arquivo girin.

Com isso já conseguimos, bir biblioteca mraa com Pyhton'dan yararlanır.

Agora, vamos instalar os yazılımları para facilitar ve leitura do GPS (lembrnado que para a utilização dessa parte, önerilen sistema işletim sistemi Linaro 17.04.1).

sudo apt-get install gnss-gpsd gpsd gpsd-clients

Para testar, o código abaixo'yu çalıştır, também no seu konsolu:

gpsmon –n

OBS: Drabonboard é para ser utilizada fora de case e em locais mais abertos için dahili bir anten. Aberto'nun yerini belirleme, en son 5 dakikada 10 dakika, en az ilk kez bilgilendirici olarak.

Pensando no projeto, com certeza iremos enkapsüler o(lar) donanım(lar) num case, e no menor dos cenários, este case estará dentro de uma casa ou apartamento. Para çözücü, podemos utilizar antenas externas, tanto para wi-fi, quanto para o GPS.

OBS: Antenin harici olarak değil, en basit şekilde, en basit şekilde, şu anda aşina olunan prosedürlerle ilgili olarak, SMD, portanto, satın almanın en gerekli hizmeti alması.

Gerçekleştirme veya değiştirme, harici antenler arasında geçiş yapmak için, herhangi bir belge bağlantısı yok.

OBS: İnternet için gerekli tüm bileşenleri (kapasitörler, dirençler ve indüktörler) uygun hale getirin. O mesmo para antenler, SmartCore'da hiçbir siteden daha fazla sugerimos.

Para que nosso ağ geçidi, özel koşullara bağlı değildir ve yapılandırmaya bağlı değildir, wifi, internet, iremos kullanımı ve GSM modülleri. Dragonboard 410C'nin temel gereksinimleri, gereksinimleri ve spesifikasyonları, GSM harici cihazlarının işletimi.

GSM (ATENÇÃO COM A POLARIDADE) için en iyi adım, en iyi ve en iyi hizmetler için geçerlidir.

Bir Dragonboard 410C ortak erişim noktası tanımlayın ve bir Dragonboard 410C ortak erişim noktası tanımlayın. Vamos instalar o yazılım Mosquitto para tornar a nossa placa um broker mqtt, com a execução da linha abaixo hiçbir seu konsolu:

sudo apt-get kurulum sivrisinek

Com isso veya yazılım güncellemeleri yükleme ve yükleme.

Bir Dragonboard 410C ortak erişim noktası, siga os passos tanımlayın:

  • Klik hiçbir ikona de redes no canto aşağı direito
  • Clique em 'Bağlantıları düzenle'
  • Após abrir bir tela 'Ağ bağlantıları', klik em 'Ekle'
  • Seçici Wi-fi, e klik em 'Oluştur'
  • Ao abrir bir tela de configuração da rede, insira um nome em SSID
  • Na mesma tela mude para 'Hotspot', kampo yok 'Mod'
  • Caso queira, yeniden yapılandırma, yapılandırma ve 'Wi-fi Güvenliği' dahil
  • Para finalizar kliği em 'Kaydet'

Dragonboard 410C'nin, yayımcı ve yayımcıların kullanımından yararlanmaya yönelik agora niteliği.

Kom estes preparos acima, estamos prontos para seguir com o desenvolvimento.

2. Adım: Bir Sua Cloud API'si hazırlayın

Projeler için gerekli olan her şeye bağlıdır. Pode ser que hassas ser feita do sıfır, ou o o o cloud já com bir gereklilik de criar o mecanismo de API, ou até mesmo já ter uma API pronta para utilizar.

Açıklama API'sini temel alır, doğrudan talimat verilebilir. Caso queira seguir um öğretici mais tamamlandı, sugiro ver o artigo deste link. İşlemler için oyun, reklamları değiştirme planı oluşturma, son değerlendirmeler için kampanyalar ve reklamlar.

Primeiramente, precisamos de um lugar para colocarmos ve nossa API, e para não termos gastos com estes testis, iremos uilizar ve plataforma Heroku. Siga os passos para iniciar a sua aplicação:

  • Heroku sitesine erişim, por este bağlantısı
  • Clique em 'Kayıt Ol', hiçbir canto superior dieito, para iniciar o seu registro
  • Kayıt ol, em sua kontrol paneli, clique em 'New' ve escolha a opção 'Create New App'
  • Insira um nome para bir sua aplikação
  • Em seguida, klik em 'Uygulama Oluştur'
  • Seu app está pronto, podendo ver seu funcionamento clicando em 'Açık Uygulamayı', hiçbir canto üstün dirento
  • Instale o Heroku Cli, para fazer os, para a aplicação, seguindo a instrução para seu operasyonel sistema, de acordo com a documentação deste bağlantı dağıtıyor
  • Agora ses deverá seguir, API, disponível em

Seguindo os passos acima, já máquina için bir makarna, bir sua API ile desenvolver para. Agora vamos instalar o NodeJS ve bir çerçeve Express, seguindo os passos abaixo:

  • curl -sL https://deb.nodesource.com/setup_11.x | sudo -E bash -
  • sudo apt-get install -y düğümleri
  • sudo apt-get install npm
  • Linux kullanımı için mevcut değildir o Gelişmiş Paketleme Aracı (APT), işletim sistemi dışı, danışma veya bağlantı
  • Agora, npm install express-generator -g'yi yürütür
  • Heroku com 'cd _PASTA_SEU_APP_' için erişimin sağlanması
  • Bir uygulama düğümü com 'npm init', e os outros comandos abaixo
  • cd../
  • ekspres _PASTA_SEU_APP_
  • cd _PASTA_SEU_APP_
  • npm kurulumu

Para deixar dois bitiş noktaları hazırlıkları, um de GET e um de POST, siga os passo abaixo:

  • Bir makarna 'rotalarına' erişin
  • abra veya arquivo 'index.js'
  • Abaixo o trecho de código abaixo, que iraiz ek olarak rotas na raiz da sua aplikasyon para os dois métidos (GET e POST):

router.get('/', function(req, res, next) { res.setHeader('Content-Type', 'application/json'); res.send(JSON.stringify({ msg: 'Merhaba API'}, null, 3)); });router.post('/', function(req, res, next) { var msg = 'empty'; if(req.body.msg != 'tanımsız') msg = req.body.msg; res.setHeader('Content-Type', 'application/json'); res.send(JSON.stringify({ msg: msg}, null, 3)); });

Agora você, bir Heroku uygulaması için konuşlandırmayı gerçekleştirir:

  • heroku girişi
  • git ekle.
  • git commit -am "ilk taahhüt"
  • git heroku ustasını itin

Testes prontos ile ilgili son noktalarla iletişim kurun. Para tester os uç noktaları sugerimos instalar o yazılım Postman, iç içe bağlantı. Insira bir url da seu uygulaması (Ör: https://_SEU_APP_.herokuapp.com/) e seçim veya yöntem POST OLUN, e klik em 'GÖNDER'. Para o método POST, siga os passos:

  • Clique na aba 'Vücut'
  • Selecione ve opção 'x-www-form-urlencoded
  • Insira o tuşu 'mesaj'
  • Em Value, pode inserir qualquer mensagem

Kullanım talimatları, bir nossa API de testies pronta para o uso.

Adım 3: Installo E Manipulando O Modulo GSM

Instalando E Manipulando O Modulo GSM
Instalando E Manipulando O Modulo GSM
Instalando E Manipulando O Modulo GSM
Instalando E Manipulando O Modulo GSM

Para değil Wifi, iletişimden yararlanan bir GSM hizmetinden yararlanın, API'den yararlanın, ön adım yok.

SIM800L modülleri, modülleri, modülleri ve modülleri için bir kontrol sağlar. En iyi modulo foi produzido ve distribuído em Massa pelo fabrikasyon, büyük sem qualquer homologação, tanto que não está disponível hiçbir site yapmak fabrikasyon.

Dragonboard 410C ve GSM modüllerinin giriş ve çıkışları.

Como mencionado adım yok 'Bir sua Dragonboard hazırlayın', teremos que düzenli bir tensão para utilizar o modulo. Para isso utilizaremos um regulador de tensão, geri çekilme, para tensão de entrada. Utilizamos veya Regulador De Tensão Stepdown Buck Conversor Dc Lm2596 3a Nf, para este teste

Siga os passos abaixo para realizar olarak conexões fisicas:

  • Dragonboard'da olumlu bir durum, como ilustrado adım yok 'Dragonboard hazırla', 'IN +' ile ilgili düzenlemelerin yapılması
  • Dragonboard'la ilgili olumsuz bir yorum yapın, como ilustrado adım yok 'Bir Dragonboard hazırla', e bağlantı 'IN -' tensão do regulador de tensão
  • ÖNEMLİ: Ligue a Dragonboard, e com o auxilio de uma chave de fenda, regule o trimpot para que a saída (OUT + e OUT -) tenha 4.2V. Siga adiante apenas se a saída estiver com esse valor. Caso seja, GSM modülo dışından yararlanır, yeterli olup olmadığı doğrulanır. Este passo deve ser repetido, semper que houver dahil olmak üzere tüm donanım, pois pode haver değişkenleri.
  • 'Çıkış +' pino VCC yok, en uygun adımın göstergesi
  • Bir saída do regulador de tensão 'OUT -' pino GND yok, adımın en iyi göstergesi
  • Conecte o pino RXD modülo GSM no pino 5 UART 0 TX da Dragonboard, ambos indicados nas imagens de capa deste adım
  • Conecte o pino TXD do modulo GSM pino yok 7 UART 0 RX da Dragonboard, ambos indicados nas imagens de capa deste adım
  • GND ve pino GND modülo GSM pino yok 1, 2, 39 OU 40 GND da Dragonboard, ambos indicados nas imagens de capa deste adım. RX TX için temel para istikrarını sağlamak

OBS: Herhangi bir modülolu olmayan anten anteni yok, pelos pinos NET veya IPX ANT, adım adım görüntü göstergesi.

Agora vamos ao yazılımı. Bir Dragonboard 410C modülo GSM ve bir iletişim seri girişi, bir biblioteca mraa que instalamos anteriormente, para realizar a comunicaçao 'dan yararlanır.

Siga os passos para importar a biblioteca e testar a comunicação com o módulo:

  • .py, 'gsm.py' adresinden bilgi alın
  • Arquivo yok, inicie importando a biblioteca mrra, e também a biblioteca time para definir gecikmeler

ithalat mraa

UART ve modülo GSM için çeşitli değişkenlerin tanımlanması

bağlantı noktası = '/dev/tty96B0'

Instancie a UART com ajuda da biblioteca mraa

uart = mraa. Uart(port)

Enviar para os comando AT para o modulo GSM için ağla

tanım yaz(mesaj):

uart.write(bytearray(str(msg)+'\n', 'utf-8'))

Crie um loop para fazer bir leitura do modulo GSM

while True: r = uart.read(128) if r != '': print(r.decode('UTF-8')) i = str(input()) write(i) time.sleep(0.5)

  • Salve o arquivo e volte para o konsol
  • Arquivo'yu yürüt

piton gsm.py

Digite 'AT', e se tudo conectado corretamente, você irá receber na tela a mensgem 'OK'

Para que nosso módulo não di digitarmos cada comando AT - encontrados iç bağlantı - faremos duas funções, uma que lár ve conexão com bir APN ve outra que irá bir nossa API tüketir.

Bir primeira função será de conexão:

def connect():

time.sleep(0.5) write("AT") time.sleep(0.5) write('AT+CREG=1') time.sleep(0.5) write('AT+COPS=2') time.sleep(0.5) write('AT+SAPBR=3, 1, "Contype", "GPRS"') time.sleep(0.5) write('AT+SAPBR=3, 1, "APN", "*****"') time.sleep(0.5) write('AT+SAPBR=3, 1, "KULLANICI", "*****"') time.sleep(0.5) write('AT+SAPBR=3, 1, "PWD", "*****"') time.sleep(0.5) write('AT+SAPBR=1, 1') time.sleep(0.5) write('AT+SAPBR=2, 1') time.sleep(6)

Sugiro que bindi cada comanda antes de utilizar esta função. Segue alguma gözlemleri, sobre estes comandos:

  • AT+COPS'un geçerliliğini doğrulamak için para tanımla Após veya komando AT_COPS=?
  • APN'nin en iyi tanımlı işletim sistemleri, SIM Kart'ın kullanımına bağlı olarak, APN'nin kullanımına ilişkin bir operatör para saber niteliğine sahip bir operatör satın al, enformasyon hizmetini satın al.
  • que a cada'yı tamir et

Agora vamos, bir nossa API'sini tüketmek için bir função que irá enviar uygular:

def gönder(p, m, d=''):

write('AT+HTTPINIT') time.sleep(0.5) write('AT+HTTPSSL=1') time.sleep(0.5) write('AT+HTTPPARA="CID", 1') time.sleep(0.5) write('AT+HTTPPARA="URL", "_URL_APP_HEROKU_/'+p+'"') time.sleep(0.5) write('AT+HTTPPARA="USERDATA", "Yetkilendirme: Taşıyıcı ******** *********\r\n"') time.sleep(0.5)if m == 'GET': write('AT+HTTPACTION=0')else: write('AT+HTTPPARA) ="CONTENT", "application/x-www-form-urlencoded"') time.sleep(0.5) write('AT+HTTPDATA='+str(len(d))+', 10000') time.sleep(0.5) write(str(t)) time.sleep(10) write('AT+HTTPACTION=1') time.sleep(6)write('AT+HTTPTERM')

Segue alguma gözlemleri para estes comandos:

  • Bir função rebe 3 parametre. API'nin 'p' para o yolu que executado da sua API, 'm' para o método que você irá utilizar da sua api (GET/POST/…), e 'd' para os dados enviados em caso do metodo não GET için
  • O comando 'AT+HTTPS' isteğe bağlı, hiçbir caso da sua api kullanımı yok SSL
  • O argümano 'm' deverá ser enviado hiçbir formato sorgulama dizgisi (Örn: msg=ola+dragonboard&arg2=teste&…)
  • O comando 'AT+HTTPPARA="USERDATA…' isteğe bağlı, apenas se houver bir gereklilik definir algum başlığı talep yok

Daha fazla bilgi için lütfen kontrol edin.

SIM Kart'ın en önemli özellikleri, GSM teknolojisinin tüm modülleri ile ilgili bir operadora danışın.

Dragonboard 410C'de yapılandırmalar ve uygulamalar olarak iletişim, temel bilgiler, iletişim bilgileri ve iletişim bilgileri Dragonboard 410C.

Adım 4: Hazırlama Dispositivos Para Se Comunicar Com a Dragonboard

Preparando Dispositivos Para Se Comunicar Com a Dragonboard
Preparando Dispositivos Para Se Comunicar Com a Dragonboard

Neste passo, iremos, bir placa de prototipagem NODEMCU ESP8266 ESP-12, ortak kullanım örneği kullanır. Proto e qualquer, prototipagem dışında, como o nome já diz, é ótima para protótipos, tanımlı como produto için hiçbir momento emque o donanımı, deve ser desenvolvido um komplekso dedicado. Este módulo já possui WiFi, en iyi iletişim araçları.

Para nos comunicarmos com a nossa Dragonboard 410C, precisamos de 2 bibliotecas:

  • ESP8266WiFi > biblioteca para ativar ve conexão da placa
  • PubSubClient > MQTT komisyoncusu için bir comunicação comunicação comunicação biblioteca para realizar

Dünyanın her yerinde geçerli bir Wi-fi aracısı olarak, Dragonboard 410C:

  • const karakter* SSID = "_REDE_DRAGONBOARD_"; // Dragonboard ile Bağlantı Noktası
  • const karakter* ŞİFRE = ""; // Hotspot'u yapılandırmak için tanımla
  • const char* ARACI = "_IP_DRAGONBOARD_"; // 'ip a' na sua Dragonboard para descobrir o ip da rede interna yürütün

İstemci MQTT'nin en büyük nesnesi:

  • WiFiClient espWIFI;
  • PubSubClient MQTT(espWIFI);

Kurulum, WIFI bağlantısı ve MQTT bağlantısı:

  • WiFi.begin(SSID, ŞİFRE);
  • MQTT.setServer(ARACI, 1883);
  • MQTT.setCallback(callback_mqtt); // Caso você faça abone ol em algum tópico

Hiçbir sua função de loop, adicione a linha abaixo para que o MQTT giriş döngüsü yok:

MQTT.loop();

Wi-Fi'yi en iyi şekilde kullanmak için bir komisyoncu, para não ter problemas com intermitência. Para isso crie um função com as abaixo, e chame-a na função de loop:

geçersiz checkConnections(){

if (!MQTT.connected())while (!MQTT.connected());

if (WiFi.status() != WL_CONNECTED){WiFi.begin(SSID, PASSWORD);while (WiFi.status() != WL_CONNECTED);}

}

E finalmente, iremos enviar algum dado para a Drabonboard 410C, com o seguinte comando:

MQTT.publish('_NOME_DO_TOPICO_', "Ola Dragonboard");

Donanımla ilgili herhangi bir projede ve donanımda farklı değişkenler için hiçbir örnek yoktur. Temel ihtiyaçlar, bir seu komisyoncusu için en iyi koşullar dahil.

Dragonboard410C, python'u test etmek için en iyi araçlardan biri. Para isso, Dragonboard 410C'de konsol olmadan linhas abaixo olarak yürütülür:

  • sudo apt-get install python pip
  • pip kurulumu paho-mqtt

Agora vamos criar um arquivo piton com o nome, como exemplo, mqtt.py. Nele vamos tanımlı algumalar funções que serão expplicadas bir seguir:

paho.mqtt.client'i mqttimport sys olarak içe aktar

Aracı = "_IP_DRAGONBOARD_" bağlantı noktası = 1883 zaman aşımı = 60 TopicSubscribe = "_MESMO_TOPICO_DISPOSITIVO_EXTERNO_"

def onConnect(client, userdata, flags, rc): client.subscribe(TopicSubscribe)

def onMessage(client, userdata, msg): mesaj = str(msg.payload) print(message)

deneyin: client = mqtt. Client() client.on_connect = onConnect client.on_message = onMessage client.connect(Aracı, bağlantı noktası, zaman aşımı) client.loop_forever() hariç: sys.exit(0)

Neste arquivo vamos funções, bir 'onConnect' sorgusu için herhangi bir momento em que houver conexão com o broker, e bir função 'onMessage' e bir função executada quado houver mensagem recebida nos 'bağlantılı' hiçbir şey abone değil.

'Python mqtt.py' yürütme veya yürütme, e se todas olarak conexões olarak öncekiler, sido realizadas com sucesso, você receberá na sua tela os dados que estão 'in enviados pelo seu dispositivo externo, hayır externo, hayır.

Not que é na função onMessage, que rebemos bir bilgilendirici ve exibimos nos seu konsolu. Então e ponto que tratará os dados, hiçbir anlık certo, hiçbir anlık sertifika, GSM para a sua API, gsm.py için 'gönderme', herhangi bir geçiş 'Instalando e manipulando modu' aracılığıyla 'gönder'.

Önemli gözlemler: NODEMCU ESP8266 ESP-12, özel gereksinimler, belgeler için danışma veya belgeleme bağlantısı. En iyi an, en basit şeyler, en yeni ve en önemli nokta, en erken, en erken ve en erken dönemde yaşanan gelişmeler.

Adım 5: Finali Düşünün

Ön tanımlı adımların yanı sıra, önceki adımların yanı sıra, IoT iletişim ve diğer tüm donanımların iletişim bilgilerinin yanı sıra Dragonboard 410C'nin de en önemli özellikleri.. API Cloud, Dragonboard'da donanım ligadosları için tekrarlamalar ve işletim sistemleri, harici, yapılacaklar ve uygulamalar için hazırlık ve uygulama gerektirmez. Para tanımlı como produto final, sugerimos apĺicar as technologias ve procedimentos aequados para tal olarak

O uso de gestasyonel uygulamalar, para os commerciantes ligados aos serviços, deixamos em aberto também, bastando trabalhar bem a sua API, ve bir tüketim através destas frentes.

Önerilen: