Sisällysluettelo:

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

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

Video: Comunicação IoT Com a Dragonboard 410C: 5 vaihetta
Video: Павел и Владимир Ртищевы: арбитраж с 13 лет, про первый миллион, ошибки и создание партнерской сети 2024, Heinäkuu
Anonim
Comunicação IoT Com a Dragonboard 410C
Comunicação IoT Com a Dragonboard 410C

Tämä on bastante comum desenvolver ou, até mesmo, comprar um produto IoT para a sua casa. Abrir uma cortina, ligar uma tomada, ajustar a temperatura de um ambiente, monitoramento de segurança, entre outros Benecicios de equipamentos IoT.

Agora, seria interessante transformar 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 condições de entrar num grande marketplace para vender a sua água e tão pouco ter recursos para adquirir e manter um system de pedidos.

Jos haluat käyttää palveluja como o do seu 'Zé da água', que você semper confiou, será mostrado como montar a base de uma plataforma IoT com a dragonboard, para resolver essa comunicação.

Vaihe 1: Valmista Sua Dragonboard 410C

Valmista Sua Dragonboard 410C
Valmista Sua Dragonboard 410C

Neste passo vamos valmistelee nossa Drabonboard 410C -laitetta, joka on tornar o gateway da nossa estrutura IoT dentro da sua casa.

Primeiramente, vamos instalar um system operacional na placa. Caso -puheoptio, jossa käytetään paikallista GPS: ää, que ajudará muito o cliente no momento de registerro, sugerimos que instale or system operacional Linaro 17.04.1, caso contrário, veja as opcsões de na página da Dragonboard 410C da 96boards, neste link.

Asenna ja asenna järjestelmän seurantajärjestelmä, asenna biblioteca libmraa GPIO -käyttöliittymään, Dragonboard 410C. Para isso, você deve seguir os passos abaixo (abra o console do seu järjestelmä operacional para executar os comandos):

Pré requisitos libmraa

  • sudo apt-get päivitys
  • sudo apt-cache -haku 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

  • sudo git klooni
  • sudo mkdir mraa/build && cd $ _
  • sudo cmake.. -DBUILDSWIGNODE = POIS
  • sudo tehdä
  • sudo tehdä asennus

Käytä Pythonin biblioteekkikirjoitusta, joka on ohjeistettavissa, tai jos haluat katsoa tai viedä Pythonin variavel de ambiente do bibliografian. Para, hyödyntäkää tekstieditoria, joka on mieluummin paras sekoitus os passos abaixo, vamos utilziar tai VIM:

  • sudo vim ~/.bashrc
  • paina teclar i, aloita ja edição do arquivo
  • näytä linjan sekoitus ilman lopullista tekemistä: export PYTHONPATH = $ PYTHONPATH: $ (dirname $ (find /usr /local -name mraa.py))
  • paina ESC: tä editointiin arquivo ja digite ': x!' e enter para salvar e sair do arquivo.

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

Agora, vamos instalar os softwares for helpitar to leitura do GPS (lembrnado que para a utilização dessa parte, recomendamos o uso do system operacional Linaro 17.04.1). No seu konsoli, suorita tai komento abaixo:

sudo apt-get install gnss-gpsd gpsd gpsd-clientit

Testaa, suorita o código abaixo, também no seu console:

gpsmon –n

OBS: A antena interna da Drabonboard é para ser utilizada fora de case e em locais mais abertos. Até mesmo em locais abertos, leitura pode demorar de 5 a 10 minutes, 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 no menor dos cenários, este case estará dentro de uma casa ou apartamento. Ratkaisija, ulkopuolisten antennien käyttö, wi-fi-yhteys, GPS-ominaisuus.

OBS: A installação da antena externa não é um Procedimento tão simples para quem não tem familiaridade com Procedimentos de soldagem com SMD, portanto, hanki um serviço especializado se välttämättömyys.

