Monitorización de Consumo Eléctrico con ESP32 y Sensor SCT-013: Proyecto DIY Completo para una Instalación Segura y Precisa
Escrito por: Alex R.El control del consumo eléctrico en el hogar se ha convertido en una prioridad para quienes buscan eficiencia energética y ahorro económico. Con el auge del IoT y las plataformas de domótica como Home Assistant, construir un medidor de consumo WiFi con ESP32 y sensor SCT-013 se presenta como una solución DIY precisa, económica y totalmente personalizable. Este artículo te guiará a través de cada paso del proyecto, desde los fundamentos teóricos hasta la instalación segura y la visualización de datos en tiempo real, garantizando un resultado profesional y fiable.
Fundamentos del Sensor SCT-013 y el Microcontrolador ESP32
El sensor SCT-013 es un transformador de corriente de tipo abrazadera que permite medir la corriente alterna (AC) sin necesidad de realizar cortes en el cableado eléctrico. Funciona por inducción electromagnética: el campo magnético generado por la corriente que circula por el conductor induce una tensión proporcional en el secundario del transformador. Existen varias versiones del SCT-013, siendo las más comunes las que entregan una salida de tensión alterna (0-1V) o una salida de corriente (0-50mA). Para proyectos con ESP32, se recomienda la versión de salida de tensión (SCT-013-000 o SCT-013-030) con un rango de medición de 0-30A o 0-100A, según la carga a monitorizar.
El ESP32 es un microcontrolador de bajo coste y alto rendimiento que integra conectividad WiFi y Bluetooth. Su conversor analógico-digital (ADC) de 12 bits permite leer señales analógicas con una resolución de 4096 niveles, suficiente para capturar la forma de onda de la corriente alterna. Sin embargo, el ADC del ESP32 no es lineal en toda su escala, por lo que es necesario aplicar técnicas de calibración y promediado para obtener mediciones precisas. Además, el ESP32 puede ejecutar un servidor web o enviar los datos a plataformas como Home Assistant, MQTT o servicios en la nube.
Principio de Medición de Corriente Alterna
La corriente alterna varía sinusoidalmente en el tiempo. Para medir su valor eficaz (RMS), es necesario muestrear la señal durante un número entero de ciclos (por ejemplo, 50 Hz en Europa, 60 Hz en América). El ESP32 debe leer el ADC a una frecuencia de al menos 2 kHz (2000 muestras por segundo) para capturar suficientes puntos de la onda. Luego, se calcula el valor RMS mediante la fórmula: RMS = sqrt( (1/N) * sum(sample^2) ), donde N es el número de muestras. Este cálculo elimina el offset de DC y proporciona el valor de corriente eficaz.
Para convertir la corriente RMS en potencia aparente (VA), se multiplica por el voltaje de la red (generalmente 230V en Europa, 120V en América). La potencia activa (vatios) requiere además el factor de potencia, que puede obtenerse midiendo el desfase entre tensión y corriente con un segundo sensor (o asumiendo un factor de potencia típico de 0.9-1 para cargas resistivas). En este proyecto nos centraremos en la medición de corriente y potencia aparente, suficiente para la mayoría de aplicaciones de monitorización.
Materiales Necesarios y Esquema de Conexiones
Para construir el medidor de consumo WiFi con ESP32 y SCT-013 necesitarás los siguientes componentes:
- ESP32 DevKit V1 o similar: Microcontrolador con WiFi, ADC de 12 bits y suficiente potencia de procesamiento.
- Sensor SCT-013 (versión 0-1V): Transformador de corriente de abrazadera con salida de tensión alterna.
- Resistencia de carga (burden resistor): Para versiones de salida de corriente (SCT-013-000) se necesita una resistencia de precisión (por ejemplo, 33 ohmios) para convertir la corriente en tensión. En la versión de salida de tensión ya viene integrada.
- Condensador de 100 µF y resistencias de polarización: Para añadir un offset de DC de 1.65V (mitad de la tensión de referencia del ADC) y filtrar el ruido de alta frecuencia.
- Fuente de alimentación 5V: Para alimentar el ESP32 (puede ser un cargador USB o una fuente de 5V regulada).
- Cables, protoboard y soldador: Para realizar las conexiones de forma segura.
1Conexión del SCT-013 al ESP32
Conecta el cable jack del SCT-013 a un conector hembra. El pin de señal (punta) se conecta a la entrada ADC del ESP32 (GPIO34, por ejemplo) a través de un divisor de tensión que añada un offset de 1.65V. El pin de tierra (manguito) se conecta a GND. Se recomienda añadir un condensador de 100 µF entre la señal y GND para filtrar ruido.
2Circuito de Polarización (Offset de DC)
Para que el ADC pueda leer la señal alterna (que oscila entre valores positivos y negativos), se debe desplazar la señal hacia arriba sumando una tensión continua de 1.65V. Esto se logra con un divisor de tensión formado por dos resistencias de 100k entre 3.3V y GND, y conectando el punto medio a la entrada ADC a través de una resistencia de 10k. La salida del SCT-013 se acopla mediante un condensador de 10 µF para eliminar el componente de DC.
Programación del ESP32 para Medición de Corriente RMS
El firmware del ESP32 debe realizar las siguientes tareas: leer el ADC a alta frecuencia, calcular el valor RMS de la corriente, convertir a amperios y vatios, y enviar los datos por WiFi. A continuación se presenta un esquema del código principal en Arduino IDE.
Configuración del ADC y Muestreo
El ADC del ESP32 se configura con una atenuación de 11 dB para medir hasta 3.3V. Se utiliza el canal ADC1 (GPIO34) con resolución de 12 bits. Para muestrear la señal, se lee el ADC en un bucle durante un período de tiempo que cubra al menos un ciclo de 50 Hz (20 ms) o 60 Hz (16.67 ms). Se recomienda tomar 2000 muestras en 20 ms (100 kHz) para obtener una buena precisión. El valor leído se convierte a tensión: voltaje = (lectura * 3.3) / 4095.
Para eliminar el offset de DC, se resta el valor medio de las muestras (que corresponde al offset de 1.65V). Luego se calcula la suma de los cuadrados de las muestras y se divide por el número de muestras, obteniendo el cuadrado del valor RMS. Finalmente, se aplica la raíz cuadrada para obtener el voltaje RMS de la señal del sensor. Este voltaje es proporcional a la corriente que circula por el conductor.
Calibración y Conversión a Amperios
La relación entre el voltaje RMS medido en el ADC y la corriente real depende del modelo del SCT-013. Para el SCT-013-030 (30A, salida 0-1V), la sensibilidad es de 1V / 30A = 0.0333 V/A. Es decir, por cada amperio de corriente, el sensor produce 33.3 mV RMS. Sin embargo, esta relación puede variar ligeramente debido a tolerancias. Para una calibración precisa, se recomienda utilizar una carga conocida (por ejemplo, una bombilla de 100W) y ajustar el factor de escala hasta que la lectura coincida con la corriente real medida con un multímetro de pinza.
Integración con Home Assistant y Visualización en Tiempo Real
Una vez que el ESP32 calcula la corriente y la potencia, puede enviar los datos a Home Assistant mediante MQTT. Para ello, se necesita un broker MQTT (como Mosquitto) instalado en el mismo servidor que Home Assistant. El ESP32 se conecta al broker y publica los valores en tópicos como 'casa/medidor/corriente' y 'casa/medidor/potencia'. En Home Assistant, se crean sensores MQTT que recogen estos valores y los muestran en el dashboard.
Alternativamente, el ESP32 puede alojar un pequeño servidor web que muestre los datos en una página HTML. Esta opción es más sencilla para pruebas, pero menos escalable. Para una integración completa, se recomienda MQTT, ya que permite registrar históricos, crear automatizaciones y visualizar gráficos de evolución del consumo.
| Parámetro | Valor | Estado |
|---|---|---|
| Precisión típica | ±2% | Aceptable |
| Rango de corriente | 0-30 A (SCT-013-030) | Suficiente |
| Frecuencia de muestreo | 2 kHz | Mínima |
| Conectividad | WiFi 2.4 GHz | Estándar |
Errores Comunes y Cómo Evitarlos
Al construir un medidor de consumo con ESP32 y SCT-013, es fácil cometer errores que afectan la precisión o la seguridad. A continuación, se detallan los más frecuentes y sus soluciones.
- Offset de DC incorrecto: Si no se añade el offset de 1.65V, la señal alterna se recortará en los semiciclos negativos, dando lecturas erróneas. Verifica con un osciloscopio o midiendo el valor medio de la señal ADC (debe ser ~2048 cuentas).
- Ruido eléctrico: El ADC del ESP32 es sensible al ruido. Utiliza cables apantallados para la señal del sensor, coloca el ESP32 lejos de fuentes de interferencia (como fuentes conmutadas) y añade condensadores de filtro.
- Conexión incorrecta del sensor: La pinza del SCT-013 debe colocarse alrededor de UN SOLO conductor (fase o neutro, pero no ambos). Si abrazas el cable bipolar, las corrientes se cancelan y la lectura será cero.
- Falta de aislamiento galvánico: El SCT-013 proporciona aislamiento galvánico, pero el ESP32 no. Asegúrate de que el circuito de medida esté correctamente aislado de la red eléctrica. No conectes el GND del ESP32 a la tierra de la instalación sin protecciones.
Comparativa de Alternativas: SCT-013 vs. Otros Sensores
Existen otras opciones para medir corriente en proyectos DIY, como el sensor ACS712 (efecto Hall) o los módulos PZEM-004T. La siguiente tabla compara las características principales.
| Característica | SCT-013 | ACS712 | PZEM-004T |
|---|---|---|---|
| Tipo de medición | Inductivo (sin contacto) | Efecto Hall (en serie) | Inductivo + tensión |
| Aislamiento galvánico | Sí | No | Sí |
| Precisión típica | ±1-2% | ±3-5% | ±1% |
| Rango de corriente | Hasta 100 A | Hasta 30 A | Hasta 100 A |
| Medición de tensión | No | No | Sí |
| Comunicación | Analógica | Analógica | Serial (Modbus) |
| Precio aproximado | 8-12 € | 3-5 € | 15-20 € |
El SCT-013 ofrece un buen equilibrio entre precio, precisión y seguridad gracias a su aislamiento galvánico. El ACS712 es más barato pero requiere conexión en serie y no aísla, lo que puede ser peligroso. El PZEM-004T es más completo (mide tensión y corriente) pero es más caro y requiere comunicación serie. Para un proyecto DIY de monitorización de consumo general, el SCT-013 es la opción recomendada.
Preguntas Frecuentes (FAQ)
¿Puedo medir corriente continua con el SCT-013?
¿Qué precisión puedo esperar con este proyecto?
¿Es seguro este proyecto para instalaciones eléctricas domésticas?
¿Puedo monitorizar varios circuitos con un solo ESP32?
Este análisis técnico es independiente. No recibimos pagos de fabricantes para alterar valoraciones. Si realizas una compra a través de enlaces en este sitio, podríamos percibir una comisión de afiliación que ayuda a mantener el servidor activo, sin coste extra para ti.