Sadržaj:

Comunicação IoT Com a Dragonboard 410C: 5 koraka
Comunicação IoT Com a Dragonboard 410C: 5 koraka

Video: Comunicação IoT Com a Dragonboard 410C: 5 koraka

Video: Comunicação IoT Com a Dragonboard 410C: 5 koraka
Video: Обзор и конфигурация модуля EBYTE LoRa 2024, Juli
Anonim
Comunicação IoT Com a Dragonboard 410C
Comunicação IoT Com a Dragonboard 410C

É bastante comum desenvolver ou, até mesmo, uporedite proizvod IoT za svaki slučaj. Abrir uma cortina, ligar uma tomada, ajustar a temperature of um ambiente, monitoring of segurança, entre out Benefitcios of equipamentos IoT.

Agora, seria interessante transformator esses alertas 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 comerciante "zé da água" não tem uvjeti za ulazak na najveće veliko tržište za prodavače sua água e tão pouco ter recursos para adquirir i manter u sistemu pedidos.

Para que você koristi usluge como o do seu 'Zé da água', que você semper confiou, será mostrado como montira bazu iz uma plataforma IoT com a dragonboard, paralelno za rješavanje essa comunicação.

Korak 1: Pripremite Sua Dragonboard 410C

Pripremite Sua Dragonboard 410C
Pripremite Sua Dragonboard 410C

Ne možete da pripremite nossa Drabonboard 410C za tornar ili gateway da biste uspostavili IoT destrukciju za svoju kuću.

Primarno, možete instalirati operativni sistem na placu. Možete koristiti opciono korištenje lokalizacije GPS -a, ako želite promijeniti podatke o klijentu bez registracije, možete instalirati operativni sistem Linaro 17.04.1, upravljački program, kao opcije na stranici za Dragonboard 410C do 96 ploča, neste link.

Instalirajte do operativnog sistema, instalirajte biblioteku biblioteke za korištenje GPIO -a, za Dragonboard 410C. Para isso, você deve seguir os passos abaixo (abra o console do seu sistema operacijski za izvršnog komandanta os comandos):

Pré requisitos libmraa

  • sudo apt-get update
  • sudo apt-cache traži pcre
  • sudo apt-get install libpcre3-dev
  • sudo apt-get install git
  • sudo apt-get install cmake
  • sudo apt-get install python-dev
  • sudo apt-get install swig

Instalação mraa

  • klon sudo git
  • sudo mkdir mraa/build && cd $ _
  • sudo cmake.. -DBUILDSWIGNODE = OFF
  • sudo make
  • sudo make install

Para utilizar a biblioteca com Python, que é o caso deste instructable, vamos adicionar or export da nossa variavel de ambiente do Python para biblioteca. Para isso, use of editor de texto de sua preferência para seguir os passos abaixo, vamos utilziar o VIM:

  • sudo vim ~/.bashrc
  • pressione a teclar i, para iniciar a edição do arquivo
  • dodatak i linga seguinte no final do arquivo: export PYTHONPATH = $ PYTHONPATH: $ (dirname $ (find /usr /local -name mraa.py))
  • pressione ESC para sair to edição to arquivo e digite ': x!' e enter para salvar e sair do arquivo.

Com isso já conseguimos use a biblioteca mraa com Pyhton.

Agora, možete instalirati softver za omogućavanje pristupa GPS -u (potrebno je pokrenuti i upotrijebiti dessa parte, preporučiti ili upotrijebiti operativni sustav Linaro 17.04.1). Nema konzole, izvršite ili započnite abaixo:

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

Za testiranje, izvedite código abaixo, também no seu console:

gpsmon –n

OBS: A antena interna da Drabonboard je para sertificirana za slučajeve i lokacije lokalizirane. Até mesmo em locais abertos, leitura pode demorar de 5 and 10 minutos, então não fique preocupado se não exibir as informações prontamente.

Pensando no projeto, com certeza iremos encapsular o (s) hardware (s) num case, e menor dos cenários, este case estará dentro de uma casa ili apartamento. Za razlučivanje, podešavanje korištenja antenskih vanjskih priključaka, tanto za wi-fi, kvantno za GPS.

OBS: Instalacija da se vanjska antena ne instalira, niti da se izvrši jednostavna procedura za upoznavanje sa poznatim procesima za prodaju SMD -a, portanta, nabavke usluge za posebne potrebe koja se mora specijalizirati.

