Académique Documents
Professionnel Documents
Culture Documents
O mdulo Wi- ESP8266 NodeMCU uma das mais interessantes placas / plataformas existentes. A razo
disso simples: em uma pequena placa esto disponveis I/Os, circuitaria de regulao de tenso,
conectividade USB para programao (em Lua ou pela Arduino IDE) e conectividade WI-FI (ESP8266 12-E),
caracterizando uma placa auto-su-ciente para projetos envolvendo IoT, como faremos neste post
envolvendo o NodeMCU e MQTT.
r
Pesquisar produtos
m n 0 0
https://www.filipeflop.com/blog/controlemonitoramentoiotnodemcuemqtt/ 1/38
201792 ControleeMonitoramentoIoTcomNodeMCUeMQTTFilipeFlop
Sermostrada uma das mais interessantes aplicaes desta placa: a conectividade com a nuvem atravs
de MQTT para monitoramento e controle de um output, com um diferencial: a interface com o usurio
sendo uma pgina web.
Funcionamento do MQTT
O MQTT (Message Queue Telemetry Transport) consiste em um protocolo de mensagens leve, criado para
comunicao M2M (Machine to Machine). Por exigir muito pouco poder de fogo em termos de
processamento e banda / consumo de Internet, este um dos protocolos ideais para dispositivos
embarcados. Por esta razo, o MQTT famoso noconceito IoT (Internet of Things).
Uma comunicao MQTT composta das seguintes partes: h publishers (quem ir disponibilizar
informaes), subscribers (quem ir receber as informaes) e Broker (servidor MQTT, na nuvem /
acessvel de qualquer lugar do planeta que contenha conexo com a Internet). Teoricamente, no h limite
especi-cado de subscribers e publishers em uma mesma comunicao MQTT, pois o limite nesse aspecto
do servidor em lidar com as conexes.
Em suma: publishers enviam informao para o Broker, subscribers recebem informao do Broker e o
Broker gerencia a troca de mensagens. Ou seja, o trabalho pesado -ca a cargo do Broker, deixando os
sistemas embarcados livre para gerenciar outras coisas.
r
Pesquisar produtos
m n 0 0
https://www.filipeflop.com/blog/controlemonitoramentoiotnodemcuemqtt/ 2/38
201792 ControleeMonitoramentoIoTcomNodeMCUeMQTTFilipeFlop
Sem entrar no mrito da especi-cao do protocolo MQTT (ou seja, byte a byte do protocolo), grosso modo
uma mensagem MQTT publicada / enviada possui duas partes importantes:
Em outras palavras: uma soluo em IoT que usa MQTT possui somente um servidor (Broker), sendo todo o
restante composto de clients MQTT.
Outra informao importante que um mesmo client MQTT pode ser subscriber e publisher de diversos
tpicos.
1 Preparar a IDE Arduino para programar o NodeMCU. Veja como fazer isso no post Como programar o
NodeMCU com IDE Arduino
r
Pesquisar produtos
m n 0 0
https://www.filipeflop.com/blog/controlemonitoramentoiotnodemcuemqtt/ 3/38
201792 ControleeMonitoramentoIoTcomNodeMCUeMQTTFilipeFlop
Feito isso, devemos escolher um broker MQTT para utilizar. H inmeros brokers disponveis para uso
(tanto pblicos / sem custo quanto privados / pagos). Dos pblicos, eu recomendo fortemente o
iot.eclipse.org (broker o-cial da equipe que mantm o MQTT), que ir funcionar perfeitamente com o
nosso projeto de NodeMCU e MQTT.
En-m, agora possvel usarmos o NodeMCU como um client MQTT! Para isso, ser feito um projeto que
permite controlar e monitorar um output do NodeMCU via MQTT. O output em questo o prprio LED da
placa (que, neste caso, est ligado diretamente ao output D0).
Importante:
1) O LED possui acionamento em lgica invertida, ou seja, para acend-lo preciso enviar o estado LOW
para D0 e para apag-lo necessrio enviar estado High. Isto ocorre pois o output est ligado ao catodo do
LED na placa.
2)O ID MQTT no cdigo serve como identi-cador para o broker, o permitindo gerenciar as conexes. Se
voc escolher um ID MQTT que j est sendo utilizado, a conexo do mesmo ser interrompida para a sua
ser estabelecida. Isto pode gerar grandes transtornos para ambos os dispositivos com mesmo ID MQTT.
Desta forma, recomendo que o ID MQTT seja escolhido como algo aleatrio (assim garante-se unicidade do
mesmo).
3) Como no foi utilizado nenhum componente alm da prpria NodeMCU, no h circuito esquemtico
envolvido (ou seja, em termos de hardware preciso somente do NodeMCU!)
Arduino
1 #Programa: NodeMCU e MQTT - Controle e Monitoramento IoT
2 #Autor: Pedro Bertoleti
3
4 #include <ESP8266WiFi.h> // Importa a Biblioteca ESP8266WiFi
5 #include <PubSubClient.h> // Importa a Biblioteca PubSubClient
6
7 //defines:
8 //defines de id mqtt e tpicos para publicao e subscribe
9 #define TOPICO_SUBSCRIBE "MQTTFilipeFlopEnvia" //tpico MQTT de escuta
10 #define TOPICO_PUBLISH "MQTTFilipeFlopRecebe"//tpico MQTT de envio de informaes para Broker
11 //IMPORTANTE: recomendamos fortemente alterar os
12 //desses tpicos. Caso contrrio, h
13 //chances de voc controlar e monitor
14
15
16
//de outra pessoa.
#define ID_MQTT"HomeAut" //id mqtt (para identificao de sesso)
//IMPORTANTE: este deve ser nico no broker (ou seja,
17 //se um client MQTT tentar entrar com o mesmo
r m n
18 //id de outro j conectado ao broker, o broker
19 //ir fechar a conexo de um deles).
20 0 0
21 Pesquisar produtos
https://www.filipeflop.com/blog/controlemonitoramentoiotnodemcuemqtt/ 4/38
201792 ControleeMonitoramentoIoTcomNodeMCUeMQTTFilipeFlop
r m n
88 Serial.println(SSID);
89 Serial.println("Aguarde");
0 0
90
Pesquisar produtos
https://www.filipeflop.com/blog/controlemonitoramentoiotnodemcuemqtt/ 5/38
201792 ControleeMonitoramentoIoTcomNodeMCUeMQTTFilipeFlop
91 reconectWiFi();
92 }
93
94 //Funo: inicializa parmetros de conexo MQTT(endereo do
95 //broker, porta e seta funo de callback)
96 //Parmetros: nenhum
97 //Retorno: nenhum
98 void initMQTT()
99 {
100 MQTT.setServer(BROKER_MQTT, BROKER_PORT); //informa qual broker e porta deve ser conectado
101 MQTT.setCallback(mqtt_callback);//atribui funo de callback (funo chamada quando
102 }
103
104 //Funo: funo de callback
105 //esta funo chamada toda vez que uma informao de
106 //um dos tpicos subescritos chega)
107 //Parmetros: nenhum
108 //Retorno: nenhum
109 void mqtt_callback(char* topic, byte* payload, unsigned int length)
110 {
111 String msg;
112
113 //obtem a string do payload recebido
114 for(int i = 0; i < length; i++)
115 {
116 char c = (char)payload[i];
117 msg += c;
118 }
119
120 //toma ao dependendo da string recebida:
121 //verifica se deve colocar nivel alto de tenso na sada D0:
122 //IMPORTANTE: o Led j contido na placa acionado com lgica invertida (ou seja,
123 //enviar HIGH para o output faz o Led apagar / enviar LOW faz o Led acender)
124 if (msg.equals("L"))
125 {
126 digitalWrite(D0, LOW);
127 EstadoSaida = '1';
128 }
129
130 //verifica se deve colocar nivel alto de tenso na sada D0:
131 if (msg.equals("D"))
132 {
133 digitalWrite(D0, HIGH);
134 EstadoSaida = '0';
135 }
136
137 }
138
139 //Funo: reconecta-se ao broker MQTT (caso ainda no esteja conectado ou em caso de a conexo cair)
140 //em caso de sucesso na conexo ou reconexo, o subscribe dos tpicos refeito.
141 //Parmetros: nenhum
142 //Retorno: nenhum
143 void reconnectMQTT()
144 {
145 while (!MQTT.connected())
146 {
147 Serial.print("* Tentando se conectar ao Broker MQTT: ");
148 Serial.println(BROKER_MQTT);
149 if (MQTT.connect(ID_MQTT))
150 {
151 Serial.println("Conectado com sucesso ao broker MQTT!");
152 MQTT.subscribe(TOPICO_SUBSCRIBE);
153
154
}
else
155 {
156 Serial.println("Falha ao reconectar no broker.");
r m n
157 Serial.println("Havera nova tentatica de conexao em 2s");
158 delay(2000);
0 0
159
}
Pesquisar produtos
https://www.filipeflop.com/blog/controlemonitoramentoiotnodemcuemqtt/ 6/38
201792 ControleeMonitoramentoIoTcomNodeMCUeMQTTFilipeFlop
160 }
161 }
162
163 //Funo: reconecta-se ao WiFi
164 //Parmetros: nenhum
165 //Retorno: nenhum
166 void reconectWiFi()
167 {
168 //se j est conectado a rede WI-FI, nada feito.
169 //Caso contrrio, so efetuadas tentativas de conexo
170 if (WiFi.status() == WL_CONNECTED)
171 return;
172
173 WiFi.begin(SSID, PASSWORD); // Conecta na rede WI-FI
174
175 while (WiFi.status() != WL_CONNECTED)
176 {
177 delay(100);
178 Serial.print(".");
179 }
180
181 Serial.println();
182 Serial.print("Conectado com sucesso na rede ");
183 Serial.print(SSID);
184 Serial.println("IP obtido: ");
185 Serial.println(WiFi.localIP());
186 }
187
188 //Funo: verifica o estado das conexes WiFI e ao broker MQTT.
189 //Em caso de desconexo (qualquer uma das duas), a conexo
190 // refeita.
191 //Parmetros: nenhum
192 //Retorno: nenhum
193 void VerificaConexoesWiFIEMQTT(void)
194 {
195 if (!MQTT.connected())
196 reconnectMQTT(); //se no h conexo com o Broker, a conexo refeita
197
198 reconectWiFi(); //se no h conexo com o WiFI, a conexo refeita
199 }
200
201 //Funo: envia ao Broker o estado atual do output
202 //Parmetros: nenhum
203 //Retorno: nenhum
204 void EnviaEstadoOutputMQTT(void)
205 {
206 if (EstadoSaida == '0')
207 MQTT.publish(TOPICO_PUBLISH, "D");
208
209 if (EstadoSaida == '1')
210 MQTT.publish(TOPICO_PUBLISH, "L");
211
212 Serial.println("- Estado da saida D0 enviado ao broker!");
213 delay(1000);
214 }
215
216 //Funo: inicializa o output em nvel lgico baixo
217 //Parmetros: nenhum
218 //Retorno: nenhum
219 void InitOutput(void)
220 {
221 //IMPORTANTE: o Led j contido na placa acionado com lgica invertida (ou seja,
222
223
//enviar HIGH para o output faz o Led apagar / enviar LOW faz o Led acender)
pinMode(D0, OUTPUT);
224 digitalWrite(D0, HIGH);
225 }
r m n
226
227
0 0
228
//programa principal
Pesquisar produtos
https://www.filipeflop.com/blog/controlemonitoramentoiotnodemcuemqtt/ 7/38
201792 ControleeMonitoramentoIoTcomNodeMCUeMQTTFilipeFlop
Desta forma, seu NodeMCU vira um client MQTT acessvel de qualquer lugar do planeta!
Para isso, desenvolvi uma interface web que pode ser baixada clicando AQUI. Voc pode hospedar essa
interface em QUALQUER servidor web ou mesmo rodar no seu prprio computador / rodar localmente
(desde que o computador possua conexo com Internet, claro)!
Esta interface web basicamente um websocket que se comunica diretamente com o broker, por isso
pode estar rodando em qualquer lugar com disponibilidade de Internet que funciona.
r
Pesquisar produtos
m n 0 0
https://www.filipeflop.com/blog/controlemonitoramentoiotnodemcuemqtt/ 8/38
201792 ControleeMonitoramentoIoTcomNodeMCUeMQTTFilipeFlop
Para funcionar:
1 De-nir as strings dos tpicos de publish e subscribe e clicar em Conectar. Aguardar a mensagem
Conectado ao Broker!aparecer na sesso Debug / respostas do servidor.
2 Clicar em Ligare Desligarpara comandar o LED da placa NodeMCU. Observe que na sesso Status do
output ir constar o estado atual do LED. Este estado recebido do prprio NodeMCU, via MQTT (o que
torna este controle um controle em tempo real).
Gostou ? Ajude-nos a melhorar o blog atribuindo uma nota a este tutorial (estrelas no -nal do artigo),
comente e visite nossa loja FILIPEFLOP!
Posts Relacionados
r
Pesquisar produtos
m n 0 0
https://www.filipeflop.com/blog/controlemonitoramentoiotnodemcuemqtt/ 9/38
201792 ControleeMonitoramentoIoTcomNodeMCUeMQTTFilipeFlop
Pedro Bertoleti
Vdeo: Controle de Servo Motor sem biblioteca Vdeo: Controle de Servo Motor Por Interrupo
76 Comentrios
Bom post. Sabe me dizer se existe uma quantidade mxima de mensagens que eu posso mandar
diariamente ?
Pedro r
Correiaprodutos
Pesquisar 30 de maio de 2016
m n 0 0
Responder
https://www.filipeflop.com/blog/controlemonitoramentoiotnodemcuemqtt/ 10/38
201792 ControleeMonitoramentoIoTcomNodeMCUeMQTTFilipeFlop
Porm, sendo prtico, eu j deixei sistemas embarcados enviando dados segundo a segundo no
broker iot.eclipse.org por dias e no tive problemas (portanto, se pretende algo similar, no
encontrar problemas).
Parabns pela iniciativa, estava lendo sobre o assunto, que ao meu ver achei muito interessante.
r
Pesquisar produtos
m n 0 0
https://www.filipeflop.com/blog/controlemonitoramentoiotnodemcuemqtt/ 11/38
201792 ControleeMonitoramentoIoTcomNodeMCUeMQTTFilipeFlop
Parabns pelo belo tutorial. Muito didtico e esclarecedor. So pessoas como voc que nos do animo a
proseguir neste ramo. Me abriu um belo caminho.
Joo, boa noite.
r
Pesquisar produtos
m n 0 0
https://www.filipeflop.com/blog/controlemonitoramentoiotnodemcuemqtt/ 12/38
201792 ControleeMonitoramentoIoTcomNodeMCUeMQTTFilipeFlop
Seu comentrio me motiva cada vez mais a continuar este trabalho de escrever e ensinar o pouco
que sei. muito grati-cante mesmo ler isso! Muito obrigado!
Excelente artigo!!
Bem didtico!!
No vejo a hora de ter novos artigos sobre MQTT!!!
Pedro,
Realmente muito bom o tutorial. Como voc disse acima, eu espero ver novos posts sobre MQTT. Muito
interessante o tema. Mas -quei com uma dvida: onde de-nido o ID do nodeMCU que est
enviando/recebendo as mensagens? Isso seria o TOPICO_SUBSCRIBE e o TOPICO_PUBLISH? Minha dvida
recebendo r
a mensagem,
Pesquisar produtos
m
caso eu tenha mais de um cliente conectado? n
, onde eu fao a de-nio de um cliente espec-co, de modo que eu saiba que est enviando ou
0 0
https://www.filipeflop.com/blog/controlemonitoramentoiotnodemcuemqtt/ 13/38
201792 ControleeMonitoramentoIoTcomNodeMCUeMQTTFilipeFlop
Outra coisa, no cdigo voc de-niu o led azul embutido no NodeMCU como sendo o D0. No
NodeMCU que eu tenho aqui o led azul est ligado ao D4 (GPIO2). Troquei no cdigo e funcionou.
Primeiramente, muito obrigado pelo feedback. Sobre o ID do MQTT, este est de-nido no
cdigo em:
Este ID serve para o broker gerenciar sua conexo / conexo de qualquer cliente com ele. Ou
seja, cada cliente deve ter um ID nico no broker. Se isso no for obedecido, um dos clientes
(no caso, o que j estava conectado) ser desconectado do servidor abruptamente.
Quanto aos tpicos, via de regra estes podem se repetir, pois o MQTT funciona de forma que
pode-se haver N publishers e N subscribers para um mesmo tpico.
PORM, se voc publicar informao em um tpico alheio (diferente do seu), quem
subescreve este tpico ir escutar sua mensagem. No caso do projeto deste post em
espec-co, isso signi-ca que se voc usar o mesmo nome de tpico de publish que outra
pessoa, poder controlar o LED da placa dela.
r
Pesquisar produtos
m n 0 0
https://www.filipeflop.com/blog/controlemonitoramentoiotnodemcuemqtt/ 14/38
201792 ControleeMonitoramentoIoTcomNodeMCUeMQTTFilipeFlop
Eu tenho uma dvida, se eu quisesse fazer isso tambm de forma local? teria como eu ter um servidor, que
no caso seria um broker, localmente, sou iniciante e se eu estiver falando besteira, perdoe-me.. Por algum
motivo perca a conexo com a internet, eu localmente conseguiria ainda assim ver as mensagens
postadas..
Parabns Pedro,
Praticamente foi baixar a interface, copiar e colar o cdigo, e colocar pra funcionar, tanto na rede local
como na rede externa funcionou sem problemas.
Sobre o fato da logica invertida da porta, no tem como editar o arquivo para que os botes -quem com
nome liga e desliga inversos na interface para no -car ligando quando se desliga e vice versa?
Obrigado.
Grande abrao!
Eng. Carlos Kwiek.
r
Carlos Kwiek 25 de julho de 2016
Pesquisar produtos
m n 0 Responder
0
https://www.filipeflop.com/blog/controlemonitoramentoiotnodemcuemqtt/ 15/38
201792 ControleeMonitoramentoIoTcomNodeMCUeMQTTFilipeFlop
Atenciosamente,
Pedro Bertoleti
Pedro,
Obrigado a voc pela resposta, testei ontem mesmo editando os botes e -cou perfeito.
Att.
Eng.Carlos kwiek
r m n
Usei um modulo rele, e uma lmpada de LED para a aplicao, tanto na descrio como no vdeo deixei
claro de quem so os crditos e a autoria, bem como o link para baixar
0 a aplicao. 0
Pesquisar produtos
https://www.filipeflop.com/blog/controlemonitoramentoiotnodemcuemqtt/ 16/38
201792 ControleeMonitoramentoIoTcomNodeMCUeMQTTFilipeFlop
Abs.
Carlos Kwiek.
Atenciosamente,
Pedro Bertoleti
Bom dia. Gostaria de agradecer a sua boa vontade em compartilhar o seu conhecimento com todos. Suas
publicaes sempre tem me ajudado muito. Amigo eu programei o nodeMCU, porm no consegui me
conectar ao servidor. Eu apenas executei a pgina que est em anexo e tentei me conectar para depois
poder ligar e desligar o led. Eu deveria fazer algo mais? desde j muitooooooo obrigado.
r
Alex, boa tarde.
Pesquisar produtos
m n 0 0
https://www.filipeflop.com/blog/controlemonitoramentoiotnodemcuemqtt/ 17/38
201792 ControleeMonitoramentoIoTcomNodeMCUeMQTTFilipeFlop
Primeiramente, muito obrigado pelo feedback. uma satisfao saber que minhas publicaes te
ajudaram!
Quanto ao erro ocorrido, h algumas possibilidades. Vou list-las abaixo:
Veri-que se seu nodemcu se conectou corretamente a rede wi- (esta informao aparece no Serial
Monitor)
Veri-que se seu nodemcu se conectou corretamente ao broker MQTT (esta informao aparece no
Serial Monitor)
Se voc alterou os tpicos de publish e subscribe, veri-que se na pgina os tpicos esto iguais aos
do cdigo gravado no NodeMCU
O ID MQTT precisa ser alterado 9coloque algo nico pra voc ou aleatrio. Se deu ID MQTT
coincidir com algum outro j conectado ao Broker, haver problemas.
Por favor, veri-que estas questes e retorne dizendo se conseguiu fazer funcionar.
Atenciosamente,
Pedro Bertoleti
Primeiramente, Parabns pelo trabalho Pedro Bertoleti. Gostaria de saber se eu consigo ter acesso ao
broker, ou existe alguma ferramenta que me possibilite monitorar os dados recebidos no broker do
Nodemcu em tempo real? Desde j agradeo.
tpico
r
Pesquisarque
m
deseja obter informaes e monitorar.
produtos
n
para computador (MQTTLens, por exemplo), dar subscribe / se subescrever em um determinado
0 0
https://www.filipeflop.com/blog/controlemonitoramentoiotnodemcuemqtt/ 18/38
201792 ControleeMonitoramentoIoTcomNodeMCUeMQTTFilipeFlop
Se voc no entendeu, avise novamente por favor que explicarei de outra forma.
Atenciosamente,
Pedro Bertoleti
Prezado Pedro,
Perfeito, consegui exatamente o que queria. Desconhecia essa ferramenta MQTTlens, simples
porm, robusta para testes. Mais outra coisa amigo, teu websocket no executa na minha
mquina, o mesmo no consegue conectar ao servidor, nem mesmo exibe mensagem, existe
algum plugin ou app que deva estar instalado na mquina para o mesmo conseguir conectar.
Mais uma vez, parabns pelo artigo e pelo respaldo para com os comentrios.
Diego, este problema relatado com o websocket no seu caso est me parecendo algum
bloqueio de -rewall ou algo do gnero.
Voc est com acesso a porta 1883 liberado no computador que est utilizando?
Atenciosamente,
Pedro Bertoleti
r
Pesquisar produtos
m n 0 0
https://www.filipeflop.com/blog/controlemonitoramentoiotnodemcuemqtt/ 19/38
201792 ControleeMonitoramentoIoTcomNodeMCUeMQTTFilipeFlop
Pedro,
Diego, voc est tentando acessar um broker que est rodando na sua mquina ou o broker
iot.eclipse.org? Se est tentando acessar um broker que est rodando na sua mquina, o websocket
(mais precisamente, o arquivo tmo.js dele) precisa ser modi-cado.
Excelente material, entretanto estou com algumas di-culdades na conexo com o servidor. Veri-quei pelo
serial monitor se a conexo com a placa foi bem sucedida, tambm vi que a conexo com o Broker MQTT
do iot.eclipse.org tambm ocorreu normalmente, -quei apenas tendo a mensagem de - Estado da saida
D0 enviado ao broker! na serial, mas quando executo o .html, no tenho resposta do servidor. J -z as
alteraes de tpico de publish e subscribe, inseri um ID MQTT aleatrio, inclusive alterei at a interface
html o preenchimento dos tpicos e o problema permanece. Como proceder?
r
Erick Vilela 15 de setembro de 2016
Pesquisar produtos
m n 0
Responder
0
https://www.filipeflop.com/blog/controlemonitoramentoiotnodemcuemqtt/ 20/38
201792 ControleeMonitoramentoIoTcomNodeMCUeMQTTFilipeFlop
Cara, primeiramente meu PARABNS, BELO PROJETO!!! Eratudo que eu queria saber!!!
Bom, eu to em processo de construo do meu TCC 1, e eu gostaria de saber como posso contribuir para /
com esse tipo de projeto?
Mias uma dvida, eu posso construir meu prprio site MQTT? Ou seja, eu posso fazer um site em que eu
possa tanto enviar como receber dados do node, e cadastra-los em um Banco de dados possibilitando
assim acessos via REST por exemplo?? Isso seria possvel? se sim, como?
r
Pesquisar produtos
m n 0 0
https://www.filipeflop.com/blog/controlemonitoramentoiotnodemcuemqtt/ 21/38
201792 ControleeMonitoramentoIoTcomNodeMCUeMQTTFilipeFlop
Muito obrigado pelo feedback! Fico feliz em saber que te ajudei de alguma maneira.
Quanto a contribuir com o projeto, o que voc quis dizer? Evoluir o projeto e compartilhar conosco?
Desculpa, que no entendi muito bem.
Quanto a sua segunda pergunta, sim, voc pode construir seu prprio broker MQTT. Para fazer o
que voc deseja (broker, banco de dados e tudo mais), voc precisar instalar em sua mquina todas
essas coisas e disponibiliza-las em rede (dica: pesquise por broker Mosquitto e um pack de
software/servios chamado XAMPP) ou at mesmo comprar acesso a uma VPS (mquina virtual na
Internet) instalar as coisas nela e deixar tudo remoto. Se no fui claro, s falar que explico
novamente.
Atenciosamente,
Pedro Bertoleti
Srs, o cdigo funcionou bem no nodemcu, mas ainda no consegui entender pq temos 2 tpicos se
estamos publicando/controlando apenas uma varivel que o estado do LED.
Eu no deveria ter apenas um tpico onde eu publicaria o estado do LED e assinaria o mesmo pra saber
em que estado o LED est?
Algum me explica por favor! hehehehe
O porque de ter dois tpicos para facilitar o entendimento (ao menos foi o que planejei), pois dessa
forma pode-se ver separadamente tudo o que sai e o que chega nos tpicos.
Voc pode fazer da maneira que sugeriu (usar um s tpico) sem prolemas tambm.
Pedro
r
Atenciosamente,
Bertoleti
Pesquisar produtos
m n 0 0
https://www.filipeflop.com/blog/controlemonitoramentoiotnodemcuemqtt/ 22/38
201792 ControleeMonitoramentoIoTcomNodeMCUeMQTTFilipeFlop
Obrigado.
Obrigado pela leitura e pelos elogios. Eu nunca usei este Shield, mas ACHO que pode aplicar o MQTT
com ele sem problema algum (pois o MQTT utiliza recursos simples de rede / protocolo TCP, coisas
que com toda a certeza o Shield suportar).
Quanto a criar um servidor MQTT, voc pode baixar o Broker Mosquitto no site
https://mosquitto.org/download/ e instalar na sua mquina/servidor/VPS (e, por consequncia,
utiliz-la como seu servidor MQTT particular). Nesta pgina tem instrues de como se instala e tudo
mais =]
Atenciosamente,
Pedro Bertoleti
r
Pesquisar produtos
m n 0 0
https://www.filipeflop.com/blog/controlemonitoramentoiotnodemcuemqtt/ 23/38
201792 ControleeMonitoramentoIoTcomNodeMCUeMQTTFilipeFlop
Ol, tenho uma dvida sobre a placa, est descrito que tem 10 portas digitais e 1 analgica, certo? Mas, me
informaram que no possvel utilizar todas?
Obrigado
Muito obrigado pelo trabalho e esforo dedicados em publicar artigos to bem feitos e to didticos.
Gostaria de saber se o protocolo MQTT serve para trabalhar de maneira local?
Agradeo muito a leitura e feedback! muito bom saber que os artigos esto sendo teis! =]
O MQTT pode ser usado e forma local se voc disponibilizar, na sua rede local, uma
mquina/servidor com um broker instalado. Para baixar e ver como instala um broker, acessa esse
site: https://mosquitto.org/download/
Atenciosamente,
Pedro Bertoleti
r
Pedro Bertoleti 16 de dezembro de 2016
Pesquisar produtos
m n 0 Responder
0
https://www.filipeflop.com/blog/controlemonitoramentoiotnodemcuemqtt/ 24/38
201792 ControleeMonitoramentoIoTcomNodeMCUeMQTTFilipeFlop
O meu conecta-se ao broker pelo serial mas pela interface web diz que a conexo com o broker foi perdida,
Alguma sugesto? Grato.
Ol Pedro,
parabns pelo site e pelo tpico, venho aprendendo muita coisa com vocs ultimamente.
Entretanto estou com di-culdades de colocar a minha ESP8266 para funcionar. Estou com a mesma placa
utilizada nesse tpico, inclusive comprada no site e, ao seguir esse passo a passo, no site aparece o
seguinte erro:
A conexo com o broker foi perdida.
Como se no fosse possvel se conectar com a placa.
Qual erro est ocorrendo e como seria possvel corrigir isso?
Nas con-guraes deixei:
Placa: Node MCU 1.0 ESP-12E Module)
CPU Frequency: 80MHz
Flash Size: 4M(SPIFFS)
UploadSpeed: 155200
Porta COM4
Programador: AVRISP mkll.
r m n
const char* PASSWORD = 91DC114621; // Senha da rede WI-FI que deseja se conectar
0 0
A -m
de poderprodutos
Pesquisar testar o cdigo diretamente como se encontra o seu site pre-de-nido.
https://www.filipeflop.com/blog/controlemonitoramentoiotnodemcuemqtt/ 25/38
201792 ControleeMonitoramentoIoTcomNodeMCUeMQTTFilipeFlop
Conforme mostra os comentrios no cdigo, alm de alterar os nomes dos tpicos (para no ter
risco de coincidir com o tpico de algum), preciso modi-car o ID_MQTT. Experimente alterar o
valor dele e tente de novo.
Atenciosamente,
Pedro Bertoleti
Pedro Bertoleti,
e atualizei esses dados interface web feita por ti e mesmo assim no consegui conectar a rede.
r
Pesquisar produtos
m n
mas logo aps tentar de novo, consegui carregar o cdigo, conforme mensagem a seguir:
0 0
https://www.filipeflop.com/blog/controlemonitoramentoiotnodemcuemqtt/ 26/38
201792 ControleeMonitoramentoIoTcomNodeMCUeMQTTFilipeFlop
Se no for muito incmodo, gostaria que voc me ajudasse nesses detalhes. Te agradeo desde j por ter
feito este post sobre o MQTT pois realmente ajudou bastante.
r
Pesquisar produtos
m
Vou deixar meu email caso queira entrar em contato: alyssonjmb@gmail.com
n 0 0
https://www.filipeflop.com/blog/controlemonitoramentoiotnodemcuemqtt/ 27/38
201792 ControleeMonitoramentoIoTcomNodeMCUeMQTTFilipeFlop
, a interface web no est funcionando (no conecta). Alguma dica do que fazer?
Abraos!
Fantstico o blog eu gostaria de usar o seu projeto, para aprender mais sobre o iot porem sou novato no
assunto, que IDE voc usou para criar a pagina de web, como posso aprender mais sobre o passo a passo
para que eu desenvolva o meu projeto sozinho.
r
desculpa.
Pesquisar produtos
m n 0 0
https://www.filipeflop.com/blog/controlemonitoramentoiotnodemcuemqtt/ 28/38
201792 ControleeMonitoramentoIoTcomNodeMCUeMQTTFilipeFlop
Atenciosamente,
Pedro Bertoleti
Att.:Jurandir
Atenciosamente,
Pedro Bertoleti
r
Pesquisar produtos
m n 0 0
https://www.filipeflop.com/blog/controlemonitoramentoiotnodemcuemqtt/ 29/38
201792 ControleeMonitoramentoIoTcomNodeMCUeMQTTFilipeFlop
ao invs de:
//const char* BROKER_MQTT = iot.eclipse.org; //URL do broker MQTT que se deseja utilizar
coloquei
const char* BROKER_MQTT = 192.168.1.110; //Ip do meu PC
int BROKER_PORT = 1883; // Porta do Broker MQTT
Ou seja ele conecta normalmente, porm quando tento conectar com o cdigo em html e js
que voc disponibilizou ele no conecta
Desde j agradeo!
r m n
Jurandir Hora 24 de fevereiro de 2017 Responder
0 0
Pesquisar produtos
https://www.filipeflop.com/blog/controlemonitoramentoiotnodemcuemqtt/ 30/38
201792 ControleeMonitoramentoIoTcomNodeMCUeMQTTFilipeFlop
Ol
Estou com o mesmo problema.
Conseguiu resolver?
Para ter vrios tpicos distintos, basta criar mais de-nes e fazer mais subscribes aos tpicos dos
de-nes (quantos quiser, no h limite de-nido neste caso).
r m n
Respondi sua pergunta (essa era sua dvida mesmo? no sei se entendi direito a sua pergunta)?
0 0
Pesquisar produtos
https://www.filipeflop.com/blog/controlemonitoramentoiotnodemcuemqtt/ 31/38
201792 ControleeMonitoramentoIoTcomNodeMCUeMQTTFilipeFlop
Atenciosamente,
Pedro Bertoleti
Ol, tenho uma dvida. Estou implementando um sistema de monitoramento de energia usando MQTT. O
protocolo diz que publish e subscriber devem assinar o mesmo tpico para que as informaes que um
publique o outro tenha acesso. Ento, eu n entendi pq vocs criaram dois tpicos e tambm no vi qual o
momento em que os dispositivos assinam esses tpicos.
O que ocorre que h um tpico dedicado para transmitir informaes da interface web para o
NodeMCU e outro dedicado para transmitir informaes do NodeMCU para a interface web.
Portanto, cada tpico est com publish e subscrbe amarrado, conforme especi-ca o protocolo
MQTT.
A razo de ter dois tpicos foi facilitar a visualizao de mensagens MQTT (essa foi a ideia, desculpa
se no -cou claro e boa essa parte).
Quanto ao momento em que o NodeMCU assina o tpico, isso ocorre na funo reconnect MQTT.
Atenciosamente,
Pedro Bertoleti
r
Pesquisar produtos
m n 0 0
https://www.filipeflop.com/blog/controlemonitoramentoiotnodemcuemqtt/ 32/38
201792 ControleeMonitoramentoIoTcomNodeMCUeMQTTFilipeFlop
Pedro, muito obrigado. Pelo que pude entender, estaria igualmente correto utilizar um ao
tpico, onde os dois seriam hora publish e hora subscriber?
Alm disso, parabns pelo trabalho aqui do -lipeop, tem uma postagem de vocs que uso
como referncia no meu tcc.
Gostaria de saber se possvel desenvolver uma pgina web com login e senha em que eu con-guro a
minha rede wi- no ESP8266 e aps isso gerado um subscribe e um publish aleatrio para que assim, um
determinado subscriber s possa ver os status de seus respectivos publishers.
Desde ja agradeo.
Guilherme, boa noite. Primeiramente, muito obrigado pelo elogio e leitura do artigo!
Eu no sei se isso possvel (nunca cheguei a fazer algo parecido). Infelizmente vou -car te devendo
a resposta.
r m n
Atenciosamente,
Pedro Bertoleti 0 0
Pesquisar produtos
https://www.filipeflop.com/blog/controlemonitoramentoiotnodemcuemqtt/ 33/38
201792 ControleeMonitoramentoIoTcomNodeMCUeMQTTFilipeFlop
https://github.com/esp8266/Arduino/blob/master/libraries/ESP8266WebServer/examples/SimpleAuthenti-cat
A pessoa utilizando esse protocolo (MQTT), utiliza nuvem ou computador pessoal para -car rodando o
servidor, supondo que eu escolha a nuvem, se minha casa cair a conexo, mesmo sem internet se eu
estiver dentro de minha casa eu conseguiria controlar os dispositivos?
r
Pesquisar produtos
m n 0 0
https://www.filipeflop.com/blog/controlemonitoramentoiotnodemcuemqtt/ 34/38
201792 ControleeMonitoramentoIoTcomNodeMCUeMQTTFilipeFlop
No. Pois o servidor broker est na nuvem, e seus dispositivos conversam por meio dele. O que voc
pode fazer criar um broker local, que permita a conversa entre os dispositivos e que replique as
mensagens para o broker na nuvem. Assim, em caso de falha na conexao, o broker local continuaria
permitindo a comunicao com os publicadores e consumidores.
Boa tarde, estou trabalhando nesse sistema e gostaria que me ajudasse, gostaria de deixar o MQTT que
aparece na pagina oculto, ou em forma de include ou no proprio arquivo sql, tentei agumas formas em
include, mas no conecta no MQTT, como fao isso.
Ol Pedro. Tudo bem? Muto legal os seus artigos. Parabns! Fiquei com uma dvida
Montei o projeto CONTROLE E MONITORAMENTO IOT COM NODEMCU E MQTT e funcionou tudo
perfeitamente no broker iot.eclipse.org. Quando alterei para o meu broker mosquitto que tenho
instalado em uma instncia prpria na AWS, o websocket no funcionou. Conecta, mas o interruptor no
liga ou desliga.
J -z a alterao no -rmware substituindo o endereo do broker e tambm no InterfaceWeb.html na linha
7, mas no adiantou. Voc poderia me explicar melhor o que tenho que alterar?
Obs. 1: Apesar de estar rodando na AWS, instalei um broker Mosquitto independente do AWS IoT, pois o
mesmo no compatvel com o ESP8266.
r
Pesquisar produtos
m n 0 0
https://www.filipeflop.com/blog/controlemonitoramentoiotnodemcuemqtt/ 35/38
201792 ControleeMonitoramentoIoTcomNodeMCUeMQTTFilipeFlop
Obs. 2: Testei com outro MQTT Client e funcionou legal. S o websocket que dar problema.
Abraos.
Vitor
Imagino que voc encontre na Internet algum tutorial ensinando a habilitar o websocket do
Mosquitto no AWS.
Atenciosamente,
Pedro Bertoleti
r
Pesquisar produtos
m n 0 0
https://www.filipeflop.com/blog/controlemonitoramentoiotnodemcuemqtt/ 36/38
201792 ControleeMonitoramentoIoTcomNodeMCUeMQTTFilipeFlop
Um abrao.
Ol Pedro,
Obrigado por compartilhar, mas todas as placas nodemcu da lolin e outras marcas, possuem o LED
onboard no D4 GPIO2, e funcionam com logica invertida, ou seja, ativam com LOW e desativam com
HIGH, neste link a folha de dados do ESP8266,
https://raw.githubusercontent.com/nodemcu/nodemcu-
devkit/master/Documents/NODEMCU_DEVKIT_SCH.png
Abs.
Carlos kwiek
Bom
dia
r
prezado,
Pesquisar produtos
m n 0 0
https://www.filipeflop.com/blog/controlemonitoramentoiotnodemcuemqtt/ 37/38
201792 ControleeMonitoramentoIoTcomNodeMCUeMQTTFilipeFlop
Tm como usar o esp8266 12e nodemcu para monitora uma cmera de segurana yy2p pelo Mqtt?
Grato!
S o meu que est dando erro na biblioteca?? Aparece que tem que ter e aquel < d problema tambm, o
que fazer??
Por favor copie o cdigo novamente, pois o mesmo estava sendo apresentado com erro.
Abrao!
r m n
Adilson Equipe FILIPEFLOP
0 0
Pesquisar produtos
https://www.filipeflop.com/blog/controlemonitoramentoiotnodemcuemqtt/ 38/38