Monitoramento Inteligente de Energia com ESP8266 e IoT

A monitoração inteligente de energia é um pilar para reduzir custos e promover sustentabilidade. Combinando o ESP8266Sistema de automação residencial com ESP8266 e controle de luzesSistema de automação residencial com ESP8266 e controle de luzesEste tutorial aborda a implementação de automação residencial com ESP8266, destacando segurança, eficiência energética, integração MQTT e interface web. com sensores precisos, este projeto permite coletar dados em tempo real, analisar padrões de uso e automatizar ajustes via IoT. Este guia detalha desde a teoria de medições elétricas até integrações avançadas, com exemplos práticos, código funcional e estratégias de otimização.

📌 Sumário🔗

Introdução ao Sistema🔗

O ESP8266Sistema de automação residencial com ESP8266 e controle de luzesSistema de automação residencial com ESP8266 e controle de luzesEste tutorial aborda a implementação de automação residencial com ESP8266, destacando segurança, eficiência energética, integração MQTT e interface web. atua como núcleo do sistema, processando dados de sensores como ACS712 (corrente contínua) ou PZEM-004T (corrente alternada). As medições permitem calcular:

  • Potência Ativa (W): P = V × I × cos(φ)
  • Energia Consumida (kWh): E = ∑(P × Δt) / 1000
flowchart TB A[Rede Elétrica] --> B[Sensor de Corrente] A --> C[Sensor de Tensão] B --> D[ESP8266] C --> D D -->|Wi-Fi| E[Plataforma IoT] E --> F[Dashboard/Alertas] F --> G[Ajustes Remotos]

Materiais e Componentes🔗

ComponenteDescriçãoModelos Recomendados
ESP8266Microcontrolador Wi-FiNodeMCU, Wemos D1 Mini
Sensor de CorrenteMede corrente AC/DCACS712 (5A-30A), SCT-013 (100A)
Sensor de TensãoMede tensão da redePZEM-004T, Divisor Resistivo
Interface de SegurançaIsolamento galvânicoOptoacoplador PC817
Fonte de Alimentação5V/3.3V estávelFonte USB, LM7805
DisplayVisualização localOLED 0.96″, LCD 16x2

Montagem do Circuito: Opções e Diagramas🔗

Opção 1: ACS712 (Corrente Contínua)

// Conexões:
// ACS712 VCC → 5V
// ACS712 GND → GND
// ACS712 OUT → A0 (ESP8266)
// Carga em série com o sensor

Opção 2: PZEM-004T (Corrente Alternada)

// Conexões via UART:
// PZEM RX → TX (ESP8266)
// PZEM TX → RX (ESP8266)
// PZEM alimentado diretamente pela rede

Programação: Leitura, Calibração e Comunicação Wi-Fi🔗

Leitura Analógica com Média Móvel

const int amostras = 10;
float lerSensor(int pino) {
  float soma = 0;
  for (int i = 0; i < amostras; i++) {
    soma += analogRead(pino);
    delay(2);
  }
  return soma / amostras;
}

Calibração do ACS712 (Exemplo para 30A)

float tensaoParaCorrente(float V) {
  const float offset = 2.5; // Tensão em repouso (VCC/2)
  const float sensibilidade = 0.066; // 66 mV/A
  return (V - offset) / sensibilidade;
}

Conexão Wi-Fi com Tratamento de Erros

void conectarWiFi(const char* ssid, const char* senha) {
  WiFi.begin(ssid, senha);
  Serial.print("Conectando...");
  int tentativas = 0;
  while (WiFi.status() != WL_CONNECTED && tentativas < 20) {
    delay(500);
    Serial.print(".");
    tentativas++;
  }
  if (tentativas >= 20) ESP.restart(); // Reinicia em caso de falha
}

Processamento de Dados: Filtragem e Cálculo de Energia🔗

Filtro Passa-Baixa Digital

float filtroPassaBaixa(float entrada, float saidaAnterior, float alpha) {
  return alpha * entrada + (1 - alpha) * saidaAnterior;
}
// Uso:
float correnteFiltrada = filtroPassaBaixa(correnteBruta, correnteFiltrada, 0.1);

Cálculo de Energia Acumulada

unsigned long ultimoTempo = 0;
float energiaKWh = 0;
void calcularEnergia(float potenciaW) {
  unsigned long agora = millis();
  float horas = (agora - ultimoTempo) / 3600000.0;
  energiaKWh += potenciaW * horas / 1000;
  ultimoTempo = agora;
}

Integração com Plataformas IoT (Blynk, MQTT, Node-RED)🔗

Opção 1: Blynk para Controle Rápido

#define BLYNK_TEMPLATE_ID "TMPLXXXX"
#include <BlynkSimpleEsp8266.h>
void setup() {
  Blynk.begin(BLYNK_AUTH_TOKEN, "ssid", "senha");
}
void loop() {
  Blynk.virtualWrite(V1, potenciaAtual);
  Blynk.run();
}

Opção 2: MQTT + Node-RED para Sistemas Complexos

#include <PubSubClient.h>
PubSubClient client;
void publicarDados() {
  char payload[50];
  snprintf(payload, 50, "{\"potencia\":%.1f,\"energia\":%.3f}", potencia, energiaKWh);
  client.publish("casa/energia", payload);
}

DashboardDashboard de monitoramento remoto com ESP8266Dashboard de monitoramento remoto com ESP8266Aprenda a criar um dashboard IoT com ESP8266, integrando sensores, segurança avançada e otimização de comunicação para monitoramento remoto eficiente. Node-RED:

[{"id":"fluxo","type":"mqtt in","z":"dash","name":"","topic":"casa/energia","broker":"","x":200,"y":100},{"id":"grafico","type":"ui_chart","z":"dash","name":"Consumo","group":"Grupo1","order":0,"width":"6","height":"4","label":"Potência","chartType":"line","legend":"true","x":600,"y":100}]

Otimização do Sistema: Baixo Consumo e Eficiência🔗

Estratégias de Economia de Energia:

1. Deep SleepSistema de controle de cortinas automatizadas com ESP8266Sistema de controle de cortinas automatizadas com ESP8266Descubra como automatizar cortinas com ESP8266. Aprenda componentes, montagem, programação e integração IoT para conforto e eficiência energética. Profundo:

void entrarDeepSleep(int segundos) {
  ESP.deepSleep(segundos * 1000000);
}

2. Modo ADC Desativado:

WiFi.setSleepMode(WIFI_LIGHT_SLEEP); // Reduz consumo em 30%

3. Calibração Automática Dinâmica:

void calibrarOffset() {
  float soma = 0;
  for (int i = 0; i < 100; i++) soma += analogRead(A0);
  offsetGlobal = (soma / 100) * (3.3 / 1023.0);
}

Casos Práticos: Chuveiro Elétrico e Automação Residencial🔗

Controle de Sobrecarga em Chuveiros

const int pinoRele = D1;
const float limitePotencia = 5500; // 5.5kW
void verificarSobrecarga() {
  if (potenciaAtual > limitePotencia) {
    digitalWrite(pinoRele, LOW);
    Blynk.email("[email protected]", "⚠️ Chuveiro Desligado!", "Potência: " + String(potenciaAtual));
  }
}

Integração com Tarifa de Energia

float tarifaHoraPonta = 0.85; // R$/kWh
float calcularCusto() {
  return energiaKWh * tarifaHoraPonta;
}
void atualizarTarifa() {
  if (horario() >= 18 && horario() < 21) tarifaHoraPonta = 1.20;
}

Expansões e Aplicações Industriais🔗

Transformação para Ambientes Industriais:

  • Sensores de Alta Precisão: SCT-013 com burden resistor
  • Isolamento Óptico: MOC3041 para controle de cargas trifásicas
  • Protocolos Industriais: Modbus RTU via RS-485
pie title Distribuição de Consumo Industrial "Motores" : 55 "Iluminação" : 15 "Climatização" : 20 "Outros" : 10

Integração com Energia Solar:

float energiaSolar = lerSensorCorrente(SCT_013) * tensaoRede;
if (energiaSolar > 2000) { // 2kW excedentes
  ativarCargaExcedente(D5); // Liga aquecedor de água
}

Conclusão🔗

Este sistema de monitoramento com ESP8266 oferece uma solução completa e acessível (custo < R$ 150), combinando hardware modular, processamento inteligente e integração IoTSistema de controle de luzes de Natal com ESP8266Sistema de controle de luzes de Natal com ESP8266Descubra como automatizar e controlar luzes de Natal usando ESP8266, com Wi-Fi, programação avançada, e economia energética. Transforme sua decoração com IoT.. Ao implementar técnicas como deep sleep, filtragem digital e análise histórica, o dispositivo torna-se adequado tanto para residências quanto para aplicações industriais. A expansão para redes trifásicas, integração com fontes renováveis e o uso de algoritmos de aprendizado de máquina para previsão de consumo abrem caminho para sistemas energéticos verdadeiramente autônomos e sustentáveis.

Autor: Marcelo V. Souza - Engenheiro de Sistemas e Entusiasta em IoT e Desenvolvimento de Software, com foco em inovação tecnológica.

Referências🔗

Compartilhar artigo

Artigos Relacionados