Marcio Cunha

Cómo medir corriente alterna con ESP32 y sensor SCT-013

Aprenda de forma práctica a instrumentar el ESP32 con el sensor no invasivo SCT-013 para monitorear corriente alterna, calcular potencia y seguir el consumo eléctrico en tiempo real con código funcional.

Marcio Cunha•5 min
También disponible en:EnglishPortuguês
Resumen
  • El sensor SCT-013 funciona como un transformador de corriente que induce una señal segura de baja corriente proporcional al campo magnético del conductor
  • El microcontrolador ESP32 requiere un circuito acondicionador de señal con divisor de tensión para desplazar la onda senoidal hacia el rango positivo del conversor analógico
  • El muestreo de alta frecuencia en bucles dedicados permite capturar cientos de puntos por ciclo para calcular el valor eficaz de la corriente sin errores de distorsión
  • La calibración práctica con una carga resistiva conocida y un multímetro estándar elimina desviaciones causadas por tolerancias de los componentes y del propio sensor
  • El código en C++ implementa el cálculo matemático del valor eficaz y puede transmitir los datos mediante protocolo MQTT hacia plataformas de domótica

Por qué medir energía eléctrica con el ESP32?

Saber con exactitud cuánta electricidad consumen los electrodomésticos o el tablero general de su casa deja de ser un misterio cuando usted mismo construye un medidor inteligente. En la práctica, esto significa que usted logra identificar picos de consumo, detectar equipos con fallas ocultas o simplemente comprender el impacto financiero de cada toma corriente. El microcontrolador ESP32, un chip compacto y económico con Wi-Fi y Bluetooth integrados, actúa como el cerebro perfecto para recolectar, procesar y enviar estos datos a la nube o a un panel local en su red.

A diferencia de medidores industriales complejos que exigen cortar físicamente los cables de la red eléctrica, el enfoque que utilizamos aquí emplea un principio electromagnético simple y seguro. En lugar de seccionar cables o manipular directamente terminales de alta tensión peligrosos, instalamos un componente externo que abraza el conductor de manera totalmente aislada. Esta facilidad de montaje abre puertas tanto para entusiastas de la automatización del hogar como para ingenieros que buscan prototipar soluciones rápidas de eficiencia energética.

Cómo funciona el sensor de corriente no invasivo SCT-013

El sensor modelo SCT-013 es un transformador de corriente en formato de pinza o abrazadera flexible que detecta el campo magnético generado por el flujo de electrones a través de un cable conductor. En la práctica, cuando la corriente alterna de la red pasa por el cable, induce una corriente proporcional mucho menor en el bobinado interno del sensor. Esta aislación galvánica protege totalmente su circuito de control y el microcontrolador contra descargas eléctricas peligrosas o cortocircuitos destructivos en la red principal.

Existen diferentes versiones de este sensor en el mercado, siendo el modelo SCT-013-000 uno de los más populares por proporcionar una salida en corriente que varía típicamente entre cero y cincuenta miliamperios. Para que el ESP32 logre leer esta variación, necesitamos transformar dicha corriente en un voltaje legible conectando una resistencia de carga, también conocida como resistencia burden. Además, como la corriente alterna oscila de forma cíclica entre valores positivos y negativos, debemos polarizar la señal para que opere íntegramente en el rango positivo soportado por el conversor analógico del microcontrolador.

Preparando el circuito acondicionador de señal para el ESP32

El conversor analógico-digital del ESP32 acepta voltajes que varían estrictamente entre cero y tres coma tres voltios. Como la red eléctrica alterna su polaridad sesenta veces por segundo, la señal generada por el sensor caería por debajo de cero y dañaría el pin de lectura o generaría mediciones incorrectas. Para resolver este inconveniente en el banco de trabajo, armamos un circuito sencillo con un divisor de tensión utilizando dos resistencias de valor idéntico, generalmente cien kiloohmios, conectadas entre la alimentación de tres voltios y medio y la tierra.

Este divisor crea un nivel de referencia estable exactamente en un coma seiscientos cincuenta voltios, actuando como una tierra virtual o polarización central. Cuando el sensor no mide ninguna corriente, la lectura en el pin del ESP32 se estaciona justo en ese valor central. A medida que la corriente fluye por el cable, el voltaje oscila por encima y por debajo de este punto de reposo, dibujando perfectamente la onda senoidal de la red que el programa de lectura procesará sin distorsiones severas.

Implementando la lectura y el cálculo del valor eficaz en el código

Para transformar las muestras brutas de voltaje recolectadas por el ESP32 en valores útiles de corriente y potencia, utilizamos el concepto de valor eficaz, conocido técnicamente como RMS. En la práctica, la lectura instantánea del pin analógico oscila constantemente, por lo que debemos muestrear la señal cientos de veces durante varios ciclos consecutivos de la red eléctrica. Sumamos los cuadrados de estas lecturas, calculamos el promedio y aplicamos la raíz cuadrada para hallar el valor real que mostraría un multímetro convencional.

Otro detalle clave que abordamos en guías de instrumentación, tales como cómo calibrar sensores analógicos en el ESP32 sin errores, consiste en remover el nivel de corriente continua introducido por nuestro circuito de polarización central. En el código siguiente, restamos este valor de referencia de cada muestra antes de aplicar las operaciones matemáticas de conversión 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("Corriente RMS: ");  Serial.print(currentRMS);  Serial.print(" A | Potencia estimada: ");  Serial.print(power);  Serial.println(" W");  delay(1000);}

Calibración práctica y validación en el banco

Aun utilizando componentes de gran precisión, pequeñas variaciones en la tolerancia de las resistencias y en la inductancia del sensor exigen un ajuste empírico para asegurar la exactitud de las lecturas. Para calibrar el sistema, usted debe conectar un aparato de consumo resistivo conocido, como un secador de cabello en potencia máxima o un calefactor eléctrico, cuyo consumo real en vatios sea provisto por el fabricante o medido con un vatímetro de referencia.

Luego, compare el valor bruto mostrado en el monitor serial del ESP32 con el valor real obtenido mediante un multímetro verdadero o el medidor de la compañía eléctrica. Modifique la constante multiplicadora en el código hasta que las cifras coincidan con precisión. Si advierte inestabilidad en las lecturas o ruido fantasma cuando ningún equipo esté encendido, compruebe que las conexiones de los cables estén firmes y que no exista interferencia electromagnética cercana procedente de fuentes de alimentación conmutadas o lámparas fluorescentes. Para profundizar en estos conceptos arquitectónicos en producción, consulte también nuestro análisis técnico sobre Cómo crear atajos de teclado globales personalizados en macOS.

Consideraciones finales

Medir el consumo de energía en tiempo real con el ESP32 y el sensor SCT-013 combina electrónica accesible con programación eficiente para entregar resultados profesionales en su propio hogar. Al dominar la lectura de corriente alterna, el acondicionamiento de señal mediante divisor de voltaje y el cálculo del valor RMS, usted adquiere autonomía para ampliar su proyecto incorporando pantallas locales, alertas automáticas o integración completa con plataformas de código abierto. Con paciencia en el montaje y atención a los detalles de calibración, su medidor inteligente estará listo para operar con seguridad y alta confiabilidad durante años.