Съдържание:

Comunicação IoT Com a Dragonboard 410C: 5 стъпки
Comunicação IoT Com a Dragonboard 410C: 5 стъпки

Видео: Comunicação IoT Com a Dragonboard 410C: 5 стъпки

Видео: Comunicação IoT Com a Dragonboard 410C: 5 стъпки
Видео: Qualcomm launches its premium 820E embedded platform for IoT developers 2024, Юли
Anonim
Comunicação IoT Com a Dragonboard 410C
Comunicação IoT Com a Dragonboard 410C

É bastante comum desenvolver ou, até mesmo, сравнете продукцията на IoT за една къща. Abrir uma cortina, ligar uma tomada, ajustar a temperature de um ambiente, monitorramento de segurança, entre outros benefí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: Подгответе Sua Dragonboard 410C

Пригответе Sua Dragonboard 410C
Пригответе Sua Dragonboard 410C

Neste passo vamos подготвя a nossa Drabonboard 410C за tornar o gateway да nossa estrutura IoT dentro da sua casa.

Премиера, можете да инсталирате операционна система на място. Caso você opte чрез използване на локализация GPS, que ajudará muito o cliente no momento de registerro, sugerimos que instale of system operational Linaro 17.04.1, caso contrário, veja as opções de на страница от Dragonboard 410C до 96boards, neste link.

Приложете инсталационна система за операционна система, инсталирайте библиотечна библиотека за използване на GPIO, за Dragonboard 410C. Para isso, você deve seguir os passos abaixo (abra o console do seu system operational para executar os comandos):

Pré requisitos libmraa

  • sudo apt-get update
  • sudo apt-cache за търсене 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
  • sudo mkdir mraa/build && cd $ _
  • sudo cmake.. -DBUILDSWIGNODE = ИЗКЛЮЧЕН
  • 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 a biblioteca. Para isso, use o 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
  • добавяне и поддръжка без финали до arquivo: експортиране PYTHONPATH = $ PYTHONPATH: $ (име dirname [find /usr /local -name mraa.py))
  • pressione ESC para sair da edição do arquivo e digite ': x!' e enter para salvar e sair do arquivo.

Com isso já Conseguimos използва библиотека мраа Pyhton.

Agora, vamos instalar os софтуер за улеснение и достъп до GPS (lembrnado que para a utilização dessa parte, recomendamos o uso do system operational Linaro 17.04.1). No seu console, execute o comando abaixo:

sudo apt-get инсталирате gnss-gpsd gpsd gpsd-клиенти

Para testar, изпълнете código abaixo, também no seu console:

gpsmon –n

OBS: A antena interna da Drabonboard é para ser utilizada fora de cases e em locais mais abertos. Até mesmo em locais abertos, leitura pode demorar de 5 a 10 minutos, então não fique preocupado se não exibir като 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. За разрешаване, настройка на използване на външни антени, танто за wi-fi, квантово или GPS.

OBS: A instalação da antena externa não é um processdimento tão simples para quem não tem familiaridade com procedimentos de soldagem com SMD, portanto, procure um serviço especializado se needário.

За да осъществите или превключите до das antenas internas para externas, се нуждаете от защита на процесите, като Qualcomm не разполага с документи без дестинация.

OBS: É muito mais fácil de encontrar os componentsntes (kapacitores, resistores e indutores) в интернет до que em loja física. O mesmo para antenas, que sugerimos a compra no site da SmartCore.

Para que nosso gateway não fique dependente de uma configuração e conexão wifi, com a internet, iremos utilzar um módulo GSM. С помощта на GSM външни устройства, които са задължителни, е необходимо да се избягват специални изисквания, да се въвеждат критерии за управление на алиментацията на Dragonboard 410C.

В imagem de capa deste step, estão destacados os pontos de saída que deverá ser utilizado за a soldagem dos cabos за алиментация до модулен GSM (ATENÇÃO COM A POLARIDADE).

За да осъществите комуникационна международна връзка, да използвате протокол MQTT и да определите съвместна гореща точка Dragonboard 410C. Вами инсталирайте или софтуер Mosquitto за торнар в nossa placa um broker mqtt, com a изпълнител да linha abaixo no seu конзола:

sudo apt-get инсталирайте комар

Com isso o software já estará instalado e ativo.

За да определите драгова дъска 410C като гореща точка, можете да видите:

  • Clique no icone de redes no canto inferior direito
  • Кликнете върху „Редактиране на връзки“
  • Добавете към „Мрежови връзки“, кликнете върху „Добавяне“
  • Изберете опция Wi-Fi и кликнете върху „Създаване“
  • Ao abrir a tela de configuração da rede, insira um nome em SSID
  • На месма теле муде за 'Hotspot' без campo 'Mode'
  • Caso queira включва uma senha para a rede, configure-a na aba „Wi-fi Security“
  • Кликнете върху „Save“

Agora qualquer dispositivo pode se conectar à rede exclusiva da Dragonboard 410C, e utilizar o seu broker para publicar e subscrever.

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

Стъпка 2: Подгответе API за Sua Cloud

Este passo é algo que depende muito de projeto para projeto. Pode ser que прецизно ser feita до нула, ou облак já existe com a needidade de criar или mecanismo de API, ou até mesmo já ter uma API 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 completeto, 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, e para não termos gastos com estes testtes, iremos utilizar a plataforma Heroku. Siga os passos para iniciar a sua aplicação:

  • Acesse на сайта да Heroku, по отношение на връзката
  • Кликнете върху „Регистрация“, без canto superior dieito, за начало или регистрация в сеуса
  • Após o registerro, em sua dashboard, кликнете върху „New“e escolha и opção „Create New App“
  • Insira um nome para a sua aplicação
  • Em seguida, клика em 'Create App'
  • Seu app está pronto, podendo ver seu funcionamento clicando em 'Open App', без canto superior dirento
  • Инсталиране на Heroku Cli, за да се разгърне fazer os за a sua applicação, да се осигури инструкция за seu операционна система, de acordo com a документация deste link
  • Agora você deverá seguir as instruções de deploy para começar o desenvolvimento da sua API, disponível em

Seguindo os passos acima, já temos a pasta na sua máquina, para desenvolver и sua API. Agora vamos instalar или NodeJS e a Framework Express, сегуидо 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 използва ума дистрибуция Linux que използва o Advanced Packaging Tool (APT), ou outro операционна система, консултирайте се за връзка
  • Agora изпълнява npm install express -generator -g
  • Acesse o diretório que foi realizado os procedimentos da aplicação da Heroku com 'cd _PASTA_SEU_APP_'
  • Започнете апликационен възел com 'npm init', e os outros comandos abaixo
  • cd../
  • експресно _PASTA_SEU_APP_
  • cd _PASTA_SEU_APP_
  • npm инсталиране

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

  • Acesse макарони "маршрути"
  • abra o arquivo 'index.js'
  • Включва 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 = 'празен'; 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ê осъзнайте или разгърнете приложението seu за Heroku:

  • heroku вход
  • git добави.
  • git commit -am "първоначален коммит"
  • git push heroku master