Da biste realizirali ili prebacili do das antenas internas para eksterne, potrebno je osigurati postupke za Qualcomm -ovu disponibilizaciju bez dokumenta na desnoj vezi.

OBS: Éto mu je osnovno okruženje sa komponentama (kapaciteti, otpornici i induktori) na Internetu koje ne emituju. O mesmo para antenas, que sugerimos and compra no site da SmartCore.

Za pristup nosso gateway -u, zavisno od konfiguracije uma i e -koneksnog wifi -a, interneta, iremosa za korištenje GSM -a. Ako koristite GSM eksterne uređaje, bit će vam neophodni zahtjevi za poboljšanje kvalitete especifikovanja, a sve u skladu s uputama za prehranu u Dragonboard 410C.

Na slici do mogućnosti deste korak, estão destacados os pontos de saida que deverá ser se koristi za soldagem dos cabos za alimentação do modulo GSM (ATENÇÃO COM A POLARIDADE).

Za realizaciju zajedničke interne komunikacije, korištenja protokola MQTT -a, i definitivno zajedničke žarišne točke Dragonboard 410C. Instalirajte softver za softver Mosquitto za tornar i instalirajte broker mqtt, izvršite da linha abaixo nema seu konzolu:

sudo apt-get install mosquitto

Com isso o softveru za instalaciju i ativo softvera.

Da biste definisali Dragonboard 410C kao hotspot, pogledajte i:

  • Clique no icone de redes no canto inferior direito
  • Klikni na 'Uredi veze'
  • Após abrir a tela 'Network connections', kliknite na 'Add'
  • Odaberite i odaberite Wi-Fi i kliknite "Kreiraj"
  • Ao abrir a body de configuração to rede, uvid u naziv sa SSID -om
  • Na mesma tela mude za 'Hotspot' bez campo 'Mode'
  • Caso queira uključuje uma senha para rede, konfigurirajte na "Wi-Fi Security"
  • Para finalizar clique em 'Save'

Agora qualquer dispozitivo podešava konektar za ponovno isključivanje Dragonboard 410C, koji koristi seu brokera za javni i podizvođač.

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

Korak 2: Pripremite Sua Cloud API

Este passo é algo que depende muito de projeto para projeto. Podesite precizan ser feita do nule, ili u oblaku postoji postojeća potreba za criar -om o mekanizmu API -ja, ili o mesmo jma terma API -ju za korištenje za korištenje.

Vamos descrever um passo a passo para iniciar uma API básica, pelo menos para o teste deste instructable. Caso queira seguir um tutorial je dovršen, sugiro ver o artigo deste link. Em todo caso, sugiro desenvolver algo mais estruturado, caso a finalidade do projeto seja comercial.

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

  • Na web stranici Heroku možete pronaći link
  • Kliknite na "Sign Up", nema canto superior dieita, za početak ili registraciju
  • Após o registro, em sua dashboard, kliknite na "New" e escolha and opção "Create New App"
  • Insira um nome para a sua aplicação
  • Em seguida, click the "Create App"
  • Seu app está pronto, podendo ver seu funcionamento clicando em 'Open App', no canto superior dirento
  • Instalirajte Heroku Cli, za pokretanje fazera kao odgovarajuću aplikaciju, osigurajte uputstva za rad u operativnom sistemu, de acordo com a Documentação deste link
  • Agora você deverá seguir as instruções de deploy para começar or desenvolvimento da sua API, disponível em

Seguindo os passos acima, já temos a paste on sua máquina, para desenvolver and sua API. Agora vamos je instaliran na NodeJS -u i okvirnom Express -u, a zatim pročitajte sljedeće:

  • curl -sL https://deb.nodesource.com/setup_11.x | sudo -E bash -
  • sudo apt -get install -y nodejs
  • sudo apt-get install npm
  • Kako ne biste koristili distribuciju Linuxa za Linux ili Advanced Packaging Tool (APT), ili izvan operativnog sistema, konsultujte se o linku
  • Agora izvršava npm install express -generator -g
  • Acesse ili diretório que foi realizado osprocesos da aplicirate na Heroku com 'cd _PASTA_SEU_APP_'
  • Inicirajte aplikacijski čvor sa 'npm init', e os outros comandos abaixo
  • cd../
  • izraziti _PASTA_SEU_APP_
  • cd _PASTA_SEU_APP_
  • npm install

