Obsah:

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

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

Video: Comunicação IoT Com a Dragonboard 410C: 5 kroků
Video: Coursera Python IoT Switch Blink Timphiker 2024, Červenec
Anonim
Comunicação IoT Com a Dragonboard 410C
Comunicação IoT Com a Dragonboard 410C

É bastante comum desenvolver ou, até mesmo, includes prod umuto IoT para a sua casa. Abrir uma cortina, ligar uma tomada, ajustar a temperatura de um ambiente, monitoramento de segurança, entre outros benefícios de equipmentamentos IoT.

Agora, seria interessante transformar eses 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 resolver essa comunicação.

Krok 1: Připravte si Sua Dragonboard 410C

Připravte si Sua Dragonboard 410C
Připravte si Sua Dragonboard 410C

Nejdříve se připravte na nos a Drabonboard 410C, abyste se dostali k bráně, která bude nosit IoT dentro da sua casa.

Hlavní instalace, instalace instalačního systému na místo. Caso você opte or use using 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 opcaões de na página da Dragonboard 410C da 96boards, neste link.

Aplikujte a nainstalujte operační systém, nainstalujte biblioteca libmraa para a utilizaçã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):

Požadované libmraa

  • sudo apt-get update
  • 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

  • klon sudo git
  • sudo mkdir mraa/build && cd $ _
  • sudo cmake.. -DBUILDSWIGNODE = VYPNUTO
  • sudo make
  • sudo provést instalaci

Para use a biblioteca com Python, que é o caso deste instructable, vamos adicionar o export da nossa variavel de ambiente do Python para a biblioteca. Samozřejmě, použijte editor preferovaných textů, které se vám líbí, nebo používáte VIM:

  • sudo vim ~/.bashrc
  • pressione a teclar i, para initiar a edição do arquivo
  • další uživatelé nemají žádnou konečnou úlohu: export PYTHONPATH = $ PYTHONPATH: $ (dirname $ (find /usr /local -name mraa.py))
  • pressione ESC para sair da edição do arquivo e digite ': x!' zadejte para salvar e sair do arquivo.

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

Agora, instalace instalačního softwaru pro leitura a GPS (lembrnado que para a utilização dessa parte, recomendamos o uso do sistema operacional Linaro 17.04.1). No seu console, execute or 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 serazada fora de cases e em locais mais abertos. Mohou být lokalizovány abertos, což je hlavní dema od 5 do 10 minut, což znamená, že se můžete soustředit na to, abyste získali informace.

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. Para resolver, venkovní použití antén, tanto para wi-fi, quanto para o GPS.

OBS: Instalace externích antén a jejich postupy zjednodušují para quem não tem familiaridade com processimentos de soldagem com SMD, portanto, obstarejte um serviço especializado se needário.

Para realizar o switch to das antens internas para externas, será nezbytná seguir os proceduresos que a Qualcomm disponibilizou no documento deste link.

OBS: Nejvýznamnější součásti komponent (kondenzátory, rezistory a indutory) a internet do que em loja física. O para para antény, které jsou doporučeny k porovnání s webem 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. Nejčastěji používáme externí GSM zařízení, potřebujeme mít k dispozici různé typy zařízení, jako jsou například hlavní navigační systémy Dragonboard 410C.

Na jeden krok lze vybrat krok, který vám pomůže s výběrem většího počtu uživatelů, kteří využijí větší počet modulů a modul GSM (ATENÇÃO COM A POLARIDADE).

Para realization a comunicação interna, iremos using a protocolo MQTT, and definir a Dragonboard 410C como hotspot. Instalaci nebo instalaci softwaru můžete provést z jednoho makra, nebo z jiného makra:

sudo apt-get install mosquitto

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

Jak definovat a používat Dragonboard 410C s hotspotem, tato hesla:

  • Clique no icone de redes no canto inferior direito
  • Clique em 'Upravit připojení'
  • Zrušte zaškrtnutí políčka „Síťová připojení“, kliknutím na „Přidat“
  • Vyberte Wi-Fi a klikněte na „Vytvořit“
  • Ao abrir a tela de configuração da rede, insira um nome em SSID
  • Na mesma tela mude para 'Hotspot' no campo 'Mode'
  • Caso queira incluir uma senha para a rede, configure-a na aba 'Wi-fi Security'
  • Para finalizar clique em 'Save'

Agora qualquer dispositivo pode se conectar à rede exclusiveiva da Dragonboard 410C, and utilizar or seuu broker para publicar e subscrever.

Comestes Preparos acima, estamos prontos para seguir com o desenvolvimento.

Krok 2: Připravte si Sua Cloud API

Všechny pasce a algo que depende muito de projeto para projeto. Pode ser que přesné ser feita do zero, ou o cloud já existe com a nutidade de criar o mecanismo de API, ou até mesmo já ter uma API pronta para utilizar.

Vícenásobně klesající počet pascí a počáteční počet API API, pelo menos para o teste deste instructable. Prohlédněte si všechny návody, které vám pomohou s propojením. Naše hlavní nabídka, výběr a realizace obchodních transakcí.

Primeiramente, precisamos de um lugar para colocarmos and nossa API, e para não termos gastos comestes testes, iremos utilizar a plataforma Heroku. Saxos pass pass paraializiar and sua aplicação:

  • Přístup k webu da Heroku, ale odkaz
  • Clique em 'Sign Up', no canto superior dieito, para initiar or seu registro
  • Můžete zaregistrovat, zobrazit hlavní panel, kliknout na „Nové“a přidat „Vytvořit novou aplikaci“
  • Invara um nome para a sua aplicação
  • Em seguida, klikání na 'Vytvořit aplikaci'
  • Naše aplikace se často zobrazují, jsou podporovány funkcí „Otevřít aplikaci“, žádné špičkové dirento
  • Nainstalujte si Heroku Cli, para fazer os deploys para a sua aplicação, seguindo a instrução para seuu sistema operacional, de acordo com a documentação deste link
  • Agora você deverá seguir as instruções de deploy para começar or desenvolvimento da sua API, disponibilel em

Vyberte si z následujících možností, já si vyberu těstoviny a těstoviny na máaquina, desenvolver a sua API. Agora vamos instalace o NodeJS a framework Express, výběr a povolení:

  • 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 use a uma distribuição Linux que use o Advanced Packaging Tool (APT), ou outro sistema operacional, consulte o link
  • Agora provede npm install expres -generátor -g
  • Přístup k dalšímu provádění a provádění procedur da Heroku com 'cd _PASTA_SEU_APP_'
  • Začínáme a používáme uzel com 'npm init', e os outros comandos abaixo
  • cd../
  • expres _PASTA_SEU_APP_
  • cd _PASTA_SEU_APP_
  • npm instalace

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

  • Získejte „trasy“těstovin
  • abra o arquivo 'index.js'
  • Zahrňte všechny typy abaixo, přidejte další příspěvky a získejte další aplikace (ZÍSKEJTE POST):

router.get ('/', function (req, res, next) {res.setHeader ('Content-Type', 'application/json'); res.send (JSON.stringify ({msg: 'Hello API'}), null, 3));}); router.post ('/', funkce (req, res, next) {var msg = 'prázdný'; 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 vocete realizovat o nasazení do seu aplikace pro Heroku:

  • přihlášení do heroku
  • git přidat.
  • git commit -am "počáteční potvrzení"
  • git push heroku master

Com isso você já tem seus endpoints de testes prontos. Para testar os endpoints sugerimos installr 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 clique em 'SEND'. Para o método POST, siga os passos:

  • Clique na aba 'Body'
  • Vyberte kód x-www-form-urlencoco
  • Klíč Insira „Zpráva“
  • Em Value, pode inserir qualquer mensagem

Důležitá témata a nosa API testů, které jsou pro nás důležité.

Krok 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 dependermos de uma conexão Wifi, vamos using a comunicação GSM para abrir caminho de dados para useilizarmos and nossa API, configurada no step anterior.

Nejčastěji používané moduly GSM jsou homologovány, přičemž většina testů a testů umožňuje použití jednoduchých modulů a modulů, které vyžadují a vyžadují modul SIM800L. Většina modulů produkuje a distribuuje velké množství vyráběných, homologovaných a vysoce kvalitních materiálů, které nemají k dispozici žádné stránky.

Varianty připojení jsou k dispozici, modul GSM a nosná deska Dragonboard 410C.

Pohybujte se bez kroku „Připravte si dračí prkno“, běžná a pravidelná modulace. Para isso utilizaremos um regulador de tensão step down, para diminuir a tensão de entrada. Použití 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 saida positiva da Dragonboard, como ilustrado no step 'Prepare a sua Dragonboard', e conecte on entrada 'IN +' do regulador de tensão
  • Spojte se s negativními stránkami Dragonboardu, proveďte ilustraci bez kroku 'Prepare a sua Dragonboard', e conecte on entrada 'IN -' do regulador de tensão
  • DŮLEŽITÉ: Ligue a Dragonboard, 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 se používá mimo modul GSM, ověřte a proveďte adekvátní. Nejčastěji se to opakuje, semper que houver inclusão de um hardware, pois pode haver variação.
  • Spojte a spěchejte s výběrem 'OUT +' no pino VCC, indikujte na obrázek a udělejte krok
  • Spojte se a upravte nastavení 'OUT -' no pino GND, označte obrázek a udělejte krok
  • Připojení k RXD do modulo GSM no pino 5 UART 0 TX da Dragonboard, ambosicadosdos nas imagens de capa deste step
  • Připojení k TXD do modulo GSM no pino 7 UART 0 RX da Dragonboard, ambos indikace našich snímků krok za krokem
  • Spojte GND s modulem GSM ne pino 1, 2, 39 OU 40 GND da Dragonboard, abyste mohli vidět krok krok za krokem. Hlavními základními ustanoveními pro získání RX TX

OBS: Největší počet připojených modulů GSM, připojení typu NET nebo IPX ANT, indikace a zobrazení kroku.

Agora vamos ao software. Používá se řada biblioteca mraa que instalaces an anteriormente, para realizar a comunicação serial entre o modulo GSM e a Dragonboard 410C.

Důležitá data a biblioteca testují a komunikují s následujícím modulem:

  • Crie um arquivo com a extensão.py, como sugestão 'gsm.py'
  • Žádný čas, zejména import a biblioteca mrra, e também a biblioteca čas pro určité zpoždění

import mraa

Definujte různé varianty pro UART a připojte modulární GSM

port = '/dev/tty96B0'

Instance a UART com ajuda da biblioteca mraa

uart = mraa. Uart (port)

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

def write (msg):

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

Zkráťte smyčku pro více modulů GSM

while True: r = uart.read (128) if r! = '': print (r.decode ('UTF-8')) i = str (input ()) write (i) time.sleep (0,5)

  • Zveřejněte volnou část konzoly
  • Proveďte arquivo

python gsm.py

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

Para que nosso modulo não dependenta 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á consumerir a nossa API.

Sériová hlavní funkce:

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 jel cada comanda antes de utilizar eesta função. Pozorujte všechny druhy pozorování:

  • Parafinirete 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 je to možné AT_COPS =?
  • Co je definováno jako APN, které asteriscos pois závisí na cada operadora do SIM karty, pořiďte si informar com a operador para saber qual o endereço da APN, usuário e senha.
  • Opravte que a cada

Agora vamos implementuje a podporuje své rozhraní API nossa:

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", "Autorizace: Nositel ******** ********* / r / n "') time.sleep (0,5) if m ==' GET ': write (' AT+HTTPACTION = 0 ') else: write (' AT+HTTPPARA = "OBSAH", "application/x-www-form-urlencoded" ') time.sleep (0,5) zápis (' AT+HTTPDATA = '+str (len (d))+', 10 000 ') time.sleep (0,5) write (str (t)) time.sleep (10) write ('AT+HTTPACTION = 1') time.sleep (6) write ('AT+HTTPTERM')

Pozorujte algumas pozorování para estes comandos:

  • Funkce má 3 parametry. '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
  • Volitelně „AT+HTTPS“, bez použití SSL
  • O argumento 'm' deverá ser enviado no formato querystring (Ex: msg = ola+dragonboard & arg2 = teste &…)
  • O com 'AT+HTTPPARA = "USERDATA …" volitelně, apenas se houver a needidade de definir algum header no request

Nejčastěji se jedná o individuální záležitosti, individuální potřeby, další možnosti.

Nejčastěji využíváte SIM kartu, provozujete a pracujete s různými technologiemi, které využívají GSM a využívají různé možnosti využití SIM karty, hlavní SIM karty a možnosti komunikace, IoT, kompatibilitu a nákup.

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

Krok 4: Preparando Dispositivos Para Se Comunicar Com a Dragonboard

Připravte Dispositivos Para Se Comunicar Com a Dragonboard
Připravte Dispositivos Para Se Comunicar Com a Dragonboard

Nejčastěji využíváme hlavní protějšek NODEMCU ESP8266 ESP-12, který je příkladem. Nejčastěji se jedná o hlavní prototipagem, který se skládá z jednoho zařízení, které obsahuje hlavní část hardwaru určeného pro prodotování, vývoj více desek a komplexního dedicada. Nejčastěji používám WiFi, více a více komunikace.

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

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

Definice globalizace, definice a použití Wi-Fi makléře, ambos da nossa Dragonboard 410C:

  • const char* SSID = "_REDE_DRAGONBOARD_"; // Načíst další definice jako Hotspot na Dragonboard
  • const char* PASSWORD = ""; // Všechny informace o konfiguraci vašeho hotspotu
  • const char* BROKER = "_IP_DRAGONBOARD_"; // Spustit 'ip a' na sua Dragonboard pro 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);

Na základě nastavení, připojení WIFI a komunikace MQTT:

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

Žádná smyčka není k dispozici, například, pokud jde o smyčku MQTT:

MQTT.loop ();

Vícenásobně více ověřování WIFI e brokerů, které mají problémy s intermitência. Para isso crie um função com as linhas abaixo, e chame-a na função de loop:

zrušit 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 or seguinte comando:

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

Další podrobnosti naleznete v části s příklady snímačů atd., Které mohou mít různé důsledky pro projektování hardwaru a hardwaru. Basta incluir esta linha onde nutário, que os dados serão enviados para a seu broker.

Voltando para a nossa Dragonboard410C, crir um arquivo teste em python, para checarmos os dados receive bid pelo broker, mas antes, vamos installr uma biblioteca que nos auxiliará na conexão do broker. Para isso execute as linhas abaixo no console da 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. Všechny hlavní funkce mohou mít následující významy:

importujte paho.mqtt.client jako mqttimport sys

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

def onConnect (klient, data uživatele, vlajky, rc): client.subscribe (TopicSubscribe)

def onMessage (klient, uživatelská data, zpráva): message = str (msg.payload) print (zpráva)

zkuste: client = mqtt. Client () client.on_connect = onConnect client.on_message = onMessage client.connect (Broker, port, timeout) client.loop_forever () kromě: sys.exit (0)

Nyní můžete definovat více funkcí, což je „onConnect“, což znamená, že se můžete spojit se svým makléřem, a to prostřednictvím služby „onMessage“, abyste mohli odebírat definitivní přihlášení k předplatnému na onConne '.

Proveďte 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 exemplo, pelo NODEMCU.

Všimněte si, že na konzole můžete poslouchat a přijímat zprávy a informace. Víc a víc můžete přijímat více než jeden měsíc, přes GSM para a sua API, odeslat 'odeslat' do svého testovacího gsm.py, que criamos no passo 'Instalando e manipulando o modulo GSM'.

Důležité informace: Para realizar a alimentação da placa NODEMCU ESP8266 ESP-12, em especifico, sugiro que consultem o documento deste link. Jeho hlavní velikost je jednoduchá, jednoduchá a pohodlná, velká a lehká, velká a lehká, velká a lehká, rychlá a rychlá.

Krok 5: Zvažte dokončení

Můžete konfigurovat více typů kroků, než budete mít, můžete si vybrat mezi sebou IoT com o mundo, com auxilio da sua Dragonboard 410C. É importante ressaltar que neste instructable foram mencionados vários hardwares e software a další. Senzory se často opakují a nevyužívají žádná externí zařízení, takže se připravují na implementaci cloudu API cloudu, hardwarové rekuperace hardwaru a Dragonboardu, tam a zpět do formy, jako je například tratados, fica a kriterio de quem for executar o projeto. Para definir como produto final, sugerimos apĺicar as tecnologias e Procedimentos adekvátados para tal

O použití aplikací a aplikací, které se týkají obchodů s různými službami, jejich použití a rozhraní API, používání rozhraní API nebo používání jiných aplikací.

Doporučuje: