Monitorización de Consumo Eléctrico con ESP32 y Sensor SCT-013: Proyecto DIY Completo para una Instalación Segura
Escrito por: Alex R.La monitorización del consumo eléctrico en el hogar se ha convertido en una herramienta esencial para optimizar el gasto energético y reducir la huella de carbono. Con la llegada de plataformas de domótica como Home Assistant y el abaratamiento de microcontroladores como el ESP32, cualquier aficionado al DIY puede construir un sistema de monitorización preciso y económico. Este artículo te guiará a través de un proyecto completo que utiliza el sensor de corriente SCT-013, un ESP32 y una conexión Wi-Fi para enviar datos a Home Assistant. Abordaremos desde los fundamentos teóricos hasta la instalación práctica, incluyendo consideraciones de seguridad eléctrica, calibración y resolución de problemas comunes. Al finalizar, tendrás un sistema funcional que te permitirá conocer en tiempo real el consumo de tus electrodomésticos y tomar decisiones informadas para ahorrar energía.
Fundamentos Técnicos: Medición de Corriente Alterna con SCT-013
El sensor SCT-013 es un transformador de corriente (TC) de tipo pinza que permite medir corriente alterna (AC) sin necesidad de contacto eléctrico directo. Su principio de funcionamiento se basa en la inducción electromagnética: el conductor por el que circula la corriente a medir actúa como primario de un transformador, y la bobina interna del SCT-013 actúa como secundario. La corriente alterna en el conductor genera un campo magnético variable que induce una corriente proporcional en el secundario. El sensor SCT-013-030, por ejemplo, tiene una relación de transformación de 1000:1 y una corriente nominal de 30A, lo que significa que por cada amperio en el primario, circula 1 mA en el secundario. La salida del sensor es una corriente alterna, por lo que para leerla con un ESP32 necesitamos convertirla a un voltaje que el ADC (convertidor analógico-digital) pueda muestrear. Esto se logra mediante un circuito de acondicionamiento que incluye una resistencia de carga (burden resistor) y un circuito de polarización para centrar la señal en la mitad del rango del ADC (1.65V para el ESP32, que opera a 3.3V). El valor de la resistencia de carga determina la sensibilidad y el rango máximo medible. Para el SCT-013-030, una resistencia de 33 ohmios proporciona un voltaje de salida de 1V a 30A (RMS), lo que es adecuado para el ADC de 0-3.3V.
Es importante entender que el SCT-013 mide corriente, no potencia. Para obtener la potencia activa (en vatios), necesitamos conocer el voltaje de la red (asumiendo una tensión constante, por ejemplo 230V en Europa) y el factor de potencia (cos φ) de la carga. En cargas resistivas (como calefactores o bombillas incandescentes), el factor de potencia es aproximadamente 1, por lo que la potencia aparente (VA) es igual a la activa (W). En cargas inductivas (motores, transformadores), el factor de potencia es menor que 1, por lo que la potencia activa será menor que la aparente. Para una medición más precisa, se puede añadir un sensor de voltaje (como un transformador de tensión) y calcular el factor de potencia mediante la medición del desfase entre corriente y voltaje. Sin embargo, para la mayoría de aplicaciones domésticas, asumir un factor de potencia unitario y una tensión constante proporciona una aproximación suficientemente buena para la monitorización energética.
Componentes Necesarios y Esquema de Conexión
Para este proyecto necesitarás los siguientes componentes: un ESP32 (cualquier placa con Wi-Fi, como el ESP32 DevKit V1), un sensor SCT-013-030 (o SCT-013-050 para mayores corrientes), una resistencia de carga de 33 ohmios (para SCT-013-030; para otros modelos consulta la hoja de datos), dos resistencias de 10k ohmios para el divisor de tensión que polariza la señal a 1.65V, un condensador de 10 µF para filtrar el ruido de alta frecuencia, y una placa de prototipos o PCB. Opcionalmente, puedes incluir un conector jack de 3.5 mm para conectar el sensor de forma desmontable. El esquema de conexión es sencillo: el sensor SCT-013 tiene un conector jack de 3.5 mm con tres pines: uno es la salida de corriente (generalmente el terminal central), otro es la referencia (GND) y el tercero puede ser una resistencia de carga interna (en algunos modelos). Para el SCT-013-030, la resistencia de carga es externa, por lo que debes conectar una resistencia de 33 ohmios entre la salida y GND. Luego, la señal de voltaje a través de la resistencia de carga se polariza mediante un divisor de tensión formado por dos resistencias de 10k conectadas entre 3.3V y GND, cuyo punto medio se conecta a la señal a través de un condensador de 10 µF para eliminar el componente DC. Finalmente, la señal se conecta a un pin ADC del ESP32 (por ejemplo, GPIO34). Asegúrate de que el ESP32 y el sensor compartan la misma tierra (GND).
| Componente | Conexión |
|---|---|
| ESP32 (3.3V) | Alimenta el divisor de tensión (resistencias de 10k) |
| ESP32 (GND) | Conexión común a GND del sensor y divisor |
| SCT-013 (salida) | A resistencia de carga de 33 ohmios a GND |
| Punto medio divisor | A través de condensador 10µF a la salida del sensor |
| ADC ESP32 (GPIO34) | Conexión al punto medio del divisor |
Programación del ESP32 con Arduino IDE
La programación del ESP32 se realiza mediante el entorno Arduino IDE. Debes instalar el soporte para ESP32 siguiendo la guía oficial. El código debe realizar las siguientes tareas: leer el ADC, calcular el valor RMS de la corriente, convertir a amperios, calcular la potencia asumiendo tensión constante y factor de potencia unitario, y enviar los datos por MQTT a Home Assistant. Para la lectura del ADC, es importante tener en cuenta que el ADC del ESP32 tiene una resolución de 12 bits (0-4095) y un rango de 0-3.3V. La señal de corriente alterna, una vez acondicionada, oscila alrededor de 1.65V con una amplitud proporcional a la corriente. Para calcular el valor RMS, se toman múltiples muestras durante al menos un ciclo de red (20 ms para 50 Hz) y se calcula la raíz cuadrada de la media de los cuadrados de las muestras después de restar el offset DC. El número de muestras debe ser suficiente para capturar la forma de onda; por ejemplo, 1000 muestras a 50 kHz proporcionan buena precisión. Luego, la corriente RMS se calcula como: Irms = (Vrms * 1000) / (burden_resistor * turns_ratio), donde turns_ratio es 1000 para SCT-013-030. Con Irms en amperios, la potencia aparente es S = Vrms * Irms, y asumiendo factor de potencia unitario, la potencia activa P = S. Para enviar los datos a Home Assistant, se utiliza el protocolo MQTT. Necesitarás un broker MQTT (como Mosquitto) instalado en tu red. El ESP32 se conecta al Wi-Fi y publica los valores en tópicos como 'home/energia/corriente' y 'home/energia/potencia'. Home Assistant se suscribe a estos tópicos y crea sensores.
Integración con Home Assistant y Visualización de Datos
Una vez que el ESP32 está publicando datos por MQTT, la integración con Home Assistant es directa. En el archivo configuration.yaml de Home Assistant, añade una entrada para cada sensor MQTT. Por ejemplo, para la corriente:
sensor:
- platform: mqtt
name: "Corriente Total"
state_topic: "home/energia/corriente"
unit_of_measurement: "A"
icon: "mdi:current-ac"Para la potencia, similar pero con unit_of_measurement: "W". Luego puedes crear un panel de visualización con tarjetas de tipo sensor, gauge o gráfico. Home Assistant también permite calcular la energía acumulada (kWh) integrando la potencia a lo largo del tiempo mediante la plataforma 'integration'. Esto te permitirá ver el consumo diario, semanal o mensual. Además, puedes crear automatizaciones: por ejemplo, si la potencia supera un umbral, enviar una notificación al móvil. La combinación de ESP32, SCT-013 y Home Assistant ofrece una solución de monitorización energética potente y personalizable, comparable a sistemas comerciales como Shelly EM o Sense, pero a un coste mucho menor.
Errores Comunes y Solución de Problemas
Al implementar este proyecto, es frecuente encontrar algunos problemas. Uno de los más comunes es la lectura de valores erráticos o ruidosos. Esto suele deberse a un filtrado insuficiente en el circuito de acondicionamiento. Asegúrate de que el condensador de 10 µF esté correctamente conectado entre la señal y el punto medio del divisor. También puedes añadir un condensador de 100 nF entre el pin ADC y GND para filtrar ruido de alta frecuencia. Otro problema es la saturación del ADC si la corriente medida supera el rango del sensor. Para el SCT-013-030, la corriente máxima es 30A RMS, que produce un voltaje pico de aproximadamente 1.41V (asumiendo burden de 33 ohmios). Si esperas corrientes mayores, utiliza un sensor de mayor rango (SCT-013-050 o SCT-013-100) o reduce la resistencia de carga. También es importante verificar que la pinza del sensor esté correctamente cerrada y orientada. Algunos sensores tienen una marca que indica la dirección del flujo de corriente; aunque para medición RMS no importa la polaridad, es recomendable mantener una orientación consistente. Por último, si los datos no aparecen en Home Assistant, comprueba que el ESP32 esté conectado a la red Wi-Fi y que el broker MQTT esté funcionando. Puedes usar herramientas como MQTT Explorer para depurar.
Comparativa de Sensores de Corriente para Proyectos DIY
| Modelo | Rango | Relación | Burden Interno | Precisión | Precio |
|---|---|---|---|---|---|
| SCT-013-000 | 0-100A | 1000:1 | No | ±1% | $8 |
| SCT-013-030 | 0-30A | 1000:1 | No | ±1% | $10 |
| SCT-013-050 | 0-50A | 1000:1 | Opcional | ±1% | $12 |
| SCT-013-100 | 0-100A | 1000:1 | No | ±2% | $15 |
| SCT-013-030V | 0-30A | 1000:1 | Sí | ±1% | $14 |
La elección del sensor depende de la corriente máxima que esperas medir. Para un hogar típico, el SCT-013-030 es suficiente para un circuito individual (como el de un electrodoméstico). Si deseas monitorizar la entrada general, necesitarás un sensor de mayor rango, como el SCT-013-100. El modelo SCT-013-030V incluye una resistencia de carga interna, lo que simplifica el circuito, pero limita la flexibilidad. En general, recomendamos el SCT-013-030 por su equilibrio entre precio, precisión y disponibilidad.
Preguntas Frecuentes sobre Monitorización con ESP32 y SCT-013
¿Es necesario un circuito de acondicionamiento para el SCT-013?
¿Puedo medir varios circuitos con un solo ESP32?
¿Qué precisión puedo esperar de este sistema?
¿Es seguro instalar el sensor SCT-013 en el cuadro eléctrico?
Conclusiones y Plan de Acción Recomendado
La monitorización del consumo eléctrico con ESP32 y sensor SCT-013 es un proyecto DIY accesible, económico y muy gratificante. Te permite conocer en detalle el consumo de tus electrodomésticos, identificar derroches energéticos y optimizar tu factura de la luz. Además, al integrarlo con Home Assistant, puedes crear automatizaciones inteligentes y visualizar los datos de forma clara. Para empezar, te recomendamos adquirir un kit básico con ESP32, SCT-013-030, resistencias y condensadores. Sigue los pasos de esta guía: monta el circuito en una protoboard, programa el ESP32 con el código de ejemplo, y verifica las lecturas con un multímetro. Luego, instala el sensor en el circuito que desees monitorizar (por ejemplo, el del horno o la lavadora) y configura Home Assistant. Con el tiempo, puedes ampliar el sistema añadiendo más sensores o mejorando la precisión con un sensor de voltaje. No olvides priorizar la seguridad en todo momento.
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.