Para deixar dois endpoints Preparados, um de GET e um de POST, siga os passo abaixo:

  • Acesse tjestenine 'rute'
  • abra o arquivo 'index.js'
  • Uključujući trecho de código abaixo, que irá adicionar as rotas na raiz da sua aplicação para os dois métidos (GET e POST):

router.get ('/', funkcija (req, res, next) {res.setHeader ('Content-Type', 'application/json'); res.send (JSON.stringify ({msg: 'Hello API'}), null, 3));}); router.post ('/', funkcija (req, res, next) {var msg = 'prazno'; if (typeof req.body.msg! = 'undefined') msg = req.body.msg; res.setHeader ('Content-Type', 'application/json'); res.send (JSON.stringify ({msg: msg}, null, 3));});

Agora você shvati o implementaciji seu aplikacije za Heroku:

  • heroku login
  • git add.
  • git commit -am "početno urezivanje"
  • git push heroku majstora

Com isso você já tem seus endoints de testtes prontos. Za provjeru krajnjih točaka, instalirajte softver Postman, neste link. U url da seu aplikaciju (npr.: https://_SEU_APP_.herokuapp.com/) i odaberete o metodi DOBIJITE POST, ili kliknite na dugme "SEND". Para o metodi POST, siga os passos:

  • Clique na aba 'Body'
  • Odaberite i 'x-www-form-urlencoded opcão'
  • Unutar ključa 'msg'
  • Em Value, podeseri quarquer mensagem

Com essas instruções temos a nossa API de testes pronta para o usso.

Korak 3: Instalando 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

Ako ne morate ovisiti o umreženom konektu Wi -Fi, možete koristiti komunikacijski GSM za pristup kameri bez upotrebe API -ja za nossa, konfiguriran bez koraka unaprijed.

Ako se upotrijebi modularni GSM homologados, većina parametara testiranja ne koristi nikakvu prototiku za korištenje jednostavnih i jednostavnih zahtjeva, niti modularnih SIM800L. Ovo modulo za proizvodnju i distribuciju em massa pelo fabricando, mas sem qualquer homologação, tanto que não está disponível no site do fabricando.

Vamos às conexões físicas, entre modulo GSM and nossa Dragonboard 410C.

Kao način bez koraka „Pripremite draagonboard“, morate redovito koristiti modularno. Para isso utilizaremos um regulalador de tensão silazi, para diminuir a tensão de entrada. Upotreba Regulatora De Tensão Stepdown Buck Conversor Dc Lm2596 3a Nf, para teste

Siga os passos abaixo para realizar as conexões físicas:

  • Spojite i postavite pozitivnu informaciju o Dragonboard -u, kao ilustraciju bez koraka 'Pripremite draagonboard', a na ulaznoj stranici 'IN +' do regulalador de tensão
  • Spojite negativnu informaciju o Dragonboard -u, kao ilustraciju bez koraka 'Pripremite dragonboard', ili na ulaz 'IN -' do regulalador de tensão
  • VAŽNO: Ligue a Dragonboard, e regulisati com o auxilio de uma chave de fenda, regulisati ili trimpot para que a saida (OUT + e OUT -) tenha 4.2V. Siga adiante apenas je a saida estiver com esse valor. Ovaj uređaj koristi van GSM modula, provjeravajući odgovarajuću adekvatnost. Ovo je još jedno ponavljanje, semper que houver uključuje hardver za um, a možete podesiti i varijacije.
  • Priključite i provjerite da li je "OUT +" bez pino VCC -a, što znači da je slika potrebna za korak
  • Priključite i saida do regulalador de tenens 'OUT -' bez pino GND -a, na slici do koraka
  • Priključak ili pino RXD radi po modulu GSM bez pina 5 UART 0 TX da Dragonboard, ambos indikatori nas slike sa mogućnostima koraka
  • Priključak ili pino TXD za modulo GSM bez pina 7 UART 0 RX za Dragonboard, ambos indikatori nas slike sa mogućnostima koraka
  • Priključci ili pino GND do modularnog GSM -a bez pinoa 1, 2, 39 OU 40 GND do Dragonboard -a, ambos označavaju slike sa sposobnim korakom. Isto é fundmental para estabilizar o tráfego de dados pelo RX TX

OBS: Ne morate da koristite povezivanje za antenu bez modularnog GSM -a, niti za NET ili za IPX ANT, što znači da je slika potrebna za korak.

Agora vamos ao softver. Vamos može koristiti biblioteku mraka za instalaciju prednjih instalacija, kako bi realizirao komunikacijski serijski unos po modulu GSM i Dragonboard 410C.

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

  • Crie um arquivo com a extensão.py, kao sugestão 'gsm.py'
  • No arquivo, inicie importando a biblioteca mrra, e também a biblioteca time para definir delay

import mraa

Definirajte varijabilne parametre o tome da UART povezuje modulo GSM

port = '/dev/tty96B0'

Instancie a UART com ajuda da biblioteca mraa

uart = mraa. Uart (port)

Crie uma função para enviar para os comando AT para modulo GSM

def pisanje (poruka):

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

Ova petlja je dostupna za modulo GSM

dok je 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 console
  • Execute o arquivo

python gsm.py

Digitalizirajte "AT", to je ispravno povezano, glasovni prijemnik na tijelu i muški "OK"

Para que nosso módulo não dependa de digitarmos cada comando AT - encontrados neste link - faremos duas funções, uma que irá realizar a conexão com APN e outra que irá consumir a nossa API.

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, "USER", "*****"') 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 rode cada comanda antes de utilizar esta função. Segue algumas observações sobre estes comandos:

  • Para definir corretamente o valor do comando AT+COPS, que serve para selecionar a sua rede, primeiro execute AT+COPS = ?, aguarde que apareça as redes disponíveis, e altere o valor na função connect () para o indexador da sua rede exibida após o comando AT_COPS =?
  • Komandosi koji definišu APN estão com asteriscos mogu zavisiti od operativnog sistema na SIM kartici, nabavite informator sa operatorom za sabljarnu kvalitetu ili dodatak za APN, koristite i senzirajte.
  • Popravite que a cada

Agora vamos implementator funkcionalno traži i koristi konzumiranje nossa API -ja:

def slanje (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", "Autorizacija: Nosilac ******** ********* / 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 algumas observações para estes comandos:

  • Função recebe 3 parametra. 'p' para o putanja za izvršavanje sua API -ja, 'm' za metodičko izvršavanje upotrebom da sua api (GET/POST/…), e 'd' para os dados enviados em caso do método não za GET
  • Komando 'AT+HTTPS' je opcionalno, nema mogućnosti da sua api koristi SSL
  • O argumentu 'm' deverá ser enviado bez formatiranog upita (npr.: msg = ola+dragonboard & arg2 = teste & …)
  • Komando 'AT+HTTPPARA = "USERDATA …' je opcionalno, apeni se nalaze ako je potrebno definitivno zaglavlje alguma bez zahtjeva

Mais uma vez sugiro rodar cada comando, individualmente e em ordem, antes da utilização.

Kako biste dobili dodatnu SIM karticu, obratite se operateru za razmjenu putem mesma tehnologije, modulom GSM -a, ali možete koristiti i SIM karticu za empirijsko usavršavanje, komunikaciju s IoT -om, zahtjeve za kompatibilnost ili prilagođavanje.

Com as konfiguracije i implementacije acima, estamos prontos para nos comunicarmos com a nuvem através da nossa Dragonboard 410C.

Korak 4: Pripremite Dispozitivos Za Se Comunicar Com Dragonboard

Pripremite Dispozitivos Za Se Comunicar Com a Dragonboard
Pripremite Dispozitivos Za Se Comunicar Com a Dragonboard

U ovom slučaju, iremos koristi protokolarnu stranicu NODEMCU ESP8266 ESP-12, kao primjer. Esta e qualquer outra placa de prototipagem, como o nome já diz, ótima para protótipos, mas no momento em que o hardware za definido como produto, deve ser desenvolvido um complexo dedicado. Ako želite koristiti WiFi, jednostavno omogućite komunikaciju.

Para nos comunicarmos com a nossa Dragonboard 410C, preuzmite 2 biblioteke:

  • ESP8266WiFi> biblioteca para ativar a conexão da placa
  • PubSubClient> biblioteca para realizar a comunicação com or broker MQTT

Definirajte različite varijante svijeta, kao što definirate Wi-Fi i posrednika, ambos da nossa Dragonboard 410C:

  • const char* SSID = "_REDE_DRAGONBOARD_"; // Ime i prezime za definisanje hotspota na Dragonboard -u
  • const char* PASSWORD = ""; // Insira o valor da senha se nalazi definitivno na konfiguraciji do hotspota
  • const char* BROKER = "_IP_DRAGONBOARD_"; // Izvršite 'ip a' na Dragonboard -u za descobrir o ip da rede interna

Crie o objeto de rede Wi-fi da placa i instanca o MQTT klijenta com objesto:

  • WiFiClient espWIFI;
  • PubSubClient MQTT (espWIFI);

Na funkciji postavljanja pokrenite zajednički WIFI i komunikacijski MQTT:

  • WiFi.begin (SSID, PASSWORD);
  • MQTT.setServer (BROKER, 1883);
  • MQTT.setCallback (callback_mqtt); // Caso você faça subscribe em algum tópico

Nema sua função de loop, dodaj linha abaixo para que o MQTT entre em petlji:

MQTT.loop ();

Você pode criar uma função de verificação de conexão de WIFI e broker, para não ter problemas com intermitência. Para isso crie um função com as linhas abaixo, e chame-a na função de loop:

void 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 Drabonboard 410C, com o seguinte comando:

MQTT.publish ('_ NOME_DO_TOPICO_', "Ola Dragonboard");

Ne unosite detalje o primjerima osjetljivosti i sl., Niti o različitim projektima za hardver i hardver. Ovo uključuje i linha i neophodne stavke, koje možete pronaći samo za seu posrednika.

Voltando para a nossa Dragonboard410C, vamos criar um arquivo teste em python, para checarmos os dados recebidos pelo broker, mas antes, vamos instalar uma biblioteca que nos auxiliará conexão do broker. Za izvršavanje kao Linhas Abaixo bez konzole za Dragonboard 410C:

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

Agora vamos criar um arquivo python com o nome, como exemplo, mqtt.py. Nele vamos definir algumas funções que serão explicadas a seguir:

uvoz paho.mqtt.client kao mqttimport sys

Broker = "_IP_DRAGONBOARD_" port = 1883 timeout = 60 TopicSubscribe = "_MESMO_TOPICO_DISPOSITIVO_EXTERNO_"

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

def onMessage (client, userdata, msg): message = str (msg.payload) ispis (poruka)

pokušajte: client = mqtt. Client () client.on_connect = onConnect client.on_message = onMessage client.connect (Broker, port, timeout) client.loop_forever () osim: sys.exit (0)

Niste arquivo vamos definimos duas funções, 'onConnect' que será chamada no momento em que houver conexão com o broker, a função 'onMessage' que será executada quando houver mensagem recebida nos pretplaćuje se definitivno na função 'onConnect'.

Izvršite arquivo com 'python mqtt.py', e vidite kako konexões anteriores estiverem sido realizadas com sucesso, glasovni prijemnik na sua tijela os dados que estão sendo enviados pelo seu dispositivo externo, no caso deste exemploU, pelo NOD.

Imajte na umu da ste u funkciji onMessage, da primate informacije i exibimos nos seu konzolu. Então é neste ponto que você tratará os dados recebidos e no momento certo, enviará via GSM for a sua API, pela função 'send' do seu arquivo de teste gsm.py, que criamos no passo 'Instalando e manipulando or modulo GSM'.

Upozorenje o važnosti: Za realizaciju i dodavanje hrane za NODEMCU ESP8266 ESP-12, posebnu specifikaciju, potrebno je konzultirati dokument o deste link. Muito cuidado neste momento, pois uma simples falha de inversão de polos pode queimar a placa, mas caso isso aconteça a boa noticia é que tem um preço que facilita a troca rapidamente.

Korak 5: Dovršite razmatranje

Sve je tudo konfiguracija kao što je descritos nos steps anteriores, você já está comunicando o seu dispozitivo IoT com o mundo, com auxilio da sua Dragonboard 410C. É važno ressaltar que neste instruktivne foram menciodos vários hardverski aparati, aparati, alati. Osjetnici i vanjski redoslijedi koji ne smiju koristiti vanjsko dispozitivo, za pripremu i implementaciju API -ja u oblaku, za ponavljanje hardverskog povezivanja na Dragonboard -u, ili za formiranje ove datoteke kao dodatak za tratado, što je kriterij za izvršavanje projekta. Para definir como produto final, sugerimos apĺicar as tecnologias e procedimentos adequados para tal

O upotrebi aplikacija i aplikacija za gestão, para os comerciantes ligados aos servisa, deixamos em aberto também, bastando trabalhar be a sua API, i konzumindo através destas frentes.

Preporučuje se: