Use o MQTT DASH para controlar uma lâmpada remotamente

MQTT DASH
Este post faz parte da série MQTT Dash. Leia também os outros posts da série:

O MQTT Dash é um dos melhores aplicativos para interface gráfica no smartphone. Recentemente ministrei um treinamento sobre IoT, no Samsung Ocean, onde usei esse app para auxiliar no ensino de MQTT. Possui uma interface agradável, de fácil customização e configuração, sendo um dos melhores aplicativos que já utilizei para esse fim. A seguir apresento como utilizar esse app em conjunto com o ESP8266 e um broker MQTT configurado no CloudMQTT, para comandar uma lâmpada remotamente. Veja como é fácil!

Materiais necessários

  1. Placa com ESP8266 (nodeMCU, Wemos D1 ou mini, etc);
  2. Módulo RELE;
  3. Lâmpada;
  4. Cabos e Jumpers;
  5. Smartphone Android.

Se você ainda tem dúvida em como acionar uma lâmpada com Arduino, confira os artigos:

Você também pode testar o exemplo apresentado aqui, sem o uso de rele e lâmpada, apenas usando uma placa com ESP8266 e LEDs em uma protoboard, por exemplo.

TOME CUIDADO QUANDO FOR TRABALHAR COM ACIONAMENTO DE CARGAS AC.

Programação

Para o funcionamento dessa aplicação precisamos configurar um broker MQTT. Existem diversas opções de Brokers MQTT disponíveis, e para nosso teste vou utilizar o CloudMQTT.

O CloudMQTT gerencia um servidor Mosquitto na nuvem. Para mais informações sobre o Mosquitto e MQTT, acesse o artigo do Marcelo Barros: MQTT – Protocolos para IoT.

O CloudMQTT possui um plano gratuito que permite 10 conexões com velocidade de 10 Kbit/s.

Criando uma instância no CloudMQTT

Acesse o site do CloudMQTT e faça o seu registro. Após o login, clique no botão “+Create New Instance”. Será aberta a seguinte página:

Criando uma nova instância no CloudMQTT para uso do MQTT DASH.
Figura 1 – Criando uma nova instância no CloudMQTT

Preencha o nome, escolha o plano Free (Cute Cat) e clique em Create a New Instance.

Abra a instância criada:

Dados da instância criada no CloudMQTT.
Figura 2 – Dados da instância criada

Aqui estão as informações necessárias para conexão com o Broker: Server, User, Password e Port. Vamos usar essas informações no código do ESP8266 e no aplicativo MQTT Dash, mais a frente.

Código para placa ESP8266 no Arduino

Como subscriber vamos utilizar uma placa Wemos D1 que irá acionar uma lâmpada. A placa Wemos D1 R2 é similar ao nodeMCU e compatível ao pinout Arduino R3.

Placa Wemos D1 para teste do MQTT Dash.
Figura 3 – Placa Wemos D1

A programação foi realizada na IDE do Arduino. Se ainda tem dúvidas para programar o ESP8266 usando a IDE Arduino, confira os artigos:

Substitua as informações da rede WIFI (ssid, password) e do Broker MQTT (mqttServer, mqttUser, mqttPassword, mqttPort), indicados com x no código a seguir. Compile e carregue para a sua placa com ESP8266. 

Configurando a aplicação no MQTT Dash

O MQTT Dash é um dos melhores aplicativos gratuitos para uso do MQTT no smartphone. Possui uma interface muito bacana, com diversos recursos gráficos e é bem simples de usar. Você pode baixá-lo na Google Play.

Após instalado, clique no sinal “+” na sua tela inicial:

Tela inicial do MQTT Dash
Figura 4 – Tela inicial do MQTT Dash

Será aberta a configuração de uma nova conexão. Insira as seguinte informações:

  • Name
  • Adress
  • Port
  • User Name
  • User Password
Configurando a conexão no MQTT DASH
Figura 5 – Configurando a conexão

E, por fim, salve tocando no disquete na parte superior direita.

Abra a conexão criada. Caso as configurações estejam corretas não será exibida nenhuma mensagem. Caso contrário será exibida a mensagem de falha de conexão. Se isso acontecer, refaça as configurações.

Com a conexão configurada corretamente, clique no sinal de “+” dentro do dashboard criado:

Adicionando elementos ao Dashboard no MQTT DASH
Figura 6 – Adicionando elementos ao Dashboard no MQTT DASH

Insira um Switch/button:

Inserindo um Switch/button no MQTT DASH
Figura 7 – Inserindo um Switch/button no MQTT DASH

O botão será usado para acionamento da lâmpada. Você pode dar o nome L1 para ele, ou outro que achar melhor. Para o tópico, configure para “casa/L1”:

Configurando o Switch/button para publicar no tópico no MQTT DASH
Figura 8 – Configurando o Switch/button para publicar no tópico no MQTT DASH

Para a parte visual desse botão, configure para exibir ícones de uma lâmpada acesa e outra apagada. Para On, enviaremos o valor “1” e para Off, o valor “0”:

Ajustando a interface visual do botão no MQTT DASH
Figura 9 – Ajustando a interface visual do botão no MQTT DASH

Por fim, selecione o nível de qualidade para QoS(1).

Pronto, a aplicativo está conectado e configurado:

Dashboard com o botão no MQTT DASH
Figura 10 – Dashboard com o botão no MQTT DASH

Teste do MQTT Dash em conjunto do CloudMQTT

Abra a guia Websocket UI no CloudMQTT:

Abrindo a Websocket UI no CloudMQTT
Figura 11 – Abrindo a Websocket UI no CloudMQTT

Pressione o botão L1 no MQTT Dash e veja se a mensagem chegou no Websocket UI:

Verificando as mensagens recebidas do MQTT DASH no CloudMQTT
Figura 12 – Verificando as mensagens recebidas do MQTT DASH no CloudMQTT

Você também pode enviar uma mensagem pelo Websocket UI:

Enviando uma mensagem pelo Websocket UI do CloudMQTT
Figura 13 – Enviando uma mensagem pelo Websocket UI do CloudMQTT

Verifique se o estado do botão no aplicativo mudou.

Ligue a lâmpada com MQTT Dash 

Agora faça a ligação da placa no ESP8266, verifique se a mesma conseguiu conectar à rede WIFI e ao Broker MQTT, através das mensagens no terminal serial:

Mensagens enviadas pela Wemos D1 no terminal serial
Figura 14 – Mensagens enviadas pela Wemos D1 no terminal serial

Pressione o botão no aplicativo e veja se a placa recebeu a mensagem do tópico “casa/L1”:

Mensagens recebidas
Figura 15 – Mensagens recebidas

Se recebeu, o estado do pino configurado irá inverter.

Conclusão

O MQTT Dash é um excelente app para aplicações MQTT no smartphone. Apresenta uma interface agradável, customizável e de fácil configuração. Junto com um broker MQTT e placas como nodeMCU, Wemos, etc, é possível fazer diversas aplicações para comando e monitoramento.

O que achou do aplicativo? Conhece outro aplicativo com essas características? Deixe seus comentários abaixo.

Saiba mais

MQTT – Protocolos para IoT

MQTT e Intel Edison

Raspberry Pi 3 na IoT – MQTT e Python

Conectando-se ao DeviceHub com NodeMCU e MQTT

Outros artigos da série

Exibindo valores de temperatura e umidade no app MQTT Dash com o sensor DHT11 >>
Licença Creative Commons Esta obra está licenciada com uma Licença Creative Commons Atribuição-CompartilhaIgual 4.0 Internacional.

Receba os melhores conteúdos sobre sistemas eletrônicos embarcados, dicas, tutoriais e promoções.

Internet Das Coisas » Use o MQTT DASH para controlar uma lâmpada remotamente
Comentários:
Notificações
Notificar
guest
20 Comentários
recentes
antigos mais votados
Inline Feedbacks
View all comments
Tony Rodrigues
Tony Rodrigues
30/10/2020 10:21

Parabéns pelo post de excelente qualidade!
Com esse MQTT só consigo acessar o dash por app mobile? Teria alguma opção web pra conseguir acessar via computador tbm?

ANDRE L G CORDEIRO
ANDRE L G CORDEIRO
04/05/2020 07:21

Olá Fábio, sabe se posso utilizar o mqtt dash para criar uma aplicação comercial ? Preciso distribuir para clientes um app que rode em Android e iOs. Achei o mqtt dash muito legal. Parabéns pelo artigo.

João Pedro Nunes
João Pedro Nunes
18/09/2019 04:03

Parabéns pelo tuturial, finalmente consegui compreender o interface com o broker!! Obrigado

Lucas Caires Rodrigues
Lucas Caires Rodrigues
03/09/2019 09:57

Olá bom dia.
Então cara, eu sou estudante de sistemas de informação da UFRRJ e gostaria de saber se tem como a gente pegar esses dados e enviar para um servidor web para serem salvos.

Ramalho Wanderson Nogueira Souza
Ramalho Wanderson Nogueira Souza
14/08/2019 14:10

Como faço para transformar esse sketch com um botão para portão de garagem. Apenas pulso de 1 segundo.

daniel
daniel
13/05/2019 16:48

boa tarde, tentei usar o seu artigo nodemcu , mas nao conseguir que aluz ligasse , td a configuraçao de broker funcionou , mas acho q nodemcu nao esta recebmdo minha menssagem

Iago M Nascimento
Iago M Nascimento
16/12/2018 12:58

Consigo fazer isso com uma placa de 16 Reles?

Vinicius
Vinicius
28/08/2018 08:25

Parabéns! Muito bom, e o principal, não utiliza termos desconhecidos dos iniciantes como siglas e outros.

Nuno Fernandes
Nuno Fernandes
21/05/2018 14:58

Boa tarde,
Antes de mais quero agradecer seu tutorial. Experimentei e resultou como esperado.
Sou muito novo nesta área, quer em programação arduino ou rpi, quer em iot. Estou maravilhado com o seu potencial.
Agora, esticando a corda, supondo que eu queria controlar duas lâmpadas, como faço? Adiciono dois tópicos no mqtt broker?
Supondo ainda que em vez de switch (on / off) eu pretendo um push button, para abertura de uma porta?
Abraço

Ramalho Wanderson Nogueira Souza
Ramalho Wanderson Nogueira Souza
Reply to  Fábio Souza
14/08/2019 14:13

Não encontrei o poste nem entendi sua explicação. Por favor ensine a colocar o botão de portão

Ramalho Wanderson
Ramalho Wanderson
Reply to  Fábio Souza
14/08/2019 15:10

amigo não consegui por favor dar um exemplo. portão de garagem so precisa de um pulso dai volta para o estado off. como fazer isso ??? no sketch ou no mqtt dash ???????

José Antonio
José Antonio
13/05/2018 11:08

Bom dia Fábio.
Ótimo artigo. Iniciei recentemente em IOT e ESP8266 e já fiz alguns testes de sketch de outros autores entretanto o seu é mais simples e intuitivo, inclusive já adicionei mais canais e configurei o Dash sem problemas.
Se me permite uma sugestão, seria util um tutorial sobre configurações dos parametros do ESP na IDE Arduino. Alguns parametros são básicos tais como Port, Upload Speed e Builtin Led mas os outros nem tanto.
Abraço!!

Talvez você goste:

Séries



Outros da Série

Menu