Parannoi tai kytke ulkoiset ulkoiset kytkennät, välttämättömät sekoitukset ja menettelytavat Quacomm disponibilizou no documento deste link.

OBS: Enemmän tietoa laitteiden komponenteista (kapasiteetit, varaosat ja autot) ja Internet -yhteys. O mesmo para antenas, que sugerimos a compra no site da SmartCore.

Tämä que nosso -yhdyskäytävä ei ole riippuvainen konfiguraatiosta ja yhdistetystä wifi -yhteydestä, internetistä, GSM -verkon käytöstä. Osallistu GSM -ulkoisiin laitteisiin, jotka ovat välttämättömiä tensão estável e específica, então vamos criar uma saída de alimentação directtamente da entrada de alimentação da Dragonboard 410C.

Tämä on askel askeleelta, mikä on destacados täsmälleen de saída que deverá ser utilizado para and soldagem dos cabos para alimentação do modulo GSM (ATENÇÃO COM A POLARIDADE).

Voit toteuttaa sisäisen viestinnän, käyttää MQTT -protokollaa tai käyttää Dragonboard 410C -yhteyspistettä. Asenna tai asenna ohjelmisto Mosquitto para tornar a nossa placa um broker mqtt, com a execução da linha abaixo no seu console:

sudo apt-get install mosquitto

Ohjelmisto on asennettu ja asennettu ja asennettu.

Määrittele Dragonboard 410C como um hotspot, siga os passos:

  • Napsauta no icone de redes no canto inferior direito
  • Klikkaa 'Muokkaa yhteyksiä'
  • Após abrir a tela 'Verkkoyhteydet', klikkaa 'Lisää'
  • Valitse Wi-Fi ja klikkaa "Luo"
  • Jos haluat määrittää konfiguraation, valitse SSID
  • Tämä on "Hotspot" no campo "Mode"
  • Caso queira sisältää uma senha para a rede, configure-a aba 'Wi-Fi Security'
  • Lopuksi klikkaa 'Save'

Agora qualquer dispositivo pode se conectar à rede exclusiveiva da Dragonboard 410C, e utilizar or seu broker for publicar subcrever.

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

Vaihe 2: Valmista Sua Cloud -sovellusliittymä

Este passo é algo que depende muito de projeto para projeto. Pode ser que tarkka ser feita do zero, ou o cloud já existe com a needidade de criar o mecanismo de API, ou até mesmo já ter uma API pronta para utilizar.

Vamos descrever um passo a passo para iniciar uma API básica, pelo menos para o teste deste instructable. Caso queira seguir um opetusohjelma täydentää, ehdottaa ver art tai artigo deste -linkkiä. Tämä on caso, ehdotus desenvolver algo mais estruturado, caso a finalidade do projeto seja comercial.

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

  • Löydät Herokun sivuston, linkistä
  • Klikkaa 'Rekisteröidy', no canto superior dieito, para iniciar o seu registro
  • Napsauta rekisteröintiä, kojelaudassa, klikkaa 'Uusi' ja esitä 'Luo uusi sovellus'
  • Insira um nome para a sua aplicação
  • Valitse sekoitus, klikkaa 'Luo sovellus'
  • Seu app está pronto, podendo ver seu funcionamento clickando em 'Open App', no canto superior directnto
  • Asenna tai Heroku Cli, para fazer os deploys para a sua aplicação, seguindo a instrução para seu järjestelmän toiminta, de acordo com a documentação deste link
  • Agora você deverá seguir as instructions for deploy para começar or desenvolvimento da sua API, disponível em

Seguindo os passos acima, jemos a pasta and sua máquina, desenvolver and sua API. Agora vamos instalar tai NodeJS e a Framework Express, sekoitus os passos abaixo:

  • curl -sL https://deb.nodesource.com/setup_11.x | sudo -E bash -
  • sudo apt -get install -y nodejs
  • sudo apt-get install npm
  • Caso não esteja utilizando uma distribuição Linux que util o o Advanced Packaging Tool (APT), ou outro system operacional, consulte o link
  • Agora suorittaa npm install express -generator -g
  • Acesse o directtório que foi realizado os Procedimentos da aplicação da Heroku com 'cd _PASTA_SEU_APP_'
  • Inicie a aplicação node com 'npm init', e os outros comandos abaixo
  • cd../
  • ilmaista _PASTA_SEU_APP_
  • cd _PASTA_SEU_APP_
  • npm asennus

Para deixar dois -päätepisteet preparados, um de GET e um de POST, siga os passo abaixo:

  • Ota pasta käyttöön
  • abra o arquivo 'index.js'
  • Sisällytä tai trecho de código abaixo, jos haluat nähdä, että rotas na raiz da sua aplicação 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: 'Hello API'}), null, 3));}); router.post ('/', function (req, res, next) {var msg = 'empty'; 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ê realizoi o deploy do seu app for Heroku:

  • heroku kirjautuminen
  • git lisää.
  • git sitoutua -am "alkuperäinen sitoutuminen"
  • git push heroku master

Com isso você já tem seus endpoints de testes prontos. Test test os endpoints sugerimos instalar or software Postman, neste link. Insira a url da seu app (Ex: https://_SEU_APP_.herokuapp.com/) e selecione o método GET ou POST, e clique em 'SEND'. Mittaus POST, siga os passos:

  • Klikkaa aba 'Body'
  • Valitse vaihtoehto x-www-form-urlencoded
  • Insira o key 'msg'
  • Em Value, pode inserir qualquer mensagem

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

Vaihe 3: Instalando E Manipulando O Modulo GSM

Instalando E Manipulando tai Modulo GSM
Instalando E Manipulando tai Modulo GSM
Instalando E Manipulando tai Modulo GSM
Instalando E Manipulando tai Modulo GSM

Wi -Fi on riippumaton, kun käytössä on Wifi -yhteys, GSM -kommunikaatioyhteys, joka on tarkoitettu käytettäväksi sovellusliittymän kanssa, joka ei ole askel eteenpäin.

Voit käyttää GSM -homologiamoduulien käyttömoduuleja, käyttää testes do nosso protótipo iremos utilizar -moduulien yksinkertaisia menetelmiä ja tehdä odottamattomia pyyntöjä tai SIM800L -moduulia. Este modulo foi production and distribuído 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 tai modulo GSM and a nossa Dragonboard 410C.

Como mencionado no step 'Valmistele sua Dragonboard', teremos que regular a tensão para utilizar o modulo. Para isso utilizaremos um regulador de tensão astu alas, para diminuir a tensão de entrada. Utilizamos o Regulador De Tensão Stepdown Buck Conversor Dc Lm2596 3a Nf, para este teste

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

  • Luo Dragonboardille positiva, como ilustrado no step 'Prepare a sua Dragonboard', e conecte na entrada 'IN +' do regulador de tensão
  • Conecte a saída negativa da Dragonboard, como ilustrado no step 'Valmistele sua Dragonboard', e conecte na entrada 'IN -' do regulador de tensão
  • TÄRKEÄÄ: Ligue a Dragonboard, säädä com o auxilio de uma chave de fenda, säädä tai 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 hyödyntää outo modulo GSM, tarkista ja tensão riittävästi. Este passo deve ser repetido, semper que houver incluão de um hardware, pois pode haver variação.
  • Conecte a saída do regulador de tensão 'OUT +' no pino VCC, indicado na imagem de capa deste step
  • Conecte a saída do regulador de tensão 'OUT -' no pino GND, indicado na imagem de capa deste step
  • Conecte tai pino RXD modulo GSM no pino 5 UART 0 TX da Dragonboard, ambos indicados nas imagesns de capa deste step
  • Conecte o pino TXD do modulo GSM no pino 7 UART 0 RX da Dragonboard, ambos indicados nas imagesns de capa deste step
  • Conecte o pino GND mod modulo GSM no pino 1, 2, 39 OU 40 GND da Dragonboard, ambos indicados nas imagesns de capa deste step. On perusrahoitus perus- tai träfego de dados pelo RX TX: lle

OBS: Não se esqueça de conectar uma antena no modulo GSM, pelit pinos NET tai IPX ANT, indikaatiot kuvasta.

Agora vamos ao ohjelmisto. Vamos käyttää biblioteca mraa que instalamos anteriormente, para realizar a comunicação serial Entre or modulo GSM e and Dragonboard 410C.

Siga os passos para importar a biblioteca e testar a comunicação com or methodulo:

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

tuoda mraa

Määritä eri vaihtoehdot UART -yhteyden tai modulaarisen GSM -yhteyden muodostamiseen

portti = '/dev/tty96B0'

Instancie a UART com ajuda da biblioteca mraa

uart = mraa. uart (portti)

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

def kirjoittaa (msg):

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

Crie um loop para fazer ja modulaarinen GSM

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

  • Salve tai arquivo ja volte -konsoli
  • Suorita o arquivo

python gsm.py

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

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

A 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 =?
  • Jos APN: n määritelmät on määritetty asteriscoiksi, ne ovat riippuvaisia operatiivisesta SIM -kortista, hanki se tiedoksi operaattorille, joka toimii APN: n, käyttö- ja senhakukelpoisena.
  • Korjaa cada

Agora vamos implementar a função que irá enviar kuluttaja ja nossa -sovellusliittymä:

def lähetä (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", "Authorization: Bearer ********" ********* / r / n "') time.sleep (0.5) jos m ==' GET ': write (' AT+HTTPACTION = 0 ') else: write (' AT+HTTPPARA = "SISÄLTÖ", "application/x-www-form-urlencoded" ') time.sleep (0.5) write (' AT+HTTPDATA = '+str (len (d))+', 10000 ') time.sleep (0.5) kirjoitus (str (t)) time.sleep (10) write ('AT+HTTPACTION = 1') time.sleep (6) write ('AT+HTTPTERM')

Segue algumas observações para estes comandos:

  • Toiminnallinen vastaanotin 3 parametria. 'p' para o path que será 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 método não for GET
  • Voit käyttää AT+HTTPS -palvelua, joka ei käytä SSL -salausta.
  • O argumento 'm' deverá ser enviado no formato querystring (Ex: msg = ola+dragonboard & arg2 = teste &…)
  • O comando 'AT+HTTPPARA = "USERDATA…' opcional, apenas se houver a needidadade de definir algum header no request

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

Muistiinpanot seu SIM -kortti, konsultointi operaattorilla trabalha com mesma tecnologia que tai modulo GSM que estêteri utilizando, mas é aconselhável utilizar o SIM Card de empresas especializadas em comunicação IoT, por questões de compatibilidade, custos.

Com Configuções and implementações acima, estamos prontos para nos comunicarmos com nuvem através da nossa Dragonboard 410C.

Vaihe 4: Valmistele Dispositivos Para Se Comunicar Com a Dragonboard

Valmistelut Dispositivos Para Se Comunicar Com a Dragonboard
Valmistelut Dispositivos Para Se Comunicar Com a Dragonboard

Neste passo, iremos prototipagem placa de NODEMCU ESP8266 ESP-12, como example. Esta e qualityquer outra placa de prototipagem, como o nome já diz, é ótima para protótipos, mas no momentus em que o hardware for definido como produto, deve ser desenvolvido um complexo dedicado. Este tapa käyttää WiFi -yhteyttä, ja se on helpotettu ja kommunikoitu.

Parametrit comunicarmos com ja nossa Dragonboard 410C, tarkat 2 bibliotecas:

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

Defina como variáveis globais, kuten Wi-Fi-verkon välittäjän määritelmä, ambos da nossa Dragonboard 410C:

  • const char* SSID = "_REDE_DRAGONBOARD_"; // Määrittele tämä Hotspot -kohde Dragonboardilla
  • const char* SALASANA = ""; // Insira o valor da senha se houver definido with configuração do Hotspot
  • const char* BROKER = "_IP_DRAGONBOARD_"; // Suorita ip a Dragonboard descobrir tai ip da rede interna

Langattoman Wi-Fi-yhteyden ja asiakkaan MQTT-yhteyden selvittäminen:

  • WiFiClient espWIFI;
  • PubSubClient MQTT (espWIFI);

Asetusten määrittäminen, WIFI -yhteyden muodostaminen ja MQTT -kommunikaatio:

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

Ei sua função de loop, katso linha abaixo para que tai MQTT entre em loop:

MQTT.loop ();

Você pode criar uma função de verificação de conexão de WIFI e do broker, para não ter problems 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 ()) kun (! MQTT.connected ());

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

}

E viimeinen, iremos enviar algum dado para a Drabonboard 410C, com or seguinte comando:

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

Não vou entrar em detalhes para exemplificar a leitura de sensores e etc, pois vai variar muito de projeto para projeto e de hardware para hardware. Basta incluir esta linha onde välttämättömyys, que os dados serão enviados para a seu broker.

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á na conexão do broker. Suorita suoritus nimellä linhas abaixo no console da Dragonboard 410C:

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

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

Tuo paho.mqtt.client mqttimport sys

Välittäjä = "_IP_DRAGONBOARD_" port = 1883 timeout = 60 TopicSubscribe = "_MESMO_TOPICO_DISPOSITIVO_EXTERNO_"

def onConnect (asiakas, käyttäjätiedot, liput, rc): client.subscribe (TopicSubscribe)

def onMessage (asiakas, käyttäjätiedot, viesti): message = str (msg.payload) print (message)

try: client = mqtt. Client () client.on_connect = onConnect client.on_message = onMessage client.connect (Välittäjä, portti, aikakatkaisu) client.loop_forever () paitsi: sys.exit (0)

Neste arquivo vamos definimos duas funções, 'onConnect' que será chamada no momento em que houver conexão com o broker, e a função 'onMessage' que será executada quando houver mensagem recebida nos subscribes definidos na função 'onConnect'.

Suorita arquivo com 'python mqtt.py', ja katso, että se on aikaisemmin esteroitu, ja sido realisation com menestyksekkäästi.

Huomaa, että viesti, vastaanotto ja tiedot sekä tiedot ja exibimos nos seu konsoli. Então é neste ponto que você tratará os dados recebidos e no momento certo, enviará via GSM para a sua API, pela função 'send' do seu arquivo de teste gsm.py, que criamos no passo 'Instalando e manipulando o modulo GSM'.

Tärkeää: Tärkeää: NODEMCU ESP8266 ESP-12, realisar a alimentação da placa, real espacifico, sugiro que consultem tai documento 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 helpita and troca rapidamente.

Vaihe 5: Considerações Finais

Se estiver tudo configurado como descritos nos steps anteriores, você já está comunicando o seu dispositivo IoT com o mundo, com auxilio da sua Dragonboard 410C. É importante ressaltar que neste instructable foram mencionados vários hardwares e software, mas apenas para fairs. Os sensores e outros recursos que serão utilizados no dispositivo externo, todo or preparo e implementação da sua API Cloud, os recursos de hardware ligados à Dragonboard, e também a forma com que os dados são tratados, fica a critério de quem for executar o projeto. Para definir como produto final, sugerimos apĺicar as tecnologias e Procedimentos sopivuus para tal

O uso de apps e aplicações de gestão, para os comerciantes ligados aos serviços, deixamos em aberto também, bastando trabalhar bem a sua API, e a consindo através destas frentes.

Suositeltava: