Como medir corrente alternada com ESP32 e sensor SCT-013
Aprenda na prática a instrumentar o ESP32 com o sensor não invasivo SCT-013 para monitorar corrente alternada, calcular potência e acompanhar o consumo elétrico residencial em tempo real com código funcional.
Resumo
- O sensor SCT-013 funciona como um transformador de corrente que induz um sinal seguro de baixa amperagem proporcional ao campo magnético do condutor
- O microcontrolador ESP32 exige um circuito condicionador de sinal com divisor de tensão para deslocar a onda senoidal para a faixa positiva suportada pelo conversor analógico
- A amostragem de alta frequência em loops dedicados permite capturar centenas de pontos por ciclo para calcular o valor eficaz da corrente sem erros de distorção
- A calibração prática com uma carga resistiva conhecida e um multímetro padrão elimina desvios causados por tolerâncias dos componentes e do próprio sensor
- O código em C++ implementa o cálculo matemático da raiz quadrada média e pode transmitir os dados via protocolo MQTT para plataformas de automação residencial
Por que monitorar energia elétrica com o ESP32?
Saber exatamente quanta eletricidade os eletrodomésticos ou o quadro geral da sua casa consomem deixa de ser um mistério quando você mesmo constrói um medidor inteligente. Na prática, isso significa que você consegue identificar gargalos de consumo, detectar equipamentos operando com falhas ou simplesmente entender o impacto financeiro de cada tomada. O microcontrolador ESP32, um chip compacto de baixo custo com Wi-Fi e Bluetooth integrados, serve como o cérebro perfeito para coletar, processar e enviar esses dados para a nuvem ou para um painel local na sua rede.
Diferente de medidores industriais complexos que exigem interrupção física nos fios da rede elétrica, a abordagem que utilizamos aqui emprega um princípio eletromagnético simples e seguro. Ao invés de cortar fios ou mexer diretamente em terminais de alta tensão perigosos, instalamos um componente externo que abraça o cabo de maneira totalmente isolada. Essa facilidade de montagem abre portas tanto para entusiastas de automação residencial quanto para engenheiros que buscam prototipar soluções rápidas de eficiência energética.
Como funciona o sensor de corrente não invasivo SCT-013
O sensor modelo SCT-013 é um transformador de corrente em formato de pinça ou abraçadeira flexível que detecta o campo magnético gerado pelo fluxo de elétrons através de um fio condutor. Na prática, quando a corrente alternada da rede passa pelo cabo, ela induz uma corrente proporcional muito menor no enrolamento interno do sensor. Essa isolação galvânica protege totalmente o seu circuito de controle e o microcontrolador contra choques elétricos perigosos ou curtos-circuitos destrutivos na rede principal.
Existem diferentes variações desse sensor no mercado, sendo o modelo SCT-013-000 um dos mais populares por fornecer uma saída em formato de corrente que varia tipicamente de zero a cinquenta miliamperes. Para que o ESP32 consiga ler essa variação, precisamos transformar essa corrente em uma tensão legível conectando um resistor de carga, também conhecido como resistor de burden. Além disso, como a corrente alternada oscila ciclicamente entre valores positivos e negativos, precisamos ajustar o sinal para que ele opere inteiramente na faixa positiva suportada pelo conversor analógico do microcontrolador.
Preparando o circuito condicionador de sinal para o ESP32
O conversor analógico-digital do ESP32 opera aceitando tensões que variam estritamente entre zero e três vírgula três volts. Como a rede elétrica alterna sua polaridade sessenta vezes por segundo, o sinal gerado pelo sensor cairia abaixo de zero e danificaria o pino de leitura ou geraria leituras incorretas. Para resolver esse problema na bancada, montamos um circuito simples com um divisor de tensão usando dois resistores de valor igual, geralmente cem quiloohms, conectados entre a alimentação de três volts e meio e o terra.
Esse divisor cria um nível de referência estável em exatamente um vírgula seiscentos e cinquenta volts, atuando como um falso terra ou polarização central. Quando o sensor não está medindo nenhuma corrente, a leitura no pino do ESP32 fica estacionada exatamente nesse valor central. À medida que a corrente passa pelo cabo, a tensão oscila para cima e para baixo desse ponto de repouso, traçando perfeitamente a onda senoidal da rede elétrica que o programa de leitura conseguirá processar sem distorções severas.
Implementando a leitura e o cálculo do valor eficaz no código
Para transformar as amostras de tensão brutas coletadas pelo ESP32 em números úteis de corrente e potência, utilizamos o conceito de valor eficaz, conhecido tecnicamente como RMS. Na prática, a leitura instantânea do pino analógico oscila constantemente, de modo que precisamos amostrar o sinal centenas de vezes durante vários ciclos consecutivos da rede elétrica. Somamos os quadrados dessas leituras, tiramos a média e aplicamos a raiz quadrada para encontrar o valor real que seria exibido por um multímetro comum.
Outro detalhe fundamental que abordamos em guias de instrumentação, como como calibrar sensores analógicos no ESP32 sem erro, é a remoção do nível DC introduzido pelo nosso circuito de polarização central. No código abaixo, subtraímos esse valor de referência de cada amostra antes de aplicar os cálculos matemáticos de conversão de escala.
#include <Arduino.h>const int sensorPin = 34;const int numSamples = 1480;const float vCC = 3.3;const float adcMax = 4095.0;const float calibrationFactor = 30.0;void setup() { Serial.begin(115200); pinMode(sensorPin, INPUT);}void loop() { long sumSquares = 0; for (int i = 0; i < numSamples; i++) { int rawValue = analogRead(sensorPin); float voltage = (rawValue * vCC) / adcMax; float adjustedVoltage = voltage - 1.65; sumSquares += (adjustedVoltage * adjustedVoltage); } float meanSquares = sumSquares / (float)numSamples; float rmsVoltage = sqrt(meanSquares); float currentRMS = rmsVoltage * calibrationFactor; float power = currentRMS * 127.0; Serial.print("Corrente RMS: "); Serial.print(currentRMS); Serial.print(" A | Potencia estimada: "); Serial.print(power); Serial.println(" W"); delay(1000);}Calibração prática e validação na bancada
Mesmo utilizando componentes de alta precisão, pequenas variações na tolerância dos resistores e na indutância do sensor exigem um processo de ajuste empírico para garantir a exatidão das leituras. Para calibrar o sistema, você deve conectar um equipamento de consumo resistivo conhecido, como um secador de cabelos na potência máxima ou um aquecedor elétrico, cujo consumo real em watts seja previamente informado pelo fabricante ou medido com um wattímetro de referência.
Em seguida, você compara o valor bruto exibido no monitor serial do ESP32 com o valor real medido por um multímetro de verdade ou pela concessionária. Ajuste a constante multiplicadora no código até que os números batam com precisão. Se você notar instabilidade nas leituras ou ruídos fantasmas quando nenhum aparelho estiver ligado, verifique se as conexões dos cabos estão firmes e se há interferência eletromagnética próxima de fontes chaveadas ou lâmpadas fluorescentes. Para aprofundar esses conceitos na prática em produção, confira também nossa análise técnica sobre Como criar atalhos de teclado globais no macOS.
Considerações finais
Medir o consumo de energia em tempo real com o ESP32 e o sensor SCT-013 combina eletrônica acessível com programação eficiente para entregar resultados profissionais na sua própria casa. Ao dominar a leitura de corrente alternada, o condicionamento de sinal com divisor de tensão e o cálculo do valor RMS, você ganha autonomia para expandir seu projeto com telas locais, alertas automáticos ou integração completa com plataformas de código aberto. Com paciência na montagem e atenção aos detalhes de calibração, seu medidor inteligente estará pronto para operar com segurança e alta confiabilidade por anos.