Com isso você já tem seus endpoints de testtes prontos. За тестването на крайните точки е необходимо да се инсталира или софтуер пощальон, вложена връзка. Влезте в url da seu приложение (например: https://_SEU_APP_.herokuapp.com/) и изберете за метода ПОЛУЧАВАНЕ или публикуване, като кликнете върху „ИЗПРАЩАНЕ“. Para o método POST, siga os passos:

  • Клик на аба "Тяло"
  • Изберете опция „x-www-form-urlencoded
  • Insira или ключ „msg“
  • Em Стойност, pode inserir qualquer mensagem

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

Стъпка 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

За да не използвате dependermos за ума conexão Wifi, можете да използвате комуникационен GSM за абрир caminho de dados за използване на nossa API, конфигурация без стъпка отпред.

Използвайки модулни GSM хомолози, използвайте модули за тестис, които не нотират прототипи, използвайки прости модули, както и модул SIM800L. Este modulo foi produzido e distribuído em massa pelo fabricando, mas sem qualquer homologação, tanto que não está disponível no site do fabricando.

Имате достъп до финиси, въведени по модул GSM и nossa Dragonboard 410C.

Como mencionado no step „Подгответе драконска дъска“, теремо, което е редовно за използване по модул. Para isso utilizaremos um regulalador de tensão се оттегля, para diminuir a tensão de entrada. Използване на Regulador De Tensão Stepdown Buck Conversor Dc Lm2596 3a Nf, за оценка

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

  • Conecte a saída positiva da Dragonboard, como ilustrado no step 'Подгответе a draaboard Draaboard', e conecte in entrada 'IN +' do regulalador de tensão
  • Conecte a saída negativa da Dragonboard, como ilustrado no step „Подгответе a draaboard Dragonboard“, e conecte in entrada „IN -“do regulalador de tensão
  • ВАЖНО: Ligue a Dragonboard, e regulale com o auxilio de uma chave de fenda, regulale o trimpot para que a saida (OUT + e OUT -) tenha 4.2V. Siga adiante apenas се a saída estiver com esse valor. Caso се използва като модул за GSM модул, проверяващ адекватно. Este passo deve ser repetido, semper que houver includesão de um hardware, pois pode haver variação.
  • Conecte a saída do regulalador de tensão 'OUT +' no pino VCC, indicado na imagem de capa deste step
  • Conecte a saída do regulalador de tensão 'OUT -' no pino GND, индикация за imagem de capa deste step
  • Conecte o pino RXD do modulo GSM no pino 5 UART 0 TX da Dragonboard, ambos indicados nas imagens de capa deste step
  • Conecte o pino TXD do modulo GSM no pino 7 UART 0 RX da Dragonboard, ambos indicados nas imagens de capa deste step
  • Конектиране или пино GND до модул GSM без пино 1, 2, 39 OU 40 GND до Dragonboard, амбони, показващи изображения с капацитет на стъпка. Isto é fundmental para estabilizar o tráfego de dados pelo RX TX

OBS: Не се изисква свързване на антена без модулен GSM, pelos pinos NET или IPX ANT, показващ изображението на стъпка с капацитет.

Agora vamos ao софтуер. Можете да използвате библиотека за мрачни инсталации отпред, за да реализирате комуникационен сериен вход за модул GSM и 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 delayes

внос мраа

Определете различни варианти за използване на UART за свързване по модул на GSM

порт = '/dev/tty96B0'

Instancie a UART com ajuda da biblioteca mraa

uart = mraa. Uart (порт)

Crie uma função para enviar para os comando AT за модулен GSM

def запис (съобщение):

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

Crie um цикъл за фабрика и модул GSM

докато 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
  • Изпълнете или arquivo

python gsm.py

Цифрово „AT“, e se tudo conectado corretamente, você irá receber na tela a 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á 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 на função connect () para o indexador da sua rede exibida após o comando AT_COPS =?
  • Os comandos дефинира да APN estão com звездички зависи от de cada operadora до SIM карта, закупуване на информатор com a operador para sabre qual или endereço да APN, usuário e senha.
  • Поправете када

Agora vamos implementar a função que irá enviar consumir a 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", "Упълномощаване: Носител ******** ********* / 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:

  • Функционална рецепта с 3 параметъра. '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 за GET
  • O comando 'AT+HTTPS' е опционален, без caso da sua api използва SSL
  • O аргумент 'm' deverá ser enviado без форматиране на заявка (напр.: msg = ola+dragonboard & arg2 = teste & …)
  • O comando 'AT+HTTPPARA = "USERDATA …" е опционално, апените се намират, когато е необходимо да се определи заглавката на алгума без заявка

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

Antes de adquirir seu SIM Card, консултирайте се с operadora trabalha com a mesma tecnologia que o modulo GSM que você estiver uselizando, mas é aconselhável utilizar or SIM Card de empresas especializadas em comunicação IoT, por questões de compatibilidade, customs

Com като конфигурации и внедряване acima, estamos prontos para nos comunicarmos com a nuvem através da nossa Dragonboard 410C.

Стъпка 4: Подгответе Dispositivos Para Se Comunicar Com a Dragonboard

Подгответе Dispositivos Para Se Comunicar Com a Dragonboard
Подгответе Dispositivos Para Se Comunicar Com a Dragonboard

След това трябва да използвате прототипа на NODEMCU ESP8266 ESP-12, като например. Esta e qualquer outra placa de prototipagem, como o nome já diz, é ótima para protótipos, mas no momento em que o хардуер за definido como produto, deve ser desenvolvido um complexo dedicado. Освен това можете да използвате WiFi, да въведете комуникация.

Para nos comunicarmos com a nossa Dragonboard 410C, прецизамос от 2 библиотеки:

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

Дефинирайте como variáveis globais, като дефинирате да преустроите Wi-Fi и да направите брокер, ambos da nossa Dragonboard 410C:

  • const char* SSID = "_REDE_DRAGONBOARD_"; // Име за повторно определяне като гореща точка на Dragonboard
  • const char* PASSWORD = ""; // Insira o valor da senha се съхраняват определено в конфигурацията на Hotspot
  • const char* BROKER = "_IP_DRAGONBOARD_"; // Изпълнете 'ip a' на sua Dragonboard para descobrir o ip da rede interna

Crie o objeto de rede Wi-fi da placa e instancie o client MQTT com este objeto:

  • WiFiClient espWIFI;
  • PubSubClient MQTT (espWIFI);

На функцията за настройка, инициирайте съвместен WIFI и комуникационен MQTT:

  • WiFi.begin (SSID, PASSWORD);
  • MQTT.setServer (БРОКЕР, 1883);
  • MQTT.setCallback (callback_mqtt); // Caso você faça абонирайте се за algum tópico

No sua função de loop, adicione 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 e do broker, para não ter problemas com intermitência. Para isso crie um função com като 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 a Drabonboard 410C, com o seguinte comando:

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

Не можете да въведете подробности за пример за чувствителност на сензори и др., За да промените различни проекти за хардуер за хардуер. Basta incluir esta linha onde neophodário, que os dados serão enviados para a seu брокер.

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. За да се изпълни като linhas abaixo без конзола за 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:

импортирайте paho.mqtt.client като mqttimport sys

Брокер = "_IP_DRAGONBOARD_" порт = 1883 изчакване = 60 TopicSubscribe = "_MESMO_TOPICO_DISPOSITIVO_EXTERNO_"

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

def onMessage (client, userdata, msg): message = str (msg.payload) печат (съобщение)

опитайте: клиент = mqtt. Client () client.on_connect = onConnect client.on_message = onMessage client.connect (Брокер, порт, таймаут) client.loop_forever () с изключение на: 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'

Изпълнете o arquivo com 'python mqtt.py', e se todas as conexões anteriores estiverem sido realizadas com sucesso, você receberá na sua tela os dados que estão sendo enviados pelo seu dispositivo externo, no caso deste exemploU, pelo NOD.

Забележете que é на 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, изпраща се чрез GSM за aa API, pela função „изпращам“do seu arquivo de teste gsm.py, que criamos no passo „Instalando e manipulando o modulo GSM“.

Забележете, че е важно да се спазва NODEMCU ESP8266 ESP-12, специален, подходящ за консултация или документация за връзка. 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.

Стъпка 5: Considerações Finais

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 инструктируем foram mencionados vários хардуер a софтуер, софтуер. 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 form com que os dados são tratados, който е критерий за изпълнение за изпълнение. Para definir como produto final, sugerimos apĺicar as tecnologias e procedimentos adequados 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 consumindo através destas frentes.

Препоръчано: