Central Monitoramento: Leitura de Temperatura, Umidade e Luminosidade com ESP32 e Publicação via MQTT
Este projeto demonstra como ler a temperatura e umidade do sensor DHT11, além da leitura de um sensor LDR, e publicar esses dados usando o protocolo MQTT. A interface de exibição foi criada utilizando Node-RED.
Este projeto foi desenvolvido com base no aprendizado do curso "Programe o ESP32 com ESP-IDF 5" de Fábio Souza, disponível em cursos.embarcados.com.br.
- ESP32
- Sensor DHT11
- Sensor LDR
- WiFi
- MQTT
Repositorios dos componentes externos:
-
Instalar Node.js
- Acesse Node.js e baixe a versão LTS.
- Siga as instruções de instalação para o seu sistema operacional.
-
Instalar Node-RED
- Abra o terminal ou prompt de comando.
- Execute o comando:
npm install -g --unsafe-perm node-red
- Após a instalação, verifique a instalação executando:
node-red
-
Clonar Repositório
-
Configurar as Dependências
- Certifique-se de ter o ESP-IDF instalado e configurado.
-
Configurar o Código
- Inclua as bibliotecas no arquivo principal:
#include "dht.h" #include "ldr.h" #include "wifi.h" #include "mqtt_app.h"
- Inclua as bibliotecas no arquivo principal:
-
Compilar e Fazer Upload do Código
idf.py build idf.py flash
-
Inicializar NVS e WiFi
- O código inicializa o armazenamento NVS e configura o WiFi no modo estação.
-
Inicializar e Ler Sensores
-
Publicar Dados via MQTT
- Os dados são publicados nos tópicos:
esp32-central/temperatura
esp32-central/umidade
esp32-central/ldr
- Os dados são publicados nos tópicos:
-
Visualizar Dados no Node-RED
O código inicializa o armazenamento NVS e configura o WiFi no modo estação.
Os dados são publicados nos tópicos:
esp32-central/temperatura
esp32-central/umidade
esp32-central/ldr
-
Importar o Flow
- Utilize o
flow.json
fornecido no diretório do projeto. - No Node-RED, clique no menu no canto superior direito, vá em
Import -> Clipboard
. - Cole o conteúdo do
flow.json
e clique emImport
.
- Utilize o
-
Acessar o Painel
- Após a implementação do flow, acesse o painel em:
http://<seu-ip>:1880/ui
- Substitua
<seu-ip>
pelo endereço IP do seu servidor onde o Node-RED está rodando.
- Após a implementação do flow, acesse o painel em:
O painel de exibição foi criado usando Node-RED. A imagem abaixo mostra como os dados são exibidos: