Tartalomjegyzék:

Comunicação IoT Com a Dragonboard 410C: 5 lépés
Comunicação IoT Com a Dragonboard 410C: 5 lépés

Videó: Comunicação IoT Com a Dragonboard 410C: 5 lépés

Videó: Comunicação IoT Com a Dragonboard 410C: 5 lépés
Videó: Qualcomm launches its premium 820E embedded platform for IoT developers 2024, Július
Anonim
Comunicação IoT Com a Dragonboard 410C
Comunicação IoT Com a Dragonboard 410C

Élvezze a comen 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 naudosícios 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.

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.

1. lépés: Készítsen elő egy Sua Dragonboard 410C -t

Készítsen elő egy Sua Dragonboard 410C -t
Készítsen elő egy Sua Dragonboard 410C -t

A Neste passo vamos előkészíti a nossa Drabonboard 410C -t, amelyet a tornar vagy az gateway da nossa estrutura IoT dentro da sua casa.

Elsődleges, vamos instalar um system operacional na placa. Caso szóbeszéd opció a helyi lokalizációs GPS -hez, que ajudará muito o cliente no momento de registerro, sugerimos que instale o system operacional Linaro 17.04.1, caso contrário, veja as opções de na página da Dragonboard 410C da 96boards, neste link.

Az Após and Installação do seu system operacional, instale a biblioteca libmraa para a utilização das GPIOs, da Dragonboard 410C. Para isso, você deve seguir os passos abaixo (abra o console do seu system operacional para executar os comandos):

Pré requisitos libmraa

  • sudo apt-get update
  • sudo apt-cache keresés 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 klón
  • sudo mkdir mraa/build && cd $ _
  • sudo cmake.. -DBUILDSWIGNODE = KI
  • sudo make
  • sudo make install

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

  • sudo vim ~/.bashrc
  • nyomja meg a teclar i, para iniciar a edição do arquivo
  • kattintson a linkre a végleges arquivo -hoz: export PYTHONPATH = $ PYTHONPATH: $ (dirname $ (find /usr /local -name mraa.py))
  • nyomja meg az ESC -t a said da edição do arquivo e digite ': x!' e belép para salvar e sair do arquivo.

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

