Inhoudsopgave:

Comunicação IoT Com en Dragonboard 410C - Ajarnpa
Comunicação IoT Com en Dragonboard 410C - Ajarnpa

Video: Comunicação IoT Com en Dragonboard 410C - Ajarnpa

Video: Comunicação IoT Com en Dragonboard 410C - Ajarnpa
Video: Review da Qualcomm DragonBoard 410c 2024, November
Anonim
Comunicação IoT Com en Dragonboard 410C
Comunicação IoT Com en Dragonboard 410C

É bastante comum desenvolver ou, até mesmo, comprar um produto IoT para a sua casa. Abrir uma cortina, ligar uma tomada, ajustar a temperature de um ambiente, monitoramento de segurança, entre outros benefícios de equipamentos IoT.

Agora, seria seria transformar esses alertas das "coisas" da sua casa, em sollicitaties de serviço, e ainda melhor, em serviços que você conhece e que ja está acostumado. Er zijn geen voorwaarden voor de entrar num grande marketplace voor verkopers op een andere manier dan die van de marktplaats.

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.

Stap 1: Bereid een Sua Dragonboard 410C. voor

Bereid een Sua Dragonboard 410C. voor
Bereid een Sua Dragonboard 410C. voor

Neste is klaar voor het voorbereiden van een drabonboard 410C voor het instellen van de gateway voor de IoT-toegang tot het casa.

Primeiramente, vamos instalar um sistema operacional na placa. U kunt kiezen voor gebruik van GPS, een nieuwe klant die geen moment heeft geregistreerd, een nieuwe installatie of een operationele versie van Linaro 17.04.1, een nieuwe versie van Dragonboard 410C en een link van 96boards.

Gebruik een installatie voor het uitvoeren van een operatie, installeer een bibliotheek voor gebruik van GPIOs, door Dragonboard 410C. Para isso, você deve seguir os passos abaixo (abra o console do seu sistema operacional para executar os comandos):

Eerste vereiste libmraa

  • sudo apt-get update
  • sudo apt-cache zoeken 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=UIT
  • sudo maken
  • sudo make install

Gebruik een biblioteca com Python, que é o caso deste instructable, vamos adicionar o export da nossa variavel de ambiente do Python para a biblioteca. Para isso, gebruik een teksteditor die de voorkeur geeft aan seguir os passos abaixo, vamos utilziar 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 voor het bewerken van de cijfers ':x!' e voer para salvar e sair do arquivo in.

Isso ja conseguimos utilizar a biblioteca mraa com Pyhton.

Agora, vamos installeert os softwares para facilitar een leitura do GPS (let op voor een utilização dessa parte, recomendamos o uso do sistema operacional Linaro 17.04.1). Geen seu console, uitvoeren o comando abaixo:

sudo apt-get install gnss-gpsd gpsd gpsd-clients

Para testar, execute o 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, 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) hardware(s) num case, en geen menor dos cenários, este case estará de uma casa of apartamento. Para resolver, podemos utilizar antenas externas, tanto para wi-fi, quanto para o GPS.

OBS: Een installatie van een externe antenne voor een eenvoudige procedure die niet bekend is met de procedure voor soldagem via SMD, portanto, procure um especializado se necessário.

Voor een realizar o switch do das antenas internas para externalas, será necessário seguir os procedimentos que a Qualcomm disponibilizou no documento deste link.

OBS: É muito mais fácil de encontrar os componentes (capacitores, resistancees e indutores) op internet om op de loja fisica te kunnen. O mesmo para antenas, que sugerimos a compra no site da SmartCore.

Para que nosso gateway não fique afhankelijke de uma configuração e conexão wifi, com een internet, iremos utilzar um módulo GSM. Alle GSM-externen, die nodig zijn voor de voeding van Dragonboard 410C.

Na het beeld van de capa deste step, is de manier waarop de stappen kunnen worden genomen om het gebruik van een soldagem dos cabos voor een modulaire GSM (ATENÇÃO COM A POLARIDADE).

Voor het realiseren van een interne communicatie, gebruik van MQTT-protocollen en het definiëren van een Dragonboard 410C como-hotspot. Vamos installeert software Mosquitto para tornar a nossa placa um broker mqtt, com a execução da linha abaixo no seu console:

sudo apt-get install mug

Com isso o software ja estará installatie en ativo.

Voor definir a sua Dragonboard 410C como um hotspot, siga os passos:

  • Clique no icone de redes no canto inferior direito
  • Klik op 'Verbindingen bewerken'
  • Após abrir a tela 'Netwerkverbindingen', clique em 'Toevoegen'
  • Kies een optie voor Wi-fi, en klik op 'Create'
  • Ao abrir a tele de configuração da rede, insira um nome em SSID
  • Na mesma tela mude para 'Hotspot' geen campo 'Mode'
  • Caso queira incluir uma senha para a rede, configure-a na aba 'Wi-fi Security'
  • Para finalizar clique em 'Save'

Agora heeft een exclusieve toegang tot de Dragonboard 410C, een utilitaire makelaar voor publicatie en een subscrever.

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

Stap 2: Bereid een Sua Cloud API voor

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

Vamos descrever um passo a passo para iniciar uma API basic, pelo menos para o teste deste instructable. Caso queira seguir um tutorial mais completo, sugiro ver o artigo deste link. Em todo caso, sugiro desenvolver algo mais estruturado, caso een finalidade do projeto seja comercial.

Primeiramente, precisamos de um lugar para colocarmos a nossa API, e para não termos gastos com estes testes, iremos utilizar a plataforma Heroku. Hieronder vindt u een geldige verklaring:

  • Toegang tot de site van Heroku, por este link
  • Clique em 'Sign Up', no canto superior dieito, para iniciar o seu registro
  • Após o registro, em sua dashboard, clique em 'New' en escolha a opção 'Create New App'
  • Insira um nome para a sua aplicação
  • Em seguida, clique em 'Create App'
  • Seu app está pronto, podendo ver seu funcionamento clicando em 'Open App', no canto superior dirento
  • Installatie van Heroku Cli, para fazer os deploys para a sua aplicação, seguindo a instruço para seu sistema operacional, de acordo com a documentação 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, ja temos een pasta op sua máquina, para desenvolver een sua API. Agora vamos geïnstalleerd o NodeJS en een 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
  • Het gebruik van Linux kan niet worden gemaakt voor gebruik van Advanced Packaging Tool (APT), of outro sistema operacional, raadpleeg o link
  • Agora voert npm uit install express-generator -g
  • Toegang tot de directe omgeving voor het realiseren van procedures voor de toepassing van Heroku com 'cd _PASTA_SEU_APP_'
  • Inicie a aplicação node com 'npm init', e os outros comandos abaixo
  • cd../
  • express _PASTA_SEU_APP_
  • cd _PASTA_SEU_APP_
  • npm installeren

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

  • Toegang tot een pasta 'routes'
  • abra of arquivo 'index.js'
  • Inclusief o trecho de código abaixo, que ira 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ê realiseren o deploy do seu app para a Heroku:

  • heroku-login
  • git toevoegen.
  • git commit -am "initiële commit"
  • git push heroku master

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

  • Clique na aba 'Body'
  • Selecteer een optie 'x-www-form-urlencoded
  • Insira o key 'bericht'
  • Em Value, pode inserir qualquer mensagem

Kom essas instruções tomos a nossa API de testes pronta para o uso.

Stap 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

Voor het maken van een verbinding met wifi, kunt u gebruik maken van een communicatie via GSM voor een extern gebruik van het gebruik van een API, configuratie zonder stap anterieur.

Het is mogelijk om gebruik te maken van de modulaire GSM-homologado's, die u kunt gebruiken om de module te gebruiken die u nodig heeft om een eenvoudig moment te gebruiken, of een module SIM800L. Este modulo foi produzido en distribuído em massa pelo fabricando, mas sem qualquer homologação, tanto que não está disponível no site do fabricando.

Er zijn verschillende mogelijkheden, tussen mobiele telefoons en een nieuwe Dragonboard 410C.

Como mencionado no step 'Bereid een sua Dragonboard', teremos que regular a tensão para utilizar o modulo. Para isso utilizaremos um regulador de tensão step down, para diminuir a tensão de entrada. Gebruik van de Regelgever De Tensão Stepdown Buck Conversor Dc Lm2596 3a Nf, voor de test

Siga os passos abaixo para realizar as conexões fisicas:

  • Sluit aan op Dragonboard, samen met illustratie no step 'Prepare a sua Dragonboard', en sluit aan op entrada 'IN +' do regulador de tensão
  • Sluit aan op Dragonboard, como ilustrado no step 'Prepare a sua Dragonboard', en sluit aan op entrada 'IN -' do regulador de tensão
  • BELANGRIJK: Ligue a Dragonboard, regel com o auxilio de uma chave de fenda, regel of trimpot para que a saída (OUT + e OUT -) tenha 4.2V. Siga adiante apenas se a saída estiver com esse valor. U kunt gebruik maken van het modulaire GSM-systeem, verifique a tensão adequada. 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 on imagem de capa deste step
  • Sluit een regelgevende functie aan op 'OUT -' no pino GND, indicatie van de afbeelding van de stap
  • Sluit aan op pino RXD doe modulo GSM geen pino 5 UART 0 TX da Dragonboard, ambos indicados nas imagens de capa deste step
  • Sluit aan op pino TXD met modulaire GSM geen pino 7 UART 0 RX da Dragonboard, ambos indicados nas imagens de capa deste step
  • Sluit aan op pino GND met modulo GSM no pino 1, 2, 39 OU 40 GND met Dragonboard, zie afbeeldingen van de capa deste stap. Isto é fundmental para estabilizar of tráfego de dados pelo RX TX

OBS: Geen verbinding met de antenne, geen GSM, pinos NET of IPX ANT, indicaties voor een afbeelding van de stap.

Agora vamos oa software. U kunt gebruik maken van een biblioteca voor het installeren van anteriormente, voor het realiseren van een seriële communicatie tussen GSM en een Dragonboard 410C.

Geef ons een biblioteca en testar een comunicação com odulo:

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

importeer meer

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

poort = '/dev/tty96B0'

Instantie a UART com ajuda da biblioteca mraa

uart = mraa. Uart(poort)

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

def schrijven (bericht):

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 of arquivo e volte para o console
  • uitvoeren o arquivo

python gsm.py

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

U kunt niet alleen afhankelijk zijn van de cijfers van de code AT - encontrados neste link - farmos duas funções, uma que irá realizar a conexão com a APN en outra que irá consumir a nossa API.

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

def verbinden():

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 reed cada comanda antes de utilizar esta função. Segue algumas observeert 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 aós of comando AT_COPS=?
  • U kunt een APN-definitie gebruiken om de cada-operadora van de SIM-kaart te kunnen gebruiken, koop informatie over een operatie voor de kwaliteit van de APN, gebruik deze.
  • Repareer que a cada

Agora implementeerde een função que irá enviar consumir een nossa API:

def verzenden(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", "Autorisatie: Drager ******** *********\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 let op de volgende zaken:

  • Een função recebe 3 parameters. 'p' para o path que será executado da sua API, 'm' para o método que você irá utilizar da sua api (GET/POST/…), en 'd' para os dados enviados em caso do método não for GET
  • O comando 'AT+HTTPS' é opcional, geen caso da sua api utilizar SSL
  • O argumento 'm' deverá ser enviado no formato querystring (Bijv: msg=ola+dragonboard&arg2=teste&…)
  • O comando 'AT+HTTPPARA="USERDATA…' é opcional, apenas se houver a necessidade definir algum header no request

Meer informatie over de mogelijkheden, individuele voorwaarden en opdrachten, antes da utilização.

Antes de adquirir seu SIM Card, consulte se a operadora trabalha com a mesma tecnologia que o modulo GSM que você estiver utilizando, mas é aconselhável utilizar o SIM Card de empresas especializadas em comunicaçoes de IoT, mas é aconselhável utilizar

Als configuraties en implementaties zijn er geen problemen voor de communicatie met Dragonboard 410C.

Stap 4: Preparando 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 utilizar a placa de prototipagem NODEMCU ESP8266 ESP-12, como exemplo. Het is een goed voorbeeld van een prototipagem, een nieuw ontwerp, een moment waarop geen hardware beschikbaar is voor definido, een product dat ontwikkeld is en een complexe ontwikkeling. Este módulo ja possui WiFi, então irá facilitar a comunicação.

Voor meer informatie over Dragonboard 410C, gedetailleerde informatie over 2 bibliotheken:

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

Defina como variáveis global, as definições da rede Wi-fi e do broker, ambos da nossa Dragonboard 410C:

  • const char* SSID = "_REDE_DRAGONBOARD_"; // Nome da rede definida como Hotspot op Dragonboard
  • const char* PASWOORD = ""; // Insira o valor da senha se houver definido en configuração do Hotspot
  • const char* BROKER = "_IP_DRAGONBOARD_"; // Voer 'ip a' uit na sua Dragonboard para descobrir o ip da rede interna

Vraag om een nieuw probleem Wi-fi van een momentopname van een client MQTT-bericht:

  • WiFiClient espWIFI;
  • PubSubClient MQTT(espWIFI);

Na installatie, verbinding met WIFI en communicatie met MQTT:

  • WiFi.begin(SSID, PASWOORD);
  • MQTT.setServer (BROKER, 1883);
  • MQTT.setCallback(callback_mqtt); // Caso você faça abonneren op algum tópico

Geen enkele 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 um função com as linhas abaixo, e chame-a na função de loop:

void checkVerbindingen(){

if (!MQTT.connected())terwijl (!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");

Er zijn geen voorbeelden van voorbeelden van sensoren en enz., er zijn verschillende mogelijkheden om het projeto van het projeto en de hardware voor hardware te maken. Basta inclusief esta linha onde necessário, que os dados serão enviados para a seu broker.

Voltooid voor een nieuwe Dragonboard410C, verschillende testen en testen van python, voor checarmos en recebidos pelo broker, een groot aantal, verschillende geïnstalleerde bibliotheken met aanvullende informatie over broker. Para isso uitvoeren als linhas abaixo no console da Dragonboard 410C:

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

Agora vamos criar um arquivo python com o nome, como exemplo, mqtt.py. Er zijn verschillende manieren om de volgende uitleg te geven:

importeer paho.mqtt.client als mqttimport sys

Broker = "_IP_DRAGONBOARD_" poort = 1883 time-out = 60 TopicSubscribe = "_MESMO_TOPICO_DISPOSITIVO_EXTERNO_"

def onConnect(client, gebruikersgegevens, vlaggen, rc): client.subscribe(TopicSubscribe)

def onMessage(client, userdata, msg): message = str(msg.payload) print(bericht)

probeer: client = mqtt. Client() client.on_connect = onConnect client.on_message = onMessage client.connect(Broker, poort, time-out) client.loop_forever() behalve: sys.exit(0)

Er zijn verschillende mogelijkheden om te werken, een 'onConnect'-service die geen moment heeft waarop u verbinding kunt maken met makelaar, en een função 'onMessage' die kan worden uitgevoerd met een geldig abonnement.

Execute o arquivo com 'python mqtt.py', e se todas as conexões anteriores estiverem sido realizadas com sucesso, você receberá sua tela os dados que estão andviados pelo seu dispositivo ex, no capo receberá sua tela os dados que estão andviados pelo seu dispositivo ex, no cape reeberá sua tela os dados que estão andviados pelo seu dispositivo ex, NO

Opmerking over een função onMessage, que recebemos a informação e exibimos nos seu console. Então é neste ponto que você tratará os dados recebidos and no momento certo, enviará via GSM para a sua API, Pela funço 'send' do seu arquivo de test gsm.py, que criamos no passo 'Instalando e manipulando' o manipulando.

Belangrijke opmerkingen: Voor een realistische weergave van de plaats NODEMCU ESP8266 ESP-12, em especifico, sugiro que consultem o documento deste link. Een goed moment om een moment te beginnen, een eenvoudige manier om de polo's te pode queimar a placa, mas caso isso aconteça a boa noticia é que tom um um preço que facilita a troca rapidamente.

Stap 5: Overweeg Finais

Zie eestiver tudo configurado como descritos nos steps anteriores, você ja está comunicando o seu dispositivo IoT com o mundo, com auxilio da sua Dragonboard 410C. Een belangrijke ressaltar que neste instructable foram mencionados en softwares. Er zijn sensoren en outro's voor het uitvoeren van externe utilisaties, voorbereiding en implementatie van API Cloud, voor hardware-oplossingen voor Dragonboard, en voor een formele procedure voor het uitvoeren van procedures voor het uitvoeren van een criterium. Para definir como produto final, sugerimos apĺicar as tecnologias e procedimentos adequados para tal

Gebruik van apps en toepassingen voor het uitvoeren van, voor commerciële doeleinden en voor diensten, voor het gebruik van aberto também, voor het gebruik van een sua API, en voor verbruiksartikelen.

Aanbevolen: