2017- 8- 29
C om o usar M QTT com Ar dui no • Do bi t Ao Byte
Salvar
Selecione o idioma ▼
Receber aviso por email Digite seu endereço de email para receber um "alô" a cada novo post, assim você não
Arduino
Como usar MQTT com Arduino Arduino
28 de outubro de 2016
Djames Suhanko
broker, client, mqtt, Publish,
perde nada! Junte-se a 2.047 outros outros assinantes
Subscribe Su bscribe
embarcados@dobitaoby em barcados@dobitaoby Se você ainda não conhece o MQTT, sugiro que se apresse em fazêlo,, porque lo porque esse é o protocolo da Internet das Coisas e está cada vez mais presente presente em dispositivos embarcados.
Submeter
Em outros artigos escrevi sobre a utilização de MQTT com Raspberry e Raspberry e ESP8266 ESP8266,, assim como a conguração de um broker, que pode estar rodando em X86 ou no próprio Raspberry. No artigo de hoje vamos ver como colocar o Arduino para
Junte-se a nós!
conversar com o MQTT; não confunda com o broker. Recentemente em uma discussão em um fórum um jumento
Do bit Ao Byte
sugeriu a instalação do OpenCV no Arduino para fazer treinamento
1.516 curtidas
e detecção facial e sei lá mais o quê. Depois o jumento cou reformulando as próprias armações, então faço questão de enfatizar que em relação ao broker, não sei se seria possível sua
Curtir Págin Pá gina a
implementação em Arduino, mas um client é totalmente possível, como você verá a seguir. Em relação ao OpenCV, escrevi alguns
Seja o primeiro de seus amigos
artigos aqui no site e em breve b reve disponibilizarei um artigo com LPR. Continuando. http://ww w.dobi taobyte.com .br /com o- usar - m qtt- com - ar dui no/
1/6
2017-8-29
Como usar MQTT com Arduino • Do bit Ao Byte
Tópicos [Ocultar]
1 Instalar a biblioteca MQTT para Arduino 2 Publish com MQTT 3 MQTT PubSubClient 4 Compartilhe com: 5 Relacionado
Social
Tags mais utilizadas
Instalar a biblioteca MQTT para Arduino 3.3v
arduino
biblioteca bluetooth broker c display esp-01
Chega a arder a orelha só de pensar em como escrever esse artigo simplório, mas eu não poderia deixar de escrevê-lo porque ele agrega informações a esse outro artigo onde explico como congurar um broker. Basicamente, você deverá acessar os menus
esp8266 rmware gpio i2c interrupt interrupção
IOT led linux
da IDE do Arduino na ordem Sketch->Include Library->Manage
mcu microPython
Libraries e então escolher a biblioteca que deseja utilizar, digitando
mqtt nodemcu Omega
“MQTT” na caixa de pesquisa. Eu escolho a biblioteca que aparece em segundo, logo abaixo da biblioteca da Adafruit. No menu File-
Onion OpenCV OTA PCF8574
>Examples você deve encontrar o sub-menu CMMC MQTT
pic power python
Connector, onde diversos exemplos estão dispostos. Se você não
raspberry raspbian relay
leu os artigos anteriores relacionados a MQTT, dê um a pesquisada
relé rpi sdk sensor
aqui no site.
serial servo shield Sming
Publish com MQTT
temperatura timer wemos
Abra o exemplo basic_mqtt. Na primeira aba você tem os
wi wiring
parâmetros que deverão ser ajustados para se conectar ao seu broker. Mais uma vez, a conguração de um broker pode ser vista nesse artigo. Os parâmetro que deverão ser ajustados são basicamente host, usuário, senha e, se requerido em sua conguração do broker, o client ID. O intevalo de envio está denido na macro PUBLISH_EVERY, que inicialmente está em 10 segundos, mas você pode mudar para qualquer intervalo maior que todo o tempo requerido para a transação completa. Logo mais abaixo estão dispostas congurações relacionadas ao WiFi, as quais provavelmente não serão utilizadas por você, exceto tenha um módulo WiFi, mas minha recomendação é que utilize um ethernet shield. Se for para utilizar wireless, que seja algo como um NRF ou preferencialmente o Whisper Node. Se for para utilizar WiFi, então deixe o Arduino de lado e utilize um ESP8266, sendo possível fazê-lo. http://www.dobitaobyte.com.br/como-usar-mqtt-com-arduino/
2/6
2017-8-29
Como usar MQTT com Arduino • Do bit Ao Byte
No arquivo _publish.h (que também abre na IDE do Arduino, juntamente ao basic_mqtt) você pode ver o formato da mensagem, que é um objeto json preenchido com alguns parâmetros. Como toda a conexão MQTT estabelecida, a resposta da comunicação é recebida através de um callback. Nessa biblioteca você encontra esse callback no arquivo _receive.h, que compõe um string e a imprime na serial. Se precisar manipular a resposta ou simplesmente interagir com o programa principal, faça-o através desse arquivo. Do mesmo modo, formate a mensagem em _publish.h e no código principal, dena as variáveis desejadas para o envio. No basic_mqtt a inicialização do recurso é feita em setup() e no loop() é necessário chamar o método loop() da instância MQTT: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
void setup() { WiFi.begin(WIFI_SSID, WIFI_PASSWORD); while(WiFi.status() != WL_CONNECTED) { Serial.println("CONNECTING..."); delay(300); } init_hardware(); init_mqtt(); } void loop() { mqtt->loop(); }
O init_mqtt() vem do arquivo init_mqtt.h, nde são atribuidos os valores para as variáveis host, port etc. O problema é que nesse arquivo também é iniciado o WiFi, de modo que você precisará modicar um bocadinho o código, caso use realmente um ethernet shield. Mas obviamente é muito melhor não ter que modicar nada, não é mesmo? MQTT PubSubClient Então experimente a biblioteca MQTT PubSubClient é bem mais enxuta e familiar, porque o endereço do servidor é denido no formato do tipo IPAddress; o callback também está explicito no arquivo principal, de modo que ca mais claro para quem não tem intimidade ainda com MQTT e deseja saber o funcionamento “nos bastidores”. Já é um código a ser utilizado com ethernet shield, portanto você não precisará fazer adaptações, tem um método de callback para tratar reconexão e por m, o loop do client dentro da função loop() do sketch default do Arduino. Existem diversas bibliotecas e você poderá experimentar qualquer uma delas. Se você não tem linux em sua máquina, utilize uma VM. http://www.dobitaobyte.com.br/como-usar-mqtt-com-arduino/
3/6
2017-8-29
Como usar MQTT com Arduino • Do bit Ao Byte
Se tiver um Raspberry, congure um broker nele, então faça o teste com o MQTT e Arduino e esteja familiarizado para o post onde faremos uma USCA (Unidade Supervisora de Corrente Alternada), seguindo os mesmos padrões eletrônicos da USCA que z para uma empresa de telecom, baseado no projeto dos engenheiros elétricos responsáveis pelas antenas de telefonia. Inscreva-se no nosso newsletter, alí em cima à direita e receba novos posts por email. Siga-nos no Do bit Ao Byte no Facebook. Prefere twitter? @DobitAoByte. Inscreva-se no nosso canal Do bit Ao Byte Brasil no YouTube. Nossos grupos: Arduino
BR
–
https://www.facebook.com/groups/microcontroladorarduinobr/ Raspberry Pi BR – https://www.facebook.com/groups/raspberrybr/ Orange Pi BR – https://www.facebook.com/groups/OrangePiBR/ Odroid BR – https://www.facebook.com/groups/odroidBR/ Sistemas
Embarcados
BR
–
https://www.facebook.com/groups/SistemasEmbarcadosBR/ MIPS BR – https://www.facebook.com/groups/MIPSBR/ Do Bit ao Byte – https://www.facebook.com/groups/dobitaobyte/ Próximo post a caminho! Compartilhe com:
Tweetar
Compartilhar 9 0
WhatsApp
Share
Share
E-mail
submit
Telegram
Relacionado
http://www.dobitaobyte.com.br/como-usar-mqtt-com-arduino/
4/6
2017-8-29
←
Como usar MQTT com Arduino • Do bit Ao Byte
Como fazer rede mesh com ESP8266 – Parte I
Primeiros passos com TensorFlow e minhas anotações
→
Djames Suhanko Djames Suhanko é Perito Forense Digital. Já atuou com deployer em sistemas de missão critica em diversos países pelo mundão. Programador Shell, Python, C, C++ e Qt, tendo contato com embarcados ( ora prossionalmente, ora por lazer ) desde 2009.
Você pode gostar também
IoT – Introdução e boas práticas com MQTT
10 de fevereiro de
2016
1
Manômetro digital para cálculo de CO² da cerveja no priming
22 de maio de 2017
ESP8266 – Acionando relé com Sming (usando MQTT)
27 de fevereiro de
2016
7
3
Arduino
Raspberry
Linux
forense
esp8266
MIPS
Programação
Geral
http://www.dobitaobyte.com.br/como-usar-mqtt-com-arduino/
5/6
2017-8-29
ESP32
Como usar MQTT com Arduino • Do bit Ao Byte
DIY
IoT
Embedded
Copyright © 2017 Do bit Ao Byte. Todos os direitos reservados. Tema: ColorMag por ThemeGrill. Powered by WordPress.
http://www.dobitaobyte.com.br/como-usar-mqtt-com-arduino/
6/6