Este projeto IoT monitora e controla o consumo energético em tempo real utilizando um ESP32 e Node-RED. O ESP32 coleta dados de consumo de energia (simulado com um potenciômetro) e o estado de um LED (ligado/desligado). O Node-RED gerencia a comunicação entre os dispositivos via MQTT e exibe os dados em um dashboard interativo, permitindo o controle remoto do LED e a visualização do consumo de energia.
- Monitoramento de Consumo de Energia: O valor do consumo de energia é simulado por um potenciômetro e exibido no gauge do Node-RED.
- Controle Remoto do LED: O estado do LED (ligado ou desligado) pode ser alterado remotamente via MQTT.
- Dashboard Interativo: O Node-RED fornece um painel para controlar e monitorar os dados em tempo real.
- ESP32: Microcontrolador que coleta os dados de consumo e controla o LED.
- LED: Atuador controlado remotamente.
- Potenciômetro: Sensor usado para simular o consumo de energia.
- Node-RED: Plataforma para integração e controle dos dispositivos IoT.
- MQTT: Protocolo de comunicação entre o ESP32 e o Node-RED.
- Wokwi: Simulador usado para testar o circuito do ESP32 e simular o comportamento do projeto.
- Use o Wokwi para simular o ESP32 ou carregue o código para o ESP32 real.
- O ESP32 publica os dados no MQTT e responde aos comandos para ligar/desligar o LED.
Link do Projeto no Wokwi: Energy Awareness Simulation
- Node.js e Node-RED instalados.
- Broker MQTT: Utilizamos o broker público HiveMQ. Não é necessário instalar um broker localmente.
-
Clone o repositório:
git clone https://github.com/santosmgs/GS-EnergyAwarenessIA.git cd GS-EnergyAwarenessIA
-
Configuração do Node-RED:
- Instale o Node-RED se ainda não tiver:
npm install -g --unsafe-perm node-red
- Inicie o Node-RED:
node-red
- Acesse o Node-RED no navegador: http://localhost:1880.
- Acesse o dashboard interativo do Node-RED: http://localhost:1880/ui
- Instale o Node-RED se ainda não tiver:
-
Configuração dos tópicos MQTT:
- O ESP32 publica dados no tópico
fiap/iot/consumoea
. - O Node-RED usa este tópico para receber os dados de consumo e controle do LED.
- No Node-RED, os nós MQTT são configurados para:
- Assinar o tópico
fiap/iot/consumoea
para receber dados. - Publicar no tópico
fiap/iot/led
para controlar o LED.
- Assinar o tópico
- O ESP32 publica dados no tópico
-
Carregar o fluxo do Node-RED:
- Importe o arquivo de fluxo JSON do Node-RED, localizado no repositório, para configurar a comunicação e os widgets do dashboard.
-
Teste o ESP32 (Simulador ou Hardware Real):
- No Wokwi, carregue o circuito e o código do ESP32 para simulação.
- Se usar um ESP32 real, conecte-o ao Wi-Fi e ao broker MQTT.
- O ESP32 lê o valor do potenciômetro, coleta o consumo de energia e publica no broker MQTT.
- O Node-RED se conecta ao broker MQTT, recebe os dados e exibe no dashboard.
- O LED pode ser controlado remotamente via o switch no dashboard, enviando comandos para o ESP32.
-
Simular o consumo:
- Gire o potenciômetro no ESP32 para alterar o consumo de energia.
- O consumo é exibido no gauge no Node-RED.
-
Controlar o LED:
- Use o switch no dashboard para ligar/desligar o LED.
- O estado do LED será atualizado no painel e no ESP32.
-
Verificar os dados:
- Confirme que o consumo e o estado do LED estão sendo atualizados em tempo real no dashboard.
O ESP32 coleta os dados do potenciômetro e publica no MQTT. Ele também escuta comandos MQTT para controlar o LED. O código está organizado com comentários para facilitar o entendimento:
#include <WiFi.h>
#include <ArduinoJson.h>
#include <PubSubClient.h>
// Configurações de WiFi e MQTT
#define PIN_POTENTIOMETER 34 // Pino do potenciômetro
#define PIN_LED 2 // Pino do LED
void setup() {
// Inicialização de Wi-Fi e MQTT
}
void loop() {
// Publicar consumo de energia no MQTT
// Escutar comandos para o LED
}
O fluxo do Node-RED contém:
- Nó MQTT In: Recebe dados de consumo e LED do ESP32.
- Nó Function: Processa os dados JSON e separa consumo e estado do LED.
- Nó Gauge: Exibe o consumo de energia.
- Nó Text: Mostra o estado do LED.
- Nó Switch + MQTT Out: Controla o LED remotamente.
Link para o vídeo demonstrativo
Acesse o vídeo no youtube: clique aqui.
- João Gabriel - RM 552078
- Felipe Morais - RM 551463
- Ian Navas - RM 550133
- Miguel Santos - RM 551640
- Renan Vieira - RM 551813