Você está na página 1de 38

201792 ControleeMonitoramentoIoTcomNodeMCUeMQTTFilipeFlop

Incio ESP8266 Controle e Monitoramento IoT com NodeMCU e MQTT

Controle e Monitoramento IoT com NodeMCU e


MQTT
ESP8266, Wireless
30 de maio de 2016
Pedro Bertoleti

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:

Tpico chave / identi-cao da informao publicada. usado para direcionar a informao


publicada / enviada a quem assina (quem d subscribe) no tpico. O tpico consiste de uma string
(por exemplo: MQTTTesteTopico)
Payload informao que deseja enviar (propriamente dita).

Umpublisher, conectado ao Broker (servidor MQTT) , envia/publica as informaes em um dado momento.


Os subscribers, assim como os publishers, tambm esto conectados aos brokers e escutando
mensagens trafegadas com o tpico-alvo. Quando uma mensagem com o tpico alvo publicada,
automaticamenteso direcionadas aos subscribers.

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.

Como utilizar o NodeMCU e MQTT


O NodeMCU pode ser programado para interagir com um broker MQTT, ou seja, ele pode ser programado
para ser um client MQTT. Antes de ser programado para isso, necessrio:

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

2 Baixar e instalar a biblioteca pubsubclient. Para baixar, visite o GitHub do projeto.

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!)

Programa NodeMCU e MQTT


Vamos programao!

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

22 //defines - mapeamento de pinos do NodeMCU


23 #define D016
24 #define D15
25 #define D24
26 #define D30
27 #define D42
28 #define D514
29 #define D612
30 #define D713
31 #define D815
32 #define D93
33 #define D10 1
34
35
36 // WIFI
37 const char* SSID = "SSID"; // SSID / nome da rede WI-FI que deseja se conectar
38 const char* PASSWORD = "SENHA"; // Senha da rede WI-FI que deseja se conectar
39
40 // MQTT
41 const char* BROKER_MQTT = "iot.eclipse.org"; //URL do broker MQTT que se deseja utilizar
42 int BROKER_PORT = 1883; // Porta do Broker MQTT
43
44
45 //Variveis e objetos globais
46 WiFiClient espClient; // Cria o objeto espClient
47 PubSubClient MQTT(espClient); // Instancia o Cliente MQTT passando o objeto espClient
48 char EstadoSaida = '0';//varivel que armazena o estado atual da sada
49
50 //Prototypes
51 void initSerial();
52 void initWiFi();
53 void initMQTT();
54 void reconectWiFi();
55 void mqtt_callback(char* topic, byte* payload, unsigned int length);
56 void VerificaConexoesWiFIEMQTT(void);
57 void InitOutput(void);
58
59 /*
60 *Implementaes das funes
61 */
62 void setup()
63 {
64 //inicializaes:
65 InitOutput();
66 initSerial();
67 initWiFi();
68 initMQTT();
69 }
70
71 //Funo: inicializa comunicao serial com baudrate 115200 (para fins de monitorar no terminal seri
72 //o que est acontecendo.
73 //Parmetros: nenhum
74 //Retorno: nenhum
75 void initSerial()
76 {
77 Serial.begin(115200);
78 }
79
80 //Funo: inicializa e conecta-se na rede WI-FI desejada
81 //Parmetros: nenhum
82 //Retorno: nenhum
83 void initWiFi()
84
85
{
delay(10);
86 Serial.println("------Conexao WI-FI------");
87 Serial.print("Conectando-se na rede: ");

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

229 void loop()


230 {
231 //garante funcionamento das conexes WiFi e ao broker MQTT
232 VerificaConexoesWiFIEMQTT();
233
234 //envia o status de todos os outputs para o Broker no protocolo esperado
235 EnviaEstadoOutputMQTT();
236
237 //keep-alive da comunicao com broker MQTT
238 MQTT.loop();
239 }

Desta forma, seu NodeMCU vira um client MQTT acessvel de qualquer lugar do planeta!

Interao com o NodeMCU


Vimos at agora que possvel transformar a incrvel placa NodeMCU em um client MQTT acessvel por
todo o planeta. Mas e para interagir com ele (ligar e desligar o output), como faremos?

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.

Observe a -gura abaixo:


r
Pesquisar produtos
m n 0 0

https://www.filipeflop.com/blog/controlemonitoramentoiotnodemcuemqtt/ 8/38
201792 ControleeMonitoramentoIoTcomNodeMCUeMQTTFilipeFlop

Figura 1 screenshot da pgina de controle do NodeMCU

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).

3 Se divertir com o NodeMCU e MQTT!

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

Tutorial: Como instalar o Internet das Coisas Concorra a 5


Comunicao Windows 10 no com a IoT Surfboard Mdulos WiFi
wireless com Arduino Raspberry Pi 2 ESP8266 NodeMcu
e Mdulo NRF24L01

Pedro Bertoleti

Engenheiro eletricista formado pela Faculdade de Engenharia de Guaratinguet (FEG - UNESP),


trabalha com desenvolvimento de -rmware. Colaborador do site FILIPEFLOP.

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

Pedro, bom dia.

Primeiramente, obrigado por ler e pelo comentrio.


O protocolo MQTT em si no coloca limites (tanto de conexes ao broker por device quanto em
tpicos subescritos / publicados e nmero de mensagens). Portanto, -ca a cargo do broker (o
servidor MQTT) gerenciar este tipo de coisa (pois ele quem gerenciar as conexes e sabe at
onde aguenta).
Sendo assim, o limite deve ser consultado / buscado no broker (cada broker tem o seu limite).

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).

Pedro Bertoelti 30 de maio de 2016 Responder

Parabns pela iniciativa, estava lendo sobre o assunto, que ao meu ver achei muito interessante.

Adriano Czocher 30 de maio de 2016 Responder

Adriano, muito obrigado!



Pedro Bertoelti 30 de maio de 2016 Responder


r
Pesquisar produtos
m n 0 0

https://www.filipeflop.com/blog/controlemonitoramentoiotnodemcuemqtt/ 11/38
201792 ControleeMonitoramentoIoTcomNodeMCUeMQTTFilipeFlop

Artigo muito bom!


Estava procurando por algo assim.

Franklin Bon-m 30 de maio de 2016 Responder

Franklin, muito obrigado!


Espero que o artigo acrescente conhecimento a voc!

Pedro Bertoelti 30 de maio de 2016 Responder

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.

Joao Goris 30 de maio de 2016 Responder


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!

Pedro Bertoleti 30 de maio de 2016 Responder

Excelente artigo!!
Bem didtico!!
No vejo a hora de ter novos artigos sobre MQTT!!!

Angelo Jos Roncali da Silva 31 de maio de 2016 Responder

Angelo, muito obrigado!

E pode deixar que vem mais coisa de MQTT por ai!

Pedro Bertoelti 31 de maio de 2016 Responder

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

Christian D'Aquino 31 de maio de 2016 Responder

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.

Christian D'Aquino 31 de maio de 2016 Responder

Christian, boa tarde.

Primeiramente, muito obrigado pelo feedback. Sobre o ID do MQTT, este est de-nido no
cdigo em:

#de-ne ID_MQTT HomeAut

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.

Portanto, para rodar o exemplo com segurana:


Alterar o ID MQTT (de preferencia para algo aleatrio ou incomum
Alterar os tpicos de publish e subscribe na interface web e no sketch

Pedro Bertoleti 31 de maio de 2016 Responder


r
Pesquisar produtos
m n 0 0

https://www.filipeflop.com/blog/controlemonitoramentoiotnodemcuemqtt/ 14/38
201792 ControleeMonitoramentoIoTcomNodeMCUeMQTTFilipeFlop

Boa tarde a todos sou novo aki.

Ismael 9 de junho de 2016 Responder

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..

Fabricio 17 de julho de 2016 Responder

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

Carlos, bom dia.

Primeiramente, muito obrigado pelo feedback!


Quanto a sua resposta, sim, possvel. Acredito at que a melhor soluo dessa forma que voc
disse (ou seja, alterando na interface os botes).

Atenciosamente,
Pedro Bertoleti

Pedro Bertoleti 26 de julho de 2016 Responder

Pedro,
Obrigado a voc pela resposta, testei ontem mesmo editando os botes e -cou perfeito.

Att.

Eng.Carlos kwiek

Carlos kwiek 26 de julho de 2016 Responder

No meu canal do youtube -z um vdeo usando esta aplicao https://www.youtube.com/watch?


v=y5fWZvFVfxQ&feature=youtu.be

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.

Carlos Kwiek 26 de julho de 2016 Responder

Carlos, muito obrigado!


O FilipeFlop e eu -camos muito gratos com o vdeo e por saber que de alguma forma te ajudamos no
seu projeto.

Atenciosamente,
Pedro Bertoleti

Pedro Bertoleti 27 de julho de 2016 Responder

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.

Alex Muniz 18 de agosto de 2016 Responder


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

Pedro Bertoleti 18 de agosto de 2016 Responder

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.

Diego Nunes 23 de agosto de 2016 Responder

Diego, boa noite.

Primeiramente, muito obrigado pela leitura e pelo elogio.



Quanto a acesso de dados ao broker, o que pode ser feito neste caso voc utilizar um cliente MQTT

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

Isso possvel pois no MQTT no h limites tericos de nmero de clientes subescritos a um


determinado tpico (da mesma forma que no h limites de clientes publicando em um mesmo
tpico).

Se voc no entendeu, avise novamente por favor que explicarei de outra forma.

Atenciosamente,
Pedro Bertoleti

Pedro Bertoleti 24 de agosto de 2016 Responder

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 Nunes 24 de agosto de 2016 Responder

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

Pedro Bertoleti 24 de agosto de 2016


Responder


r
Pesquisar produtos
m n 0 0

https://www.filipeflop.com/blog/controlemonitoramentoiotnodemcuemqtt/ 19/38
201792 ControleeMonitoramentoIoTcomNodeMCUeMQTTFilipeFlop

Pedro,

O Firewall est desativado, j havia instalado o Mosquitto anteriormente, servio


est rodando, o netstat -an retorna que a porta 1883 (TCP), est LISTENING
(Aberta para receber conexes), acredito que no seja -rewall, alguma outra
sugesto? Obrigado pela ateno.

Diego Nunes 24 de agosto de 2016

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.

Pedro Bertoleti 25 de agosto de 2016 Responder

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

Boa tarde, muito obrigado pelo post!


Consegui rodar e o serial consta como conectado ao MQTT, mas utilizando a pgina HTML no consigo
conectar/controlar o projeto, alguma dica?

Michel Martinez 18 de setembro de 2016 Responder

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?

Qualquer coisa, entra em contato cmg : arturfdasveloso@gmail.com ou manda ai teus contatos.

De j, super agradecido!!! Grande abrao.

Artur Felipe Veloso 20 de novembro de 2016 Responder

Arthur, boa tarde.



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

Pedro Bertoleti 22 de novembro de 2016 Responder

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

Augusto Soares 23 de novembro de 2016 Responder

Augusto, boa tarde.

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

Pedro Bertoleti 16 de dezembro de 2016 Responder

Parabns pelo trabalho.


Foi de grande valia este trabalho.
Gostaria de saber se posso aplicar este mtodo no shield Ethernet W5100, tem algum tutorial.
E sobre algum tutorial para criao de um servidor mqtt, procuro e no acho nada falando a respeito.
Gostaria de implementar o meu prprio servidor, poderia me dar uma ajuda?

Obrigado.

Felipe 7 de dezembro de 2016 Responder

Felipe, boa tarde.

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

Pedro Bertoleti 16 de dezembro de 2016 Responder


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

Ricardo Luis Bonizzi 8 de dezembro de 2016 Responder

Boa noite Pedro Bertoleti,

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?

Bruno Aguiar 16 de dezembro de 2016 Responder

Bruno, boa tarde.

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.

Ricardo 16 de dezembro de 2016 Responder

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.

Modi-quei o nome e a senha da minha internet, e no alterei o:


#de-ne TOPICO_SUBSCRIBE MQTTFilipeFlopEnvia
#de-ne TOPICO_PUBLISH MQTTFilipeFlopRecebe

// WIFI
const char* SSID = GVT-73F0; // SSID / nome da rede WI-FI que deseja se conectar

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

Agradeo desde j pela sua ajuda.

Rangel 20 de dezembro de 2016 Responder

Rangel, muito obrigado pela leitura e pelos elogios!

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 21 de dezembro de 2016 Responder

Pedro Bertoleti,

tentei fazer isso, deixei da seguinte forma:


#de-ne TOPICO_SUBSCRIBE entdadosszillat
#de-ne TOPICO_PUBLISH saidadosszillat .
#de-ne ID_MQTT Szill

e atualizei esses dados interface web feita por ti e mesmo assim no consegui conectar a rede.

Ao passar os dados ao controlador inicialmente veio os seguintes erros:

warning: espcomm_sync failed


error: espcomm_open failed
error: espcomm_upload_mem failed
error: espcomm_upload_mem failed


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

Uploading 235920 bytes from


C:UsersrafaeAppDataLocalTempbuildb891e3416cb23136a7af03139c3527b8.tmp/rele-teste-
2.ino.ino.bin to ash at 0x00000000
.. [ 34% ]
.. [ 69% ]
.. [ 100% ]

Entretanto a mensagem de erro:


A conexo com o broker foi perdida
Continua sendo repetida continuamente.

O que pode ser isso ?

Rangel 21 de dezembro de 2016 Responder

boa noite estou com esse mesmo problema.

isael 6 de janeiro de 2017 Responder

Excelente explicao sobre o MQTT e o uso com a NodeMCU!


Estou fazendo um TCC no qual pretendo usar o MQTT para transmisso de informaes para um site mas,
no momento, estou com di-culdade para criar um websocket para receber e enviar as informaes para a
NodeMCU.
Eu enviei o seu cdigo para a NodeMCU e funcionou bem (com um LED externo e usando o programa
Mosquitto), mas a sua Interface Web no funcionou aqui. Alm disso, no entendi como funciona o teste
disponibilizado pelo mosquitto.org (test.mosquitto.org).

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

Alysson Borba 28 de dezembro de 2016 Responder

, a interface web no est funcionando (no conecta). Alguma dica do que fazer?

Abraos!

Washington Coutinho Corra Junior 18 de janeiro de 2017 Responder

Boa noite Pedro

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.

Diego Rodrigo Alves 10 de fevereiro de 2017 Responder

Diego, boa tarde.

Muito obrigado pela leitura e pelo feedback!


Quanto pgina web, eu a criei na mo mesmo (programei o HTML e JavaScript na mo). De coisa
pronta, usei somente a biblioteca JavaScript do Paho-MQTT mesmo.

Quando voc diz aprender mais sobre o passo-a-passo, o que voc quis dizer? No entendi,


r
desculpa.
Pesquisar produtos
m n 0 0

https://www.filipeflop.com/blog/controlemonitoramentoiotnodemcuemqtt/ 28/38
201792 ControleeMonitoramentoIoTcomNodeMCUeMQTTFilipeFlop

Atenciosamente,
Pedro Bertoleti

Pedro Bertoleti 12 de fevereiro de 2017 Responder

Pedro, boa noite!


Primeiramente, parabns pelo artigo!
Instalei o MQTT broker no Windows e ele j est funcionando.
Gostaria de saber quais as modi-caes que devo fazer no seu cdigo para usa-lo localmente (em
localhost).

Att.:Jurandir

Jurandir Hora 22 de fevereiro de 2017 Responder

Jurandir, bom dia.

Muito obrigado pela leitura e pelo elogio!


Para fazer o NodeMCU se conectar ao seu broker, basta colocar como alvo o IP do computador
onde o broker est rodando. Para descobrir o IP do computador que est rodando o broker, v ao
prompt de comando e digite ipcon-g. O IP que aparece em IPv4 o IP de seu computador na rede.
Com este IP em mos, ao invs de colocar iot.eclipse.org no cdigo, coloque o IP obtido (entre as
spas).

Atenciosamente,
Pedro Bertoleti

Pedro Bertoleti 23 de fevereiro de 2017



Responder


r
Pesquisar produtos
m n 0 0

https://www.filipeflop.com/blog/controlemonitoramentoiotnodemcuemqtt/ 29/38
201792 ControleeMonitoramentoIoTcomNodeMCUeMQTTFilipeFlop

Pedro, boa noite!


Mudei o trecho do cdigo de conexo BROKER_MQTT no arduino.

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

No terminal serial aparece


Conectando-se na rede: GA-Lab
Aguarde
..
Conectado com sucesso na rede GA-LabIP obtido:
192.168.1.188
* Tentando se conectar ao Broker MQTT: 192.168.1.110
Conectado com sucesso ao broker MQTT!
Estados dos motores enviados ao broker!

Ou seja ele conecta normalmente, porm quando tento conectar com o cdigo em html e js
que voc disponibilizou ele no conecta

Fiz as seguintes mudanas no arquivo tmo.js:


mosq.ondisconnect = function(rc){
var p = document.createElement(p);
//var url = ws://iot.eclipse.org/ws;
var url = ws://192.168.1.110/ws;
e
Page.prototype.connect = function(){
//var url = ws://iot.eclipse.org/ws;
var url = ws://192.168.1.110/ws;
mosq.connect(url);

tenho como resposta: A conexo com o broker foi perdida.


No que estou errando?

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?

Alessandro 1 de junho de 2017 Responder

Boa tarde Pedro,


Fiquei com uma dvida, como eu fao para ter vrios tpicos de publicao?
E como publicar em nveis diferentes?
exemplo:
CASA/ILUMINACAO/SALA
CASA/TEMPERATURA/SALA o que eu teria que alterar no #de-ne abaixo?

#de-ne TOPICO_SUBSCRIBE MQTTFilipeFlopEnvia


#de-ne TOPICO_PUBLISH MQTTFilipeFlopRecebe

ELizeu 27 de fevereiro de 2017 Responder

Elizeu, boa noite.

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

Pedro Bertoleti 27 de fevereiro de 2017 Responder

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.

Emanuel Mariano 8 de maro de 2017 Responder

Emanuel, bom dia.

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

Pedro Bertoleti 8 de maro de 2017 Responder



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.

Emanuel Mariano 8 de maro de 2017 Responder

Ol Pedro. Primeiramente parabns pelo contedo redigido.

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 26 de abril de 2017 Responder

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

Pedro Bertoleti 26 de abril de 2017 Responder

Boa noite possvel sim. Segue o link do github de um exemplo.

https://github.com/esp8266/Arduino/blob/master/libraries/ESP8266WebServer/examples/SimpleAuthenti-cat

Paulo Roberto Ramos Pereira 14 de maio de 2017

Ol Paulo. Muito obrigado pelo exemplo.

Guilherme 14 de maio de 2017 Responder

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?

Marcos 4 de maio de 2017 Responder


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.

Sstenes Gomes 14 de junho de 2017 Responder

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.

Cleverson Silva 16 de maio de 2017 Responder

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

Vitor Farias 2 de julho de 2017 Responder

Vitor, boa noite.

Primeiramente, muito obrigado pelo elogio e pela leitura!


Sobre o seu problema, imagino que o que est ocorrendo que, por default, o websocket no
habilitado ao se instalar o Mosquitto. Enfrentei o mesmo problema quando instalei um Mosquitto
numa VPS minha da DigitalOcean, e o resolvi seguindo este tutorial:
https://www.digitalocean.com/community/tutorials/how-to-install-and-secure-the-mosquitto-mqtt-
messaging-broker-on-ubuntu-16-04

Imagino que voc encontre na Internet algum tutorial ensinando a habilitar o websocket do
Mosquitto no AWS.

Atenciosamente,
Pedro Bertoleti

Pedro Bertoleti 2 de julho de 2017 Responder

Valeu Pedro. Muito obrigado pelo retorno!

Vitor Farias 3 de julho de 2017 Responder


r
Pesquisar produtos
m n 0 0

https://www.filipeflop.com/blog/controlemonitoramentoiotnodemcuemqtt/ 36/38
201792 ControleeMonitoramentoIoTcomNodeMCUeMQTTFilipeFlop

Pedro, parabns pelo artigo!


Acabei de adquirir um nodeMCU e o programa funcionou perfeitamente!
Queria deixar apenas uma contribuio que me fez quebrar a cabea por um tempo.
H uma verso do nodeMCU da Lolin (V3), em que o LED on board passou a ser ligado no pino D4 (GPIO 2).
Caso seja o modelo de mais algum, seria interessante colocar essa observao.

Um abrao.

Renan Porto 16 de julho de 2017 Responder

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

Carlos kwiek 16 de julho de 2017 Responder

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!

gleison 7 de agosto de 2017 Responder

Bom dia Pedro Bertoleti;


Como fao para controlar uma cmera yy2p com ESP8266 e mais 4 rels?
Grato pela ateno!

gleison 8 de agosto de 2017 Responder

S o meu que est dando erro na biblioteca?? Aparece que tem que ter e aquel &lt d problema tambm, o
que fazer??

Gustavo 10 de agosto de 2017 Responder

Boa tarde Gustavo,

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