Você está na página 1de 6

2017829 ComousarMQTTcomArduinoDobitAoByte

Salvar

Selecioneoidioma

Receber aviso por


email

Digite seu endereo de email


para receber um "al" a cada
Arduino novo post, assim voc no
perde nada!
Como usar MQTT com Arduino Junte-se a 2.047 outros
28 de outubro de 2016 Djames Suhanko broker, client, mqtt, Publish,
assinantes
Subscribe

embarcados@dobitaobyte.com
Se voc ainda no conhece o MQTT, sugiro que se apresse em faz-
lo, porque esse o protocolo da Internet das Coisas e est cada vez
mais presente em dispositivos embarcados.
Submeter
Em outros artigos escrevi sobre a utilizao de MQTT com
Raspberry e ESP8266, assim como a con gurao de um broker,
que pode estar rodando em X86 ou no prprio Raspberry.

No artigo de hoje vamos ver como colocar o Arduino para Junte-se a ns!
conversar com o MQTT; no confunda com o broker.
Recentemente em uma discusso em um frum um jumento DobitAoByte
1.516curtidas
sugeriu a instalao do OpenCV no Arduino para fazer treinamento
e deteco facial e sei l mais o qu. Depois o jumento cou
reformulando as prprias a rmaes, ento fao questo de
CurtirPgina
enfatizar que em relao ao broker, no sei se seria possvel sua
implementao em Arduino, mas um client totalmente possvel,
Sejaoprimeirodeseusamigosacurtiri
como voc ver a seguir. Em relao ao OpenCV, escrevi alguns
artigos aqui no site e em breve disponibilizarei um artigo com LPR.
Continuando.

http://www.dobitaobyte.com.br/comousarmqttcomarduino/ 1/6
2017829 ComousarMQTTcomArduinoDobitAoByte

Tpicos [Ocultar] Social

1 Instalar a biblioteca MQTT para Arduino


2 Publish com MQTT
3 MQTT PubSubClient
4 Compartilhe com:
Tags mais
5 Relacionado
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


esp8266 rmware

simplrio, mas eu no poderia deixar de escrev-lo porque ele gpio i2c interrupt
agrega informaes a esse outro artigo onde explico como
interrupo IOT led linux
con gurar um broker. Basicamente, voc dever acessar os menus
da IDE do Arduino na ordem Sketch->Include Library->Manage mcu microPython
Libraries e ento escolher a biblioteca que deseja utilizar, digitando
mqtt nodemcu Omega
MQTT na caixade pesquisa. Eu escolho a biblioteca que aparece
Onion OpenCV OTA PCF8574
em segundo, logo abaixo da biblioteca da Adafruit. No menu File-
>Examples voc deve encontrar o sub-menu CMMC MQTT
pic power python
Connector, onde diversos exemplos esto dispostos. Se voc no raspberry raspbian relay
leu osartigos anteriores relacionados a MQTT, d uma 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


parmetros que devero ser ajustados para se conectar ao seu
broker. Mais uma vez, a con gurao de um broker pode ser vista
nesse artigo. Os parmetro que devero ser ajustados so
basicamente host, usurio, senha e, se requerido em sua
con gurao do broker, o client ID. O intevalo de envio est
de nido 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 transao completa.

Logo mais abaixo esto dispostas con guraes relacionadas ao


WiFi, as quais provavelmente no sero utilizadas por voc, exceto
tenha um mdulo WiFi, mas minha recomendao 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,
ento deixe o Arduino de lado e utilize um ESP8266, sendo possvel
faz-lo.
http://www.dobitaobyte.com.br/comousarmqttcomarduino/ 2/6
2017829 ComousarMQTTcomArduinoDobitAoByte