Agora, vamos instalar os software for paraititar and leitura do GPS (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-client

Tesztelje, hajtsa végre a 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, a 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. A feloldó, podemos használja az antenas externas, tan wap-wifi, quanto para vagy GPS.

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, procure um serviço especializado se requiredário.

Para realizar o switch do das antenas internas para externas, será requiredariio seguir os Procedimentos que a Qualcomm disponibilizou no documento deste link.

OBS: É muito mais fácil de encontrar os komponensek (kapacitások, visszaállítók és indutoreszek) és internetes szolgáltatás. O mesmo para antenas, que sugerimos and a site of SmartCore.

A que nosso gateway nem függ a konfigurációtól és a wifi -től, az interneten keresztül, és használja a GSM módot. Os módulos GSM externos, geralmente requireditam de uma 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.

Ez egy kép, amely lehetővé teszi a lépéseket, de a destacados os pontos de saída que deverá ser utilizado para and soldagem dos cabos para a alimentação do modulo GSM (ATENÇÃO COM A POLARIDADE).

Az internetes kommunikáció, az MQTT protokoll használata és a Dragonboard 410C como hotspot használata. Telepítse vagy telepítse a Mosquitto szoftvert Mosquitto para tornar a nossa placa um broker mqtt, com a execução da linha abaixo no seu console:

sudo apt-get install mosquitto

Com isso o software ja estará instalado e ativo.

Határozza meg a Dragonboard 410C com h um hotspotot, és a következőket:

  • Clique no icone de redes no canto inferior direito
  • Kattintson a "Kapcsolatok szerkesztése" gombra
  • Após abrir a tela "Hálózati kapcsolatok", kattintson a "Hozzáadás" gombra
  • Válassza ki a Wi-Fi-t, és kattintson a "Create" gombra
  • Ao abrir a tela de configuração da rede, insira um nome em SSID
  • Mostantól a "Hotspot" no campo "Mode"
  • A Caso queira tartalmazza az uma senha para a rede, konfigurálja a „Wi-Fi Security” funkciót
  • A végső kattintás a „Mentés” gombra kattintva

Agora qualquer dispositivo pode se conectar à rede exkluzív a Dragonboard 410C, és hasznosítható vagy követett broker nyilvános és alcrever.

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

2. lépés: Készítsen elő egy Sua Cloud API -t

Este passo é algo que depende muito de projeto para projeto. Pode ser que precíz ser feita do zero, ou o cloud já existe com an 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. Ingyenes Caso queira seguir um tutorial teljes kiegészítés, javaslat az art art deste linkre. Em todo caso, sugiro 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 and plataforma Heroku. Siga os passos para iniciar a sua aplicação:

  • A Heroku webhelye, link
  • Kattints a „Regisztráció” gombra, és ne add meg a legjobb dieito -t, para iniciar o seu registro
  • Állítsa be a regisztrációt, a műszerfalat, kattintson az „Új” gombra és olvassa el az „Új alkalmazás létrehozása” lehetőséget.
  • Insira um nome para a sua aplicação
  • A keverék, kattintson az "Alkalmazás létrehozása" gombra
  • Seu app está pronto, podendo ver seu funcionamento clickando 'Open App', no can superior superior
  • Instale o Heroku Cli, para fazer os deploys para a sua aplicação, seguindo a instrução para seu system operacional, de acordo com a documentação deste link
  • Agora você deverá seguir, mint az API telepítésének utasítása, de a

Seguindo os passos acima, já temos a pasta and sua máquina, des desvolvolver and sua API. Az Agora vamos instalar vagy a NodeJS e a Framework Express, keverék a passos abaixo -hoz:

  • 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 utilize o Advanced Packaging Tool (APT), ou outro system operacional, consulte o link
  • Agora futtassa az npm install express -generator -g parancsot
  • Acesse o diretó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../
  • expressz _PASTA_SEU_APP_
  • cd _PASTA_SEU_APP_
  • npm telepítés

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

  • A tészta "útvonalai"
  • abra o arquivo 'index.js'
  • Inclua o 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 ('/', 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ê megvalósítja vagy telepíti a seu alkalmazást a Heroku számára:

  • heroku bejelentkezés
  • git hozzá.
  • git bind -am "kezdeti kötelezettségvállalás"
  • git push heroku mester

Com isso você já tem seus endpoints de testes prontos. Para testar os endpoints sugerimos instalar instalar o software Postman, neste link. Insira a url da seu alkalmazás (Például: https://_SEU_APP_.herokuapp.com/) és a kiválasztás vagy a metódus GET ou POST, és kattintson a "SEND" gombra. A POST metódus, és a pass:

  • Kattintson a "Body" gombra
  • Válassza ki a „x-www-form-urlencoded” opciót
  • Insira o key 'msg'
  • Em Value, pode inserir qualquer mensagem

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

3. lépés: Instalando E Manipulando O Modulo GSM

Instalando E Manipulando vagy Modulo GSM
Instalando E Manipulando vagy Modulo GSM
Instalando E Manipulando vagy Modulo GSM
Instalando E Manipulando vagy Modulo GSM

A Wi -Fi függvényektől független, a GSM kommunikációhoz használt kommunikációs szolgáltatásai lehetővé teszik a nossa API használatát, nincs beállítva előre.

A modulok GSM homológok, modulok hasznosítása, mas para os testes do nosso protótipo iremos utilizar um modulo simples e que atende a nossa demanda do momento, vagy modulo SIM800L. Este modulo foi produzido and distribuído em massa pelo fabricando, mas sem minőségi homologação, tanto que não está disponível no site do fabricando.

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

Como mencionado no step 'Készíts egy sua Dragonboard -ot', rendszeres a tensão para utilizar o modulo. Para isso utilizaremos um regulador de tensão lelép, 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:

  • Conecte a saída positiva da Dragonboard, 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 'Prepare a sua Dragonboard', e conecte na entrada 'IN -' do regulador de tensão
  • FONTOS: Ligue a Dragonboard, e com com au 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 kihasználható külső GSM modul, ellenőrizze és tensão megfelelőségét. Este passo deve ser repetido, semper que houver inclusã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 o pino RXD modulo GSM no pino 5 UART 0 TX da Dragonboard, ambos indicados nas imagens de capa deste step
  • Conecte o pino TXD modulo GSM no pino 7 UART 0 RX da Dragonboard, ambos indicados nas imagens de capa deste step
  • Conecte o pino GND modulo GSM no pino 1, 2, 39 OU 40 GND da Dragonboard, ambos indicados nas imagens de capa deste step. Is fundamental para estabilizar o tráfego de dados pelo RX TX

OBS: Não se esqueça de conectar uma antena no modulo GSM, pelos pinos NET vagy IPX ANT, indicados with imagem de capa deste step.

Agora vamos ao szoftver. Vamos használja a biblioteca 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 e testar a comunicação com o módulo:

  • 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

Határozza meg a variável paramétert vagy a kamerát az UART -hoz, vagy használja a GSM modult

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 vagy modulo GSM

def write (msg):

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

Crie um loop a fazerhez és a GSM modulhoz

míg igaz: 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 konzol
  • Végezze el o arquivo

python gsm.py

Digitális „AT”, e se tudo conectado corretamente, você irá receber na tela and mensgem „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 a APN e outra que irá fogyasztó és 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 =?
  • Os comandos de definição da APN estão com asteriscos pois depende de de cada operadora do SIM Card, buy it informar com a operador para saber quality o endereço da APN, usuário e senha.
  • Javítsa ki a cada -t

Agora vamos implementar a função que irá enviar Consumer and nossa API:

def send (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", "Engedélyezés: Bearer ******** ********* / 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:

  • A função recebe 3 paraméter. '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
  • Az AT+HTTPS opcionális opció, nincs SSO -hozzáférés
  • O argumento 'm' deverá ser enviado no formato querystring (Pl.: msg = ola+dragonboard & arg2 = teste & …)
  • O comando 'AT+HTTPPARA = "USERDATA…' opcional, apenas se houver a needididade de definir algum header no request

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

Adja meg a SIM -kártyát, konzultáljon az operációs rendszerrel, és vegye fel a kapcsolatot a GSM -hívásmodul moduljával, használja az eszközt, használja a SIM -kártyát, vagy használja a SIM -kártyát, és készítse el a kommunikáció IoT, por questões de compatibilidade, custos szolgáltatásait.

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

4. lépés: Készítsen elő Dispositivos Para Se Comunicar Com a Dragonboard -ot

Készen áll a Dispositivos Para Se Comunicar Com a Dragonboard -ra
Készen áll a Dispositivos Para Se Comunicar Com a Dragonboard -ra

Neste passo, iremos utilizar a placa de prototipagem NODEMCU ESP8266 ESP-12, como example. Esta e qualquer outra placa de prototipagem, como o nome já diz, é ótima para protótipos, mas no momento em que o hardware for definido como produto, deve ser desenvolvido um complexo dedicado. Este módulo já possui WiFi, kezdje el a könnyítést és a kommunikációt.

Para nos comunicarmos com a nossa Dragonboard 410C, precíz 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, mint a Wi-Fi e do broker definíciója, ambos da nossa Dragonboard 410C:

  • const char* SSID = "_REDE_DRAGONBOARD_"; // Nézze meg a Hotspotot a Dragonboard -on
  • const char* JELSZÓ = ""; // Insira o valor da senha se houver definido with configuração do Hotspot
  • const char* BROKER = "_IP_DRAGONBOARD_"; // Végrehajtja az „ip a” parancsot a Dragonboard descobrir vagy ip da rede interna segítségével

Keresse meg a Wi-Fi-t és használja a kliens MQTT-t:

  • WiFiClient espWIFI;
  • PubSubClient MQTT (espWIFI);

A beállítási funkciók, a WIFI és a MQTT kommunikáció kezdeményezése:

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

No sua função de loop, meg kell nézni a linha abaixo para que o 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 problem 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, JELSZÓ); while (WiFi.status ()! = WL_CONNECTED);}

}

E végső, iremos enviar algum dado para a Drabonboard 410C, Com Computing Commando:

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

Não vou entrar em detailshes 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 needário, que os dados serão enviados para a seu broker.

Voltando 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. Végezze el a Dragonboard 410C konzolos linhas abaixo no:

  • 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:

paho.mqtt.client importálása mqttimport sys néven

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

def onConnect (kliens, felhasználói adatok, zászlók, rc): client.subscribe (TopicSubscribe)

def onMessage (kliens, felhasználói adatok, üzenetek): message = str (msg.payload) print (message)

try: client = mqtt. Client () client.on_connect = onConnect client.on_message = onMessage client.connect (Broker, port, timeout) client.loop_forever () kivéve: sys.exit (0)

Neste arquivo vamos definimos duas funções, a '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'.

Hajtsa végre az arquivo com 'python mqtt.py' parancsot, és nézze meg, hogy conexões anteriores estiverem sido realizadas com successo, você receberá na sua tela os dados que estão sendo enviados pelo seu dispositivo externo, no caso deste examplelo, pelo NODEMCU.

Jegyzet que é na função onMessage, que recebemos a informação e 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'.

Fontos megjegyzések: Para realisar 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 facilitita a troca rapidamente.

5. lépés: 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 de exem. Os sensores e outros recursos que serão utilizados no dispositivo externo, todo o 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 sobados 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.

Ajánlott: