Mục lục:

Comunicação IoT Com a Dragonboard 410C: 5 bước
Comunicação IoT Com a Dragonboard 410C: 5 bước

Video: Comunicação IoT Com a Dragonboard 410C: 5 bước

Video: Comunicação IoT Com a Dragonboard 410C: 5 bước
Video: Qualcomm launches its premium 820E embedded platform for IoT developers 2024, Tháng bảy
Anonim
Comunicação IoT Com a Dragonboard 410C
Comunicação IoT Com a Dragonboard 410C

É libeante 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 íchí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 sistema 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 Resolutionver essa comunicação.

Bước 1: Chuẩn bị ván rồng Sưa 410C

Chuẩn bị ván rồng Sưa 410C
Chuẩn bị ván rồng Sưa 410C

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

Primeiramente, vamos instalar um sistema operacional na nhau. Caso você opte por Pracizar localização GPS, que ajudará muito o cliente no momento de registerro, sugerimos que instale o sistema operacional Linaro 17.04.1, caso contrário, veja as opções de na página da Dragonboard 410C da 96boards, neste link.

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

Pré suggestitos libmraa

  • sudo apt-get cập nhật
  • sudo apt-cache search 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 clone
  • sudo mkdir mraa / build && cd $ _
  • sudo cmake.. -DBUILDSWIGNODE = TẮT
  • sudo làm
  • sudo thực hiện cài đặt

Para Pracizar a biblioteca com Python, que é o caso deste directionable, vamos adicionar o export da nossa variavel de ambiente do Python para a biblioteca. Para isso, tận dụng o editor de texto de sua preferência para seguir os passos abaixo, vamos usedziar o VIM:

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

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

Agora, vamos instalar os softwares parafyingitar a leitura do GPS (lembrnado que para a useizaçãozersa parte, recomendamos o uso do sistema operacional Linaro 17.04.1). Không có giao diện điều khiển, thực thi o comando abaixo:

sudo apt-get install gnss-gpsd gpsd gpsd-client

Para testar, thực thi o código abaixo, também no seu console:

gpsmon –n

OBS: A antena interna da Drabonboard é para ser effizada fora de case e em locais mais abertos. Até mesmo em locais abertos, a leitura pode demorar de 5 a 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) num case, e no menor dos cenários, este case estará dentro de uma casa ou apartamento. Trình phân giải para, podemos usedizar antenas externas, tanto para wi-fi, quanto para o GPS.

OBS: A instalação da antena externa não é um thủ tụco tão simples para quem não tem quen thuộc com thủ tục de sellagem com SMD, portanto, mua um serviço especializado se cần thiết.

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

OBS: É muito mais fácil de encontrar os componentes (tụ điện, điện trở e indutores) na internet do que em loja física. O mesmo para antenas, que sugerimos a compra no site da SmartCore.

Para que nosso gateway não fique depende de uma configuração e conexão wifi, kết nối internet, iremos usezar um módulo GSM. Os módulos GSM externos, geralmente needitam de uma tensão estável e específica, então vamos criar uma saída de alimentação diretamente da entrada de alimentação da Dragonboard 410C.

Na imagem de capa deste step, estão destacados os pontos de saída que deverá ser useizado para a sellagem dos cabos para a alimentação do modulo GSM (ATENÇÃO COM A POLARIDADE).

Para realizar a comunicação interna, iremos usingizar o protocolo MQTT, e Defr a Dragonboard 410C como hotspot. Vamos instalar o phần mềm Mosquitto para tornar a nossa coroa um broker mqtt, com a executive console da linha abaixo no seu:

sudo apt-get install mosquitto

Com isso o phần mềm já estará instalado e ativo.

Para Defr a sua Dragonboard 410C como um hotspot, siga os passos:

  • Clique no icone de remito no canto kém chất lượng
  • Clique em 'Chỉnh sửa kết nối'
  • Após abrir a tela 'Kết nối mạng', hãy kết nối với 'Thêm'
  • Selecione a opção Wi-fi, e clique em 'Create'
  • Ao abrir a tela de configuração da red, insira um nome em SSID
  • Na mesma tela mude para 'Hotspot' no campo 'Mode'
  • Caso queira incluir uma senha para a red, config-a na aba 'Wi-fi Security'
  • Para finalizar clique em 'Save'

Agora Qualquer dispositivo pode se conectar à Red Exclusiveiva da Dragonboard 410C, e Pracizar o seu broker para publicar e subscrever.

Com estes Chuẩn bị acima, estamos prontos para seguir com o desenvolvimento.

Bước 2: Chuẩn bị API Sua Cloud

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

Vamos descrever um passo a passo para iniciar uma API básica, pelo menos para o teste deste huấn luyện. Caso queira seguir um hướng dẫn mais completo, sugiro ver ở liên kết deste. Em todo caso, sugiro desenvolver algo mais estruturado, caso a finalidade do projeto seja comercial.

Primeiramente, Preisamos de um lugar para colocarmos a nossa API, e para não termos gastos com estes tinh hoàn, iremos usedizar a plataforma Heroku. Siga os passos para iniciar a sua aplicação:

  • Acesse o site da Heroku, bởi liên kết este
  • Clique em 'Sign Up', no canto superior dieito, para iniciar o seu registerro
  • Após o registerro, em sua dashboard, clique em 'New' e escolha a opção 'Tạo ứng dụng mới'
  • Insira um nome para a sua aplicação
  • Em seguida, clique em 'Tạo ứng dụng'
  • Seu app está pronto, podendo ver seu funcionamento sáo ngữ và 'Open App', không canto cao cấp
  • Instale o Heroku Cli, para fazer os triển khai para a sua aplicação, seguindo a Instale o Heroku Operacional, de acordo com a documentação deste link
  • Agora você deverá seguir là công cụ để triển khai 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 a sua API. Agora vamos instalar o 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
  • Caso não esteja useizando uma Distributionuição Hàng Linux sử dụng o Công cụ đóng gói nâng cao (APT), ou outro sistema operacional, consulte o link
  • Agora thực thi npm cài đặt express-maker -g
  • Acesse o diretório que foi realizado os procedureimentos da aplicação da Heroku com 'cd _PASTA_SEU_APP_'
  • Inicie a aplicação node com 'npm init', e os outros comandos abaixo
  • đĩa CD../
  • express _PASTA_SEU_APP_
  • cd _PASTA_SEU_APP_
  • cài đặt npm

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

  • Acesse một 'tuyến đường' mì ống
  • 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 (NHẬN 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 = 'blank'; 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ê nhận ra o triển khai ứng dụng do seu para a Heroku:

  • đăng nhập heroku
  • git thêm.
  • git commit -am "ban đầu cam kết"
  • git push heroku master

Com isso você já tem seus endpoints de testes prontos. Para testar os endpoints sugerimos instalar o phần mềm Postman, liên kết neste. Insira một ứng dụng url da seu (Ví dụ: https://_SEU_APP_.herokuapp.com/) e selecione o método GET ou POST, e clique em 'SEND'. Para o método POST, siga os passos:

  • Clique na aba 'Cơ thể'
  • Selecione a opção 'x-www-form-urlencoded
  • Insira o key 'msg'
  • Em Value, pode inserir qualityquer mensagem

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

Bước 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

Para não phụ thuộc vào uma conexão Wifi, vamos usingizar a comunicação GSM para abrir caminho de dados para useizarmos a nossa API, configurada no step anterior.

É aconselhável a useização de modulos GSM homologados, mas para os testes do nosso protótipo iremos Operatingizar um módulo simples e que atende a nossa demanda do momento, o modulo SIM800L. Este modulo foi produzido e Distributionuí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 o modulo GSM e a nossa Dragonboard 410C.

Como mencionado no step 'Chuẩn bị một ván rồng sua', teremos que thường xuyên một tensão para Pracizar o modulo. Para isso Pracizaremos um quy định de tensão bước xuống, 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 Posva da Dragonboard, como ilustrado no step 'Chuẩn bị một sua Dragonboard', e conecte na entrada 'IN +' do qui định de tensão
  • Conecte a saída negativa da Dragonboard, como ilustrado no step 'Chuẩn bị một sua Dragonboard', e conecte na entrada 'IN -' do Regiador de tensão
  • QUAN TRỌNG: Nối một Bảng rồng, e regule com o 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 Pracizado outro modulo GSM, xác minh một điều kiện đầy đủ. Este passo deve ser repeattido, semper que houver inclusão de um phần cứng, độc pode haver variação.
  • Conecte a saída do Regiador de tensão 'OUT +' không pino VCC, indicado na imagem de capa deste step
  • Conecte a saída do quiador de tensão 'OUT -' no pino GND, indicado na 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
  • Conecte o pino GND do modulo GSM no pino 1, 2, 39 OU 40 GND da Dragonboard, ambos indicados nas imagens de capa deste step. Isto é fundmental para settingilizar o tráfego de dados pelo RX TX

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

Phần mềm Agora vamos ao. Vamos usingizar a biblioteca mraa que instalamos anteriormente, para realizar a comunicação serial entre o modulo GSM e 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 paraminar delay

nhập khẩu mraa

Defina uma variável para o caminho da UART que conectamos o modulo GSM

port = '/ dev / tty96B0'

Instancie a UART com ajuda da biblioteca mraa

uart = mraa. Uart (cổng)

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

ghi def (msg):

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

Crie um loop para fazer a leitura do modulo GSM

while 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
  • Thực thi o arquivo

python gsm.py

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

Para que nosso módulo não phụ thuộc vào digitarmos cada comando AT - encontrados neste link - vé máy bay đi duas funções, uma que irá realizar a conexão com a APN e outra que irá tiêu thụ một API nossa.

A primeira função será de conexão:

def kết nối ():

time.sleep (0,5) ghi ("AT") time.sleep (0,5) ghi ('AT + CREG = 1') time.sleep (0,5) ghi ('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 cưỡi cada comanda antes de Pracizar esta função. Segue algumas Observações sobre estes comandos:

  • Para Defr corretamente o valor do comando AT + COPS, que serve para selecionar a sua red, primeiro thi hành AT + COPS = ?, aguarde que apareça as red disponíveis, e altere o valor na função connect () para o indexador da sua red exibida após o comando AT_COPS =?
  • Os comandos de Defção da APN estão com asteriscos độc phụ thuộc vào cada operadora do SIM Card, mua sắm se thông tin com một operador para saber đủ trình độ o endereço da APN, usuário e senha.
  • Repare que a cada

Agora vamos triển khai một função que irá enviar hoàn thành một API nossa:

Gửi def (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", "Ủy quyền: Người mang ******** ********* / 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 +

Segue algumas Observações para estes comandos:

  • Một função thube 3 tham số. 'p' para o path que será executeutado da sua API, 'm' para o método que você irá Pracizar da sua api (GET / POST /…), e 'd' para os dados enviados em caso do método não cho GET
  • O comando 'AT + HTTPS' é opcional, no caso da sua api useizar SSL
  • O argumento 'm' deverá ser enviado no formato querystring (Ví dụ: msg = ola + dragonboard & arg2 = teste &…)
  • O comando 'AT + HTTPPARA = "USERDATA…' é opcional, apenas se di chuột một tiêu đề cần thiết để xác định rõ ràng không có yêu cầu

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

Antes de adquirir seu SIM Card, consulte se a operadora trabalha com a mesma tecnologia que o modulo GSM que você estiver useizando, mas é aconselhável usingizar o SIM Card de empresas especializadas em comunicação IoT, por questões debil praticidade, custos e.

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

Bước 4: Chuẩn bị sẵn sàng cho Dispositivos Para Se Comunicar Com a Dragonboard

Preparando Dispositivos Para Se Comunicar Com a Dragonboard
Preparando Dispositivos Para Se Comunicar Com a Dragonboard

Neste passo, iremos usedizar a defa de prototipagem NODEMCU ESP8266 ESP-12, como ví dụ. Esta e Qualquer outra coroa de prototipagem, como o nome já diz, é ótima para protótipos, mas no momento em que o phần cứng cho xác định como produto, deve ser desenvolvido um complexo Cống hiến. Este módulo já sở hữu WiFi, então irá tiện íchitar a comunicação.

Para nos comunicarmos com a nossa Dragonboard 410C, Preisamos de 2 bibliotecas:

  • ESP8266WiFi> biblioteca para ativar a conexão da sa khoáng
  • PubSubClient> biblioteca para realizar a comunicação com o broker MQTT

Defina como variáveis globais, as Defções da red Wi-fi e do broker, ambos da nossa Dragonboard 410C:

  • const char * SSID = "_REDE_DRAGONBOARD_"; // Nome da red Defda como Hotspot na Dragonboard
  • const char * PASSWORD = ""; // Insira o valor da senha se houver Defdo na configuração do Hotspot
  • const char * BROKER = "_IP_DRAGONBOARD_"; // Thực thi 'ip a' na sua Dragonboard para descobrir o ip da red interna

Crie o objeto de red Wi-fi da sa khoáng e instancie o client MQTT com este objeto:

  • WiFiClient espWIFI;
  • PubSubClient MQTT (espWIFI);

Na função de setup, inicie a conexão WIFI e a comunicação MQTT:

  • WiFi.begin (SSID, MẬT KHẨU);
  • MQTT.setServer (BROKER, 1883);
  • MQTT.setCallback (callback_mqtt); // Caso você mặt tiền đăng ký em algum tópico

Không có 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 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 a Drabonboard 410C, com o seguinte comando:

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

Không có xác minh nào bạn có thể làm mất đi sự mẫu mực của một leitura de sensores e vv, độc vai variar muito de projeto para projeto e de phần cứng para phần cứng. Basta incluir esta linha onde needário, que os dados serão enviados para một nhà môi giới seu.

Voltando para a nossa Dragonboard410C, vamos criar um arquivo teste em python, para checarmos os dados recbidos pelo broker, mas antes, vamos instalar uma biblioteca que nos auxiliará na conexão làm người môi giới. Para isso thực thi như linhas abaixo no console da Dragonboard 410C:

  • sudo apt-get install python pip
  • pip cài đặt paho-mqtt

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

nhập paho.mqtt.client dưới dạng 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) print (message)

try: client = mqtt. Client () client.on_connect = onConnect client.on_message = onMessage client.connect (Broker, port, timeout) client.loop_forever () ngoại trừ: sys.exit (0)

Neste arquivo vamos definimos duas funções, a 'onConnect' que será chamada no momento em que houver conexão com o nhà môi giới, e a função 'onMessage' que será executeutada quando houver mensagem Collectbida nos subscribeesminados na função 'onConnect'.

Thực hiện o arquivo com 'python mqtt.py', e se todas as conexões anteriores estiverem sido realizadas com sucesso, você đằng thuberá na sua tela os dados que estão sendo enviados pelo seu dispositivo externo, no caso deste exelo, pelo NODEMCU.

Lưu ý que é na função onMessage, que Collectbemos a Informação e exibimos nos seu console. Então é neste ponto que você tratará os dados britbidos e no momento certo, enviará qua GSM para a sua API, pela função 'send' do seu arquivo de teste gsm.py, que criamos no passo 'Instalando e Thaoulando o modulo GSM'.

Uma Observação importante: Para realizar a alimentação da tróc NODEMCU ESP8266 ESP-12, em especifico, sugiro que consultem o documento deste link. Muito cuidado neste momento, độc uma simples falha de inversão de polos pode queimar a sa khoáng, mas caso isso aconteça a boa noteia é que tem um preço que secureita a troca quickamente.

Bước 5: Xem xét tài chính

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 có thể hướng dẫn foram mencionados vários phần cứng e phần mềm, mas apenasfic para fins deunica. Os sensores e outros recursos que serão useizados no dispositivo externo, todo o Chuẩn bị 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 executive o projeto. Para Defr como produto final, sugerimos apĺicar as tecnologias e Procedureimentos Đủados para tal

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

Đề xuất: