Table of Contents
Por que criar um medidor de energia baseado em microcontrolador?
As contas de energia doméstica continuam a aumentar e compreender exatamente onde a eletricidade está sendo consumida é o primeiro passo para reduzir o desperdício. Monitores de energia comercial muitas vezes custam centenas de dólares e não têm flexibilidade para interagir com sistemas personalizados de automação doméstica. Um medidor de energia baseado em microcontrolador oferece uma alternativa de baixo custo que você pode adaptar às suas necessidades específicas. Medindo tensão, corrente e calculando o poder real, esses dispositivos fornecem insights acionáveis que ajudam você a mudar de carga, identificar eletrodomésticos defeituosos, e acompanhar tendências de longo prazo. Este guia caminha através da seleção de hardware, design de circuito, desenvolvimento de firmware e etapas de calibração necessárias para construir um medidor de energia confiável e preciso usando uma plataforma Arduino, ESP32 ou similar.
Componentes Principais: O que você precisa e por quê
Cada medidor de potência depende de alguns componentes críticos. A seleção de peças de qualidade afeta diretamente a precisão, segurança e facilidade de uso. Abaixo, nós quebramos cada elemento, discutimos opções comuns e explicamos como eles funcionam juntos.
Microcontrolador (MCU) – O Cérebro
O microcontrolador amostra sinais analógicos, realiza cálculos e lida com a comunicação. Para monitoramento de energia doméstica, o ESP32 é uma escolha forte porque integra WiFi e Bluetooth, roda em 3.3V e oferece processamento dual-core. Se você preferir simplicidade, uma lógica Arduino Uno (5V) funciona bem para prototipagem, mas requer um escudo WiFi externo para conectividade. As especificações principais a considerar incluem resolução ADC (10 bits é comum, mas 12 bits ou mais melhora a precisão), taxa de amostragem (idealmente > 1 kHz para cálculos RMS precisos), e número de entradas analógicas (pelo menos duas: uma para tensão, uma para corrente).
Sensibilidade de Tensão
A medição da tensão das redes elétricas (normalmente 110-240 VAC) com segurança é o primeiro desafio. A ligação directa do ADC do microcontrolador seria perigosa e ilegal. A abordagem mais segura utiliza um transformador potencial ] ou um divisor de tensão de precisão[ seguido de um amplificador de isolamento. Um método comum de DIY emprega um transformador de passo para baixo de 230V- para 9V AC com o lado secundário alimentado num divisor resistivor para reduzir a tensão máxima para ~1V, depois compensado por metade da referência ADC (por exemplo, 1,65V para um sistema 3.3V). Para sistemas de fase dividida (US 240V/120V), poderá necessitar de dois sensores de tensão. Certifique- se de que o seu circuito inclui a fisagem e isolamento adequados para evitar riscos de choque.
Sensibilidade atual
Para a medição de corrente, os transformadores de corrente de núcleo dividido (CTs) são ideais porque se prendem em torno de um fio vivo sem interromper o serviço. A família SCT-113 é popular: as saídas variantes de 30A/1V 0-1V AC proporcionais à corrente, que um ADC pode ler após o viés de DC. Sensores de efeito Hall como o ACS712 ou ACS758 oferecem medição DC/AC em um pacote compacto de IC, mas requerem cortar o circuito e inserir o sensor. As CTs são não invasivas e preferenciais para instalações permanentes. Escolha uma CT com uma classificação atual ligeiramente acima da sua carga máxima esperada (por exemplo, 100A para um monitor de casa inteira).
Conversão analógica para digital (ADC)
O ADC integrado do microcontrolador é adequado para medidores básicos, mas sua resolução limitada (10 bits em Arduino, 12 bits em ESP32) e piso de ruído pode introduzir erros. Para maior precisão, considere um ADC externo, como o MCP3208 (12-bit, SPI) ou ADS1115 (16-bit, I2C). O ADS1115 é particularmente popular porque oferece ganho programável (até ±256 mV) e baixo ruído, permitindo a medição precisa de pequenos sinais. Use entradas diferenciais para o sensor atual rejeitar ruído de modo comum.
Exibição e Conectividade
Um ecrã local (OLED 128×64, TFT ou caractere LCD) mostra potência em tempo real em watts, quilowatts-horas e custo. Para acesso remoto, o WiFi (ESP32 built-in) ou um módulo ESP-01 externo permite que você empurre dados para MQTT, ThingsBoard ou um servidor web simples. Bluetooth BLE é uma opção para aplicativos móveis de curto alcance. Certifique-se de que sua conectividade não aumente o consumo de energia até o ponto em que nega economia de energia.
Design de Circuitos e Considerações de Segurança
Antes de montar qualquer coisa, projecte o circuito em papel. As vias de medição de tensão e corrente devem ser completamente isoladas umas das outras e do lado de baixa tensão MCU. Use uma alimentação regulada de 5V ou 3.3V derivada de um pequeno adaptador de parede, não da rede. Todas as ligações à rede devem ser fechadas numa caixa isolada e classificadas para a tensão e corrente esperadas. Nunca trabalhe em circuitos vivos ] a menos que esteja qualificado. Incorpore um fusível no lado primário de qualquer transformador e mantenha os vestígios de PCB curtos para reduzir o acoplamento de ruído.
Circuito típico para um medidor monofásico:
- Canal de tensão: Transformador de passo para baixo (por exemplo, saída AC de 9V) → Divisor de tensão para reduzir para 1V pico → Deslocamento DC (Vcc/2) → Filtro RC (100
- Canal atual: CT (por exemplo, SCT-013 com resistência de carga incorporada) → Deslocamento DC (Vcc/2) → Filtro RC → Entrada ADC.
- Fonte de alimentação: 5V ou 3.3V regulados a partir de um banco de energia USB ou adaptador dedicado. Não retire energia do circuito de medição.
Adicione um aparador de 10kē para ajustar o deslocamento DC precisamente para metade da referência ADC. Isto garante que a forma de onda AC está centrada e o microcontrolador pode ler ambas as metades positivas e negativas.
Firmware: Amostragem, Cálculo RMS e Cálculo de Potência
O firmware deve amostrar ambos os canais síncrona, calcular valores RMS verdadeiros (para cargas não-sinusoidais como fontes de alimentação de comutação), e derivar potência ativa, potência aparente e fator de potência. Abaixo está uma explicação expandida do algoritmo.
Estratégia de amostragem
Para uma rede de 50/60 Hz, amostrar pelo menos 64 pontos por ciclo (por exemplo, 3840 amostras/segundo para 60 Hz) para capturar harmônicos até o 15o. Uma taxa de amostragem mais elevada (2-4 kHz) melhora a precisão. Use uma interrupção do temporizador ou a função para manter intervalos consistentes. Colete 20–40 ciclos completos (cerca de 0,33–0,67 segundos) antes de calcular o RMS para média de ruído.
Calculando Tensão e RMS de corrente
Use a seguinte fórmula para cada canal:
sum_squared = 0;
for (int i = 0; i < N; i++) {
read = analogRead(pin);
// Remove DC offset
sample = read - DC_OFFSET;
sum_squared += sample * sample;
}
rms = sqrt(sum_squared / N) * (ADC_VREF / ADC_RESOLUTION) * SCALE_FACTOR;
O converte a leitura ADC (valor digital bruto) de volta para volts ou amplificadores. Determine-a experimentalmente: alimenta uma referência conhecida (por exemplo, 10V AC) e ajusta o fator até que a leitura RMS corresponda a um verdadeiro multímetro RMS.
Cálculo de Potência
A potência aparente (S = V rms × I rms) é simples, mas a potência ativa (P) requer multiplicação instantânea e média:
sum_active = 0;
for (int i = 0; i < N; i++) {
v = (analogRead(V_PIN) - V_OFFSET) * V_SCALE;
i = (analogRead(I_PIN) - I_OFFSET) * I_SCALE;
sum_active += v * i;
}
active_power = sum_active / N;
Factor de potência = active power / aparente power. Para cargas puramente resistivas, PF .; para cargas indutivas (motores), PF cai abaixo de 1,0, e verdadeira medição de potência ativa é essencial para faturamento preciso.
Acumulação de energia (kWh)
Para acompanhar o consumo de energia, integrar a potência ativa ao longo do tempo:
uint32_t lastMillis = 0;
float energy_Wh = 0;
void loop() {
if (millis() - lastMillis >= 1000) { // every second
float power_watts = compute_active_power();
energy_Wh += power_watts * (1.0 / 3600.0);
lastMillis = millis();
}
}
Guarde o valor acumulado na memória EEPROM ou RTC para que ela sobreviva à perda de energia. Para um medidor de casa inteira, espere valores na faixa de 500-2000 Wh por hora, dependendo do uso.
Calibração: O segredo para dados confiáveis
Sem calibração, suas leituras podem estar desligadas por 10-20% ou mais. O processo envolve três etapas:
- Calibração de Zero: Sem carga, leia o deslocamento DC para cada canal e ajuste as constantes de firmware até que o RMS esteja o mais próximo possível de zero (normalmente <0.1 W).
- Calibração de gain para tensão: Aplicar uma tensão estável conhecida (por exemplo, um adaptador AC de 12V medido com um multímetro) e ajustar o fator de escala de tensão até que o medidor corresponda.
- Calibração de gain para corrente: Ligar uma carga resistiva conhecida (por exemplo, uma lâmpada incandescente de 100W) e ajustar o fator de escala atual. Um medidor de pinça calibrado true-RMS é inestimável aqui.
Grave as constantes de calibração finais no código fonte ou guarde-as em memória não volátil para que possa ajustar sem re-flashar o firmware.
Registo e Visualização de Dados
Os números brutos num monitor serial não são fáceis de usar. Adicione um ecrã local para mostrar energia em tempo real, energia diária e custo estimado. Para monitorização remota, envie dados via WiFi para plataformas como EmonCMS, ThingsBoard ou um painel personalizado de Node-RED. O ESP32 torna este assunto trivial – basta ligar-se à sua rede doméstica e publicar o JSON sobre o MQTT. Se preferir uma solução auto- hospedada, escreva um servidor web simples na MCU que sirva uma página HTML leve com gráficos do Chart.js.
Para o registo a longo prazo, um módulo de cartão SD escreve ficheiros CSV. Isto é útil quando o WiFi não é fiável ou para análise offline. Certifique-se de que o cartão está devidamente formatado e que a biblioteca SD é inicializada com segurança para evitar a corrupção de ficheiros.
Mais de uma fase: Sistemas de Três Fases e Polifásicos
Casas com potência trifásica (comum na Europa e casas maiores nos EUA) requerem três canais de tensão e três canais de corrente. Você pode usar uma MCU com entradas analógicas suficientes (por exemplo, ESP32 tem dois ADCs multiplexados a 16 pinos, mas o ruído analógico aumenta quando se usa vários canais). Uma melhor abordagem é usar dois ou mais MCUs comunicando-se via I2C ou serial, ou um multiplexador externo como o CD74HC4067. Calibrar cada fase de forma independente e somar os poderes ativos.
Sincronização de Tempo
Para uma potência ativa precisa por fase, prove todos os pares de tensão e corrente em uma única explosão (dentro de microsegundos) para preservar as relações de fase. Se você amostrar canais sequencialmente (como com um multiplexer), o tempo de inclinação introduzirá um erro de fase que aumenta com frequências mais altas. Os ADCs dedicados com amostra- e- hold simultâneos (como o AD7606) resolvem isso, mas adicionam custo. Uma solução prática é a amostragem na linha zero da forma de onda de tensão para cada fase.
Recursos avançados para estender o seu medidor
Uma vez que o medidor de potência básico está funcionando, considere adicionar estes aprimoramentos:
- Alertas de correcção de factores de potência: Se a PF descer abaixo de 0,8, assinale o utilizador para investigar possíveis cargas reativas.
- Identificação do equipamento: Ao analisar assinaturas harmónicas (usando FFT), pode distinguir entre frigorífico, micro-ondas e máquina de lavar roupa. Esta é uma área de pesquisa activa, mas viável com uma RAM ESP32 e suficiente.
- Monitorização da geração solar: Adicione um segundo transformador de corrente na linha de alimentação solar (TC bidirecional) para medir a exportação/importação líquida.
- Auto-calibração: Use um relé para alternar em um resistor de referência conhecido para auto-calibração durante períodos ociosos.
- Desligar a energia: Ligar um relé de estado sólido para desligar cargas quando o consumo exceder um limiar (por exemplo, para evitar o tropeço do disjuntor).
Comparação com Monitores de Energia Comercial
Produtos comerciais como o Sense, Emporia Vue ou Shelly EM oferecem aplicativos polidos, integração de nuvem e segurança listada na UL. No entanto, eles o trancam em um ecossistema proprietário e muitas vezes requerem uma assinatura mensal para dados históricos. Um medidor DIY lhe dá total propriedade de dados, sem custos recorrentes e a capacidade de interface com qualquer padrão doméstico inteligente (Home Assistant, OpenHAB). O trade-off é o investimento no tempo e a necessidade de atender códigos elétricos locais. Para uma instalação permanente, considere consultar um eletricista licenciado.
Recursos e leituras posteriores
Para uma compreensão mais aprofundada, consulte os seguintes recursos:
- Documentação OpenEnergyMonitor – Guias abrangentes em sensores CT, adaptadores AC-AC e calibração.
- Adafrut INA219 Tutorial – Usando um sensor de corrente/voltagem I2C para aplicações DC de baixa potência.
- Guia de medição de potência dos dispositivos analógicos – Fundo teórico sobre medição de potência de CA e erros.
Juntando tudo: uma lista de verificação prática de construção
Para o ajudar a começar, eis uma lista de verificação passo a passo para um medidor de uma única fase, baseado em ESP32:
- Componentes de seleção e ordem: ESP32 DevKitC, SCT-013-000 (100A/50mA), transformador AC 230V-to-9V, resistências 1k
- Montar os circuitos divisores de tensão e corrente em uma placa de pão primeiro. Teste com um multímetro para verificar o deslocamento DC é exatamente Vcc/2.
- Escreva um esboço simples que imprime valores brutos de ADC. Aplique uma tensão AC conhecida (através do transformador) e verifique a forma de forma de onda em um plotter serial.
- Implementar cálculo RMS com média de 50 ciclos. Compare leitura com um multímetro.
- Adicione o sensor de corrente e repita a calibração. Teste com uma lâmpada 100W (deve ler ~0.43A em 230V).
- Combine tensão e corrente de amostragem em um loop. Calcular a potência ativa. Verifique com uma carga resistiva (potência ativa .
- Adicione conexão WiFi e publicação MQTT. Use uma ferramenta como o MQTT Explorer para verificar o fluxo de dados.
- Concepção e impressão 3D de uma caixa que garante fluxo de ar e impede o contato acidental com a fiação da rede elétrica. Instale a versão final no painel do disjuntor (com o disjuntor principal desligado).
- Execute o medidor por 24 horas e compare o total de energia diária com sua conta de utilidade para confirmar a precisão dentro de 2–5%.
Construir um medidor de energia baseado em microcontrolador é um projeto gratificante que oferece benefícios práticos imediatos. Com um design e calibração cuidadosos, seu monitor caseiro fornecerá anos de dados de energia confiáveis, ajudando você a reduzir o desperdício e economizar dinheiro.