No arquivo _publish.h (que tambm abre na IDE do Arduino,


juntamente ao basic_mqtt) voc pode ver o formato da mensagem,
que um objeto json preenchido com alguns parmetros. Como
toda a conexo MQTT estabelecida, a resposta da comunicao
recebida atravs de um callback. Nessa biblioteca voc encontra
esse callback no arquivo _receive.h, que compe um string e a
imprime na serial. Se precisar manipular a resposta ou
simplesmente interagir com o programa principal, faa-o atravs
desse arquivo. Do mesmo modo, formate a mensagem em
_publish.h e no cdigo principal, de na as variveis desejadas para
o envio. No basic_mqtt a inicializao do recurso feita em setup()
e no loop() necessrio chamar o mtodo loop() da instncia
MQTT:

1 voidsetup()
2 {
3 WiFi.begin(WIFI_SSID,WIFI_PASSWORD)
4 while(WiFi.status()!=WL_CONNECTED){
5 Serial.println("CONNECTING...")
6 delay(300)
7 }
8 init_hardware()
9 init_mqtt()
10 }
11
12 voidloop()
13 {
14 mqtt>loop()
15 }

O init_mqtt() vem do arquivo init_mqtt.h, nde so atribuidos os


valores para as variveis host, port etc. O problema que nesse
arquivo tambm iniciado o WiFi, de modo que voc precisar
modi car um bocadinho o cdigo, caso use realmente um ethernet
shield. Mas obviamente muito melhor no ter que modi car
nada, no mesmo?

MQTT PubSubClient

Ento experimente a biblioteca MQTT PubSubClient bem mais


enxuta e familiar, porque o endereo do servidor de nido no
formato do tipo IPAddress; o callback tambm est explicito no
arquivo principal, de modo que ca mais claro para quem no tem
intimidade ainda com MQTT e deseja saber o funcionamento nos
bastidores. J um cdigo a ser utilizado com ethernet shield,
portanto voc no precisar fazer adaptaes, tem um mtodo de
callback para tratar reconexo e por m, o loop do client dentro da
funo loop() do sketch default do Arduino.

Existem diversas bibliotecas e voc poder experimentar qualquer


uma delas. Se voc no tem linux em sua mquina, utilize uma VM.
http://www.dobitaobyte.com.br/comousarmqttcomarduino/ 3/6
2017829 ComousarMQTTcomArduinoDobitAoByte

Se tiver um Raspberry, con gure um broker nele, ento faa 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 padres eletrnicos da USCA que z para
uma empresa de telecom, baseado no projeto dos engenheiros
eltricos responsveis 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/

Prximo post a caminho!

Compartilhe com:

Tweetar Compartilhar 9 Share E-mail

0 Share submit

WhatsApp Telegram

Relacionado

Como utilizar MQTT MQTT com Onion Blynk, IoT e MQTT


no ESP8266 com Omega
MicroPython 9 de maio de 2016
Em "esp8266"
http://www.dobitaobyte.com.br/comousarmqttcomarduino/ 4/6
2017829 ComousarMQTTcomArduinoDobitAoByte

22 de fevereiro de 3 de setembro de
2017 2016
Em "esp8266" Em "Geral"

Como fazer rede mesh com ESP8266 Parte I

Primeiros passos com TensorFlow e minhas anotaes

Djames Suhanko
Djames Suhanko Perito Forense Digital. J atuou com
deployer em sistemas de misso critica em diversos
pases pelo mundo. Programador Shell, Python, C,
C++ e Qt, tendo contato com embarcados ( ora
pro ssionalmente, ora por lazer ) desde 2009.

Voc pode gostar tambm

IoT Introduo Manmetro ESP8266


e boas prticas digital para Acionando rel
com MQTT clculo de CO com Sming
10 de fevereiro de da cerveja no (usando MQTT)
2016 1 priming 27 de fevereiro de
22 de maio de 2017 2016 7
3

Arduino Raspberry Linux forense

esp8266 MIPS Programao Geral

http://www.dobitaobyte.com.br/comousarmqttcomarduino/ 5/6
2017829 ComousarMQTTcomArduinoDobitAoByte

ESP32 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/comousarmqttcomarduino/ 6/6