Sisukord:

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

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

Video: Comunicação IoT Com a Dragonboard 410C: 5 sammu
Video: Qualcomm launches its premium 820E embedded platform for IoT developers 2024, Juuli
Anonim
Comunicação IoT Com a Dragonboard 410C
Comunicação IoT Com a Dragonboard 410C

See on suurepärane komme desenvolver ou, até mesmo, kompromiteerida IoT para a sua casa. Abrir uma cortina, ligar uma tomada, ajustar a temperatura de um ambiente, monitoramento de segurança, entre outros naudosícios 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.

Para que você use serviços 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.

Samm: valmistage ette Sua Dragonboard 410C

Valmistage ette Sua Dragonboard 410C
Valmistage ette Sua Dragonboard 410C

Neste passo vamos valmistab ette nossa Drabonboard 410C para se tornar o gateway da nossa estrutura IoT dentro da sua casa.

Esmane, vamos instalar um süsteem operacional na placa. Kui kasutate GPS -i lokaliseerimisvõimalust, siis on teil õigus registreeruda, see ei ole registreeritud, sugerimos que instale või süsteemi operatsioonisüsteem Linaro 17.04.1, caso contrário, veja as opsões de na página da Dragonboard 410C da 96boards, nest link.

Kasutage operatsioonisüsteemi installeerimiseks ja installeerimiseks, installige biblioteca libmraa para GPIO -de kasutamiseks, Dragonboard 410C. Para isso, você deve seguir os passos abaixo (abra o console do seu süsteem operacional para executar os comandos):

Pré requisitos libmraa

  • sudo apt-get update
  • sudo apt-cache otsing 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 kloon
  • sudo mkdir mraa/build && cd $ _
  • sudo cmake.. -DBUILDSWIGNODE = VÄLJAS
  • sudo teha
  • sudo make install

Kasutage biblioteeki Pythonis, mis on juhendatav, vaadake, kas eksportida või eksportida Python ja biblioteka. Paraku, kasutage tekstiredaktorit ja eelistage selle parameetrite segu, os passos abaixo, vamos utilziar või VIM:

  • sudo vim ~/.bashrc
  • vajutage teclar i, para iniciar a edição do arquivo
  • kui soovite lõpetada arquivo: eksport PYTHONPATH = $ PYTHONPATH: $ (dirname $ (find /usr /local -name mraa.py))
  • vajutage ESC -d, et muuta arquivo ja digite ': x!' e siseneda para salvar e sair do arquivo.

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

Agora, kõik installitavad tarkvara ja lihtsad seadmed GPS -i jaoks (lembrnado que para a utilização dessa parte, recomendamos o uso do system operacional Linaro 17.04.1). No seu console, execute o comando abaixo:

sudo apt-get install gnss-gpsd gpsd gpsd-kliendid

Testis, täida 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 informationçõ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. Lahendaja, välised välised antennid, wi-fi, GPS-i funktsioon.

OBS: A instaltação da antena externa não é um Procedimento tão simples para quem não tem familiaridade com Procedimentos de soldagem com SMD, portanto, procure um serviço especializado se vajadus.

Para realisation or switch do das antenas internas para externas, será vajadus seguir os procedures que a Qualcomm disponibilizou no documento deste link.

OBS. O mesmo para antenas, que sugerimos and a site of SmartCore.

Para que nosso gateway ei ole sõltuv konfiguratsioonist ega WiFi -ühendusest, Interneti -ühendusest ja GSM -i kasutamisest. Kui kasutate GSM -i väliseid modifikatsioone, on vaja kõige paremini kasutada 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.

See kujutis on võimeline samm -sammult, see on destacados ja täpne saide que deverá ser utilizado para and soldagem dos cabos para alimentação do modulo GSM (ATENÇÃO COM A POLARIDADE).

Selleks, et luua Interneti -ühendus, kasutada iQ -protokolli või kasutada MQTT -protokolli, saate määrata Dragonboard 410C como hotspot. Installige tarkvara või tarkvara Mosquitto, mis on saadaval maakleri vahendusel mqtt, com a execução da linha abaixo no seu console:

sudo apt-get install mosquitto

See on tarkvara või tarkvara, mis on installeeritud ja ativo.

Määratlege Dragonboard 410C Como um hotspot, siga os passos:

  • Klõps ikoonita ei redes no canto inferior direito
  • Klõpsake nuppu 'Muuda ühendusi'
  • Após abrir a tela 'Võrguühendused', klõpsake nuppu 'Lisa'
  • Valige Wi-Fi ja klõpsake nuppu Loo
  • Ao abrir on tela de configuração da rede, lisage SSID
  • Vaadake "Hotspot" no campo "Mode"
  • Caso queira sisaldab uma senha para ja rede, konfigureerige a-Wi-Fi Security
  • Lõpuks klõpsake nuppu "Salvesta"

Agora kvalitatiivne paigutus, mis on saadaval ainult Dragonboard 410C eksklusiivseks kasutamiseks, avaliku vahendaja ja avaliku vahendaja kasutamiseks.

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

Samm: valmistage ette Sua Cloudi API

Este passo é algo que depende muito de projeto para projeto. Pode ser que täpne ser feita do zero, ou o cloud já existe com a requiredidade 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 tutorial mais täielik, soovituslik või artigo deste link. Em todo caso, sugiro desenvolver algo mais estruturado, caso a finalidade do projeto seja comercial.

Peamised, täpsed võimalused kolokarmide ja nossa API jaoks, ja termos gastos comestes testes, iremos utilizar a plataforma Heroku. Siga os passos para iniciar a sua aplicação:

  • Heroku saidi sait, link
  • Klõpsake "Registreeru", no canto superior dieito, para iniciar o seu registro
  • Registreeruge, leidke armatuurlaud, klõpsake nuppu „Uus” ja vaadake „Loo uus rakendus”
  • Insira um nome para a sua aplicação
  • Siin on segu, klõpsake nuppu 'Loo rakendus'
  • Seu app está pronto, podendo ver seu funcionamento clickando 'Open App', no canto superior directnto
  • Installige või Heroku Cli, para fazer os deploys para a sua aplicação, seguindo and instrução para seu süsteem operacional, de acordo com a documentação deste link
  • Agora você deverá seguir kui juhised rakenduse juurutamiseks või desenvolvimento da sua API, seadistage see

Seguindo os passos acima, ja temas a pasta and sua máquina, des desvolver and sua API. Agora vamos instalar või NodeJS e a Framework Express, seguindo 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
  • Kui kasutate Linuxi, kasutage o Advanced Packaging Tool -i (APT), kasutage süsteemi toimimist, konsulteerige või linki
  • Agora käivitab npm install express -generator -g
  • Acesse or directoró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../
  • ekspress _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:

  • Acessa pasta "marsruudid"
  • abra o arquivo 'index.js'
  • Inclua o trecho de código abaixo, que irá adicionary as 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: 'Tere 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ê realiseerida või juurutada Heroku rakendust:

  • heroku sisselogimine
  • lisage.
  • git bind -am "esialgne kohustus"
  • git push heroku meister

Com isso você já tem seus endpoints de testes prontos. Para testar 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 clicque em 'SEND'. Parameetrid POST, siga os passos:

  • Klikk "Body"
  • Valige valik x-www-vorm-urlencoded
  • Insira o võti 'msg'
  • Em Value, pode inserir qualquer mensagem

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

3. samm: Instalando E Manipulando või Modulo GSM

Instalando E Manipulando või Modulo GSM
Instalando E Manipulando või Modulo GSM
Instalando E Manipulando või Modulo GSM
Instalando E Manipulando või Modulo GSM

Wi -Fi -ühenduse sõltumatute funktsioonide korral saate kasutada GSM -i sidevõrku, mis võimaldab teil kasutada API -d, konfigureerimata samm -sammult.

Kui kasutate GSM -i homologaadide moodulite kasutamist, siis on munandite masside osad prototüüpsed, kasutades lihtsaid meetodeid, mis on lihtsad ja ootavad SIM800L -i. Esteetiline moodulite tootmine ja levitamine masse pelo fabricando, mas sem ququer homologação, tanto que não está disponível no site do fabricando.

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

Como mencionado no step 'Valmistage sua Dragonboard', teremos que regulaarne tensão para utilizar o modulo. Para isso utilizaremos um regulador de tensão astu alla, para diminuir a tensão de entrada. Utilizamos või Regulador De Tensão Stepdown Buck Conversor Dc Lm2596 3a Nf, para esteeste

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

  • Võtke ühendust Dragonboardi positivaga, ilustradosse ei tohi teha ühtegi sammu „Valmistage ette draakonilaud”, ja sisestage sissepääs „IN +”, et saada regulaarne teave.
  • Conecte a saída negativa da da Dragonboard, como ilustrado no step 'Prepare a sua Dragonboard', e conecte na entrada 'IN -' do regulador de tensão
  • TÄHTIS: Ligue a Dragonboard, reguleerige oma au või auxilio de uma chave de fenda, reguleerige või trimpot para que a saida (OUT + e OUT -) tenha 4.2V. Siga adiante apenas se a saída estiver com esse vaor. Kui kasutate GSM -i väliseid modifikatsioone, kontrollige nende täpsust. Este passo deve ser repetido, semper que houver incluão de um hardware, pois pode haver variação.
  • Conecte a saída do regulaator de tensão 'OUT +' no pino VCC, näidatud kujutisega
  • Conecte a saída do regulador de tensão 'OUT -' no pino GND, indicado na imagem de capa deste step
  • Conecte või pino RXD modulo GSM no pino 5 UART 0 TX da Dragonboard, ambos indicados nas imagens de capa deste step
  • Conecte o pino TXD mod modular GSM no pino 7 UART 0 RX da Dragonboard, ambos indicados nas imagens de capa deste step
  • Conecte või pino GND modulo GSM no pino 1, 2, 39 OU 40 GND da Dragonboard, ambos indicados nas imagesns de capa deste step. See on fundamentaalne parameeter või trosfego de dados pelo RX TX

OBS: Nano või essee de conectar uma antena no modulo GSM, pelos pinos NET või IPX ANT, näidikud kujutise kohta.

Agora vamos ao tarkvara. Vamos kasutab biblioteka mraa que instalamos anteriormente, para realizar a comunicação serial Entre or modulo GSM and a Dragonboard 410C.

Siga os passos para importar a biblioteca and 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

import mraa

Määrake mitmesugused parameetrid UART -i ühendamiseks või GSM -moodulite ühendamiseks

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 või modulo GSM

def kirjutada (msg):

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

Crie um loop para fazer ja modular GSM

samas Tõsi: r = uart.read (128) if r! = "": print (r.decode ('UTF-8')) i = str (input ()) write (i) time.sleep (0.5)

  • Salve või arquivo e volte para konsool
  • Täida o arquivo

python gsm.py

Digite 'AT', see tude conectado corretamente, voê irá receber na tela and menens 'OK'

Para que nosso moodulo 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á tarbija ja nossa API.

Esmane 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 =?
  • APN -i määratlemisel on võimalik kasutada SIM -kaardi operaatorit, hankida see informatiivne operaator APN -i jaoks, kasutada ja kasutada.
  • Parandage qua a cada

Agora vamos rakendab função que irá enviar tarbija ja API:

def saatmine (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", "Volitus: kandja ******** ********* / r / n "') time.sleep (0.5) kui m ==' GET ': write (' AT+HTTPACTION = 0 ') else: write (' AT+HTTPPARA = "SISU", "application/x-www-form-urlencoded" ') time.sleep (0.5) write (' AT+HTTPDATA = '+str (len (d))+', 10000 ') time.sleep (0.5) kirjutada (str (t)) time.sleep (10) kirjutada ('AT+HTTPACTION = 1') time.sleep (6) kirjutada ('AT+HTTPTERM')

Segue algumas observações para estes comandos:

  • Funktsioon 3 parameetrit. '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
  • Kui kasutate AT+HTTPS -i, pole SSL -i kasutada.
  • 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 requiredidade de definir algum header no request

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

Antud de adquirir seu SIM -kaart, konsulteerimine operaatori operatsiooniga ja mobiiltelefoni GSM -i kõnevoogude kasutuselevõtt, nutitelefoni kasutamine või SIM -kaardi kasutamise erikomponentide kommunikatsioon IoT, ühilduvus, disain.

Com as configurações e implementações acima, estamos prontos para nos comunicarmos com a nuvem através da nossa Dragonboard 410C.

4. samm: valmistage ette kompositsioonid draakonilauale

Ettevalmistus Dispositivos Para Se Comunicar Com a Dragonboard
Ettevalmistus Dispositivos Para Se Comunicar Com a Dragonboard

Neste passo, iremos prototipagem placa de NODEMCU ESP8266 ESP-12, como example. Esta e qualquer outra placa de prototipagem, como o nome já diz, é ótima para protótipos, mas no momens em que o hardware for definido como produto, deve ser desenvolvido um complexo dedicado. Este moodulo já possui WiFi, sissepääs ja hõlbustus ühenduse kaudu.

Komunikaaride komplektid Dragonboard 410C, 2 biblioteka täpsed versioonid:

  • 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, nagu Wi-Fi ja e-maakleri määratlus, ambos da nossa Dragonboard 410C:

  • const char* SSID = "_REDE_DRAGONBOARD_"; // Määrake oma hotspoti ja Dragonboardi määratlus
  • const char* PASSWORD = ""; // Insira o valor da senha se houver määratlus ja konfiguratsioon Hotspot
  • const char* BROKER = "_IP_DRAGONBOARD_"; // Käivitage ip a Dragonboard descobrir või ip da rede interna

Otsige WiFi-ühendust ja võrguühendust või kliendi MQTT-d:

  • WiFiClient espWIFI;
  • PubSubClient MQTT (espWIFI);

Seadistuse loomiseks, WIFI -ühenduse loomiseks ja MQTT -ühenduse loomiseks:

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

No sua função de loop, vaadake linha abaixo para que või MQTT entre em loop:

MQTT.loop ();

Você pode criar uma função de verificação de conexão de WIFI and do broker, para não ter problems com intermitência. Para isso crie um função com as linhas abaixo, e chame-a fun 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)}}

}

Viimane, iremos enviar algust dado para a Drabonboard 410C, com või segu comando:

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

Não vou entrar em detahes 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 vajadus, 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. Seda saab täita ka kui Dragonboard 410C konsooli linhas abaixo:

  • sudo apt-get install python pip
  • pip install 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:

importige paho.mqtt.client kui mqttimport sys

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

def onConnect (klient, kasutajaandmed, lipud, rc): client.subscribe (TopicSubscribe)

def onMessage (klient, kasutajaandmed, sõnum): message = str (msg.payload) print (sõnum)

try: client = mqtt. Client () client.on_connect = onConnect client.on_message = onMessage client.connect (maakler, port, ajalõpp) client.loop_forever () välja arvatud: 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'.

Käivitage arquivo com 'python mqtt.py', ja näete, et kaaslased on eespool öeldud, sido realiseerib, saate sõnavõtte, saate kuulata, kui soovite, ja saatke enviados pelo seu dispositivo externo, no caso deste examplelo, pelo NODEMCU.

Märkus que é na função onMessage, que recebemos a informação and exibimos nos seu console. 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ähelepanu vaja on: Para realis a alimentação da placa NODEMCU ESP8266 ESP-12, em especifico, sugiro que consultem o 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 hõlbustus ja troca rapidamente.

5. samm: Considerações Finais

Seestiver tudo configurado como descritos nos steps anteriores, você já está comunicando o seu dispositivo IoT com o mundo, com auxilio da sua Dragonboard 410C. ES import ressaltar que neste instructable foram mencionados vários hardwares e software, mas apenas para fairs de exem. Os sensores e outros recursos que serão utilizados no dispositivo externo, todo o preparo and implementação da sua API Cloud, os recursos de hardware rigados à 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 adekvaatne 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, and a Consindo através destas frentes.

Soovitan: