Table of Contents
¿Por qué construir un medidor de energía basado en microcontroladores?
Las facturas de energía casera siguen aumentando y la comprensión exacta de dónde se consume la electricidad es el primer paso hacia la reducción de los desechos. Los monitores de energía comercial a menudo cuestan cientos de dólares y carecen de flexibilidad para interactuar con sistemas de automatización de hogares personalizados. Un medidor de potencia basado en microcontroladores ofrece una alternativa de bajo costo que puede adaptar a sus necesidades específicas. Mediante la medición de tensión, corriente y cálculo de potencia real, estos dispositivos proporcionan información práctica que le ayudará a cambiar cargas,
Componentes básicos: Lo que necesitas y por qué
Cada medidor de potencia se apila en unos pocos componentes críticos. La selección de piezas de calidad afecta directamente la precisión, la seguridad y la facilidad de uso. A continuación descomponemos cada elemento, discuten opciones comunes y expliquen cómo funcionan juntos.
Microcontrolador (MCU) – El cerebro
El microcontrolador muestra señales analógicas, realiza cálculos y maneja comunicación. Para el monitoreo de energía en el hogar, el ESP32 es una opción fuerte porque integra WiFi y Bluetooth, funciona en 3.3V, y ofrece procesamiento de doble núcleo. Si prefiere la simplicidad, un Arduino Uno (5V lógica) funciona bien para el prototipado pero requiere un escudo WiFi externo para la conectividad.
Tensión Sensing
El sistema de medición de la tensión de las barras de microcontrolador es peligroso e ilegal. El enfoque más seguro utiliza un transformador de tensión de presión de la escala de 240-9.
Sensación actual
Para la medición actual, los transformadores de corriente de núcleos separados (TC) son ideales porque se abrazan alrededor de un cable en vivo sin interrumpir el servicio. La familia SCT‐013 es popular: la variante 30A/1V produce 0-1V AC proporcional a la corriente, que un ADC puede leer después de la bisección de DC. Los sensores de efectos de Hall como el sensor ACS712 o ACS758 ofrecen una medición de carga completa de DC en un paquete de corte y requieren un corte.
Conversión analógica a digital (ADC)
El microcontrolador incorpora ADC es adecuado para los medidores básicos, pero su resolución limitada (10 bits en Arduino, 12 bits en ESP32) y el suelo de ruido pueden introducir errores. Para mayor precisión, considere un ADC externo como el MCP3208 (12 bits, SPI) o ADS1115 (16 bits, I2C). El ADS1115 es particularmente popular porque ofrece una ganancia programable (hasta ±56
Visualización y conectividad
Una pantalla local (OLED 128×64, TFT o carácter LCD) muestra potencia en tiempo real en vatios, kilovatios hora y costo. Para acceso remoto, WiFi (ESP32 incorporado) o un módulo ESP‐01 externo le permite empujar datos a MQTT, ThingsBoard o un servidor web simple. Bluetooth BLE es una opción para aplicaciones móviles de corto alcance. Asegúrese de que su conectividad no aumenta el consumo de energía.
Consideraciones de diseño y seguridad de circuitos
Antes de montar cualquier cosa, diseña el circuito en papel. Las trayectorias de medición de tensión y corriente deben estar completamente aisladas entre sí y del lado MCU de baja tensión. Use un suministro regulado 5V o 3.3V derivado de un pequeño adaptador de pared, no de los principales. Todas las conexiones a los principales deben ser encerradas en una caja aislada y clasificadas para el voltaje esperado y la corriente. [[FLT]
Un circuito típico para un metro de una sola fase:
- Canal de tensión: Transformador de paso (por ejemplo, salida 9V AC) → Divisor de tensión para reducir a 1V pico → DC offset (Vcc/2) → Filtro RC (100Ω/10μF) → Entrada ADC.
- Canal actual: TC (por ejemplo, SCT‐013 con resistor de carga incorporado) → DC offset (Vcc/2) → Filtro RC → Entrada ADC.
- Fuente: 5V o 3.3V regulados por un banco de alimentación USB o un adaptador dedicado. No extraiga la energía del circuito de medición.
Agregue un trimpot de 10kΩ para ajustar el offset DC precisamente a la mitad de la referencia ADC. Esto asegura que la forma de onda AC se centra y el microcontrolador puede leer tanto las mitades positivas como negativas.
Firmware: muestreo, cálculo RMS y computación de potencia
El firmware debe probar ambos canales sincroníadamente, calcular los verdaderos valores RMS (para cargas no sinusoidales como el cambio de fuentes de energía), y derivar potencia activa, potencia aparente y factor de potencia. A continuación se muestra una explicación ampliada del algoritmo.
Estrategia de muestreo
Para una base de 50/60 Hz, muestra por lo menos 64 puntos por ciclo (por ejemplo, 3840 muestras/segundo para 60 Hz) para capturar armónicos hasta el 15. Una tasa de muestra más alta (2-4 kHz) mejora la precisión. Use una interrupción del temporizador o la función para mantener los intervalos consistentes.
Calculando voltaje y RMS actuales
Utilice la siguiente 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;
El convierte la lectura ADC (valor digital de rocío) de nuevo a voltios o amplificadores. Determinarlo experimentalmente: alimentar una referencia conocida (por ejemplo, 10V AC) y ajustar el factor hasta que la lectura RMS coincida con un verdadero multimetro RMS.
Calculación de energía
Potencia aparente (S = V rms × I rms) es directa, pero el poder activo (P) requiere multiplicación instantánea y promedio:
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 potencia = activo poder / aparente poder. Para cargas puramente resistivas, PF Ω 1.0; para cargas inductivas (motores), gotas de PF por debajo de 1.0, y la verdadera medición de potencia activa es esencial para la facturación precisa.
Acumulación de energía (kWh)
Para realizar un seguimiento del consumo de energía, integre la energía activa con el tiempo:
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();
}
}
Almacene el valor acumulado en memoria EEPROM o RTC para que sobreviva a la pérdida de energía. Para un medidor de casa completo, espere valores en el rango de 500–2000 Wh por hora dependiendo del uso.
Calibración: El Secreto a Datos Confiables
Sin calibración, sus lecturas podrían estar apagadas en un 10–20% o más. El proceso implica tres pasos:
- Calibración de ero: Sin carga, lea el offset de DC para cada canal y ajuste las constantes de firmware hasta que el RMS lea lo más cerca posible de cero (típicamente <0.1 W).
- Calibración de los valores de tensión: Aplicar un voltaje estable conocido (por ejemplo, un adaptador de 12V AC medido con un multimímetro) y ajustar el factor de escala de tensión hasta que el medidor coincida.
- Calibración de los gases para la corriente: Conecte una carga resistiva conocida (por ejemplo, una bombilla incandescente de 100W) y ajuste el factor de escala actual. Un medidor de pinza de verdadero RMS calibrado es inestimable aquí.
Grabar las constantes de calibración final en el código fuente o almacenarlas en memoria no volátil para que pueda ajustarse sin re-planear el firmware.
Registro de datos y visualización
Los números brutos en un monitor serie no son fáciles de usar. Agregue una pantalla local para mostrar energía en tiempo real, energía diaria y costo estimado. Para el monitoreo remoto, envíe datos a través de WiFi a plataformas como EmonCMS, ThingsBoard, o un panel personalizado Node‐RED. El ESP32 hace que este trivial – sólo se conecta a su red de inicio y publica JSON sobre MQTT. Si prefiere una solución auto-hosted, escriba un servidor HTML simple
Para la registro a largo plazo, un módulo de tarjeta SD escribe archivos CSV. Esto es útil cuando WiFi es incontable o para el análisis offline. Asegúrese de que la tarjeta está correctamente formateado y la biblioteca SD se inicializa de forma segura para evitar la corrupción de archivos.
Más de una fase: sistemas de tres fases y polifase
Los hogares con potencia de tres fases (común en Europa y grandes casas de EE.UU.) requieren tres voltaje y tres canales actuales. Puede utilizar un MCU con suficientes entradas analógicas (por ejemplo, ESP32 tiene dos ADCs multiplexados a 16 pines, pero el ruido analógico aumenta al usar múltiples canales). Un mejor enfoque es utilizar dos o más MCUs comunicando vía I2C o serie, o un multiplexer externo como el CD74H40 independiente.
Sincronización del tiempo
Para una potencia activa exacta por fase, muestre todos los pares de tensión y corriente en una sola ráfaga (dentro de microsegundos) para preservar las relaciones de fase. Si muestra los canales secuencialmente (como con un multiplexor), el tiempo se introduce un error de fase que aumenta con frecuencias más altas. ADCs desactivados con muestra-y-lugar (como la onda AD7606) resolver este pero añadir costo.
Características avanzadas para ampliar su medidor
Una vez que el medidor de potencia básico está funcionando, considere agregar estas mejoras:
- Power factor correction alerts: Si PF cae por debajo de 0.8, indique al usuario a investigar posibles cargas reactivas.
- Identificación de la aplicación: Al analizar las firmas armónicas (utilizando FFT), puede distinguir entre un refrigerador, microondas y lavadora. Se trata de un área de investigación activa pero factible con un ESP32 y suficiente RAM.
- Monitoreo de generación solar: Agregue un segundo transformador actual en la línea de alimentación solar (TC bidireccional) para medir la exportación/importación neta.
- Auto-calibración: Usar un relé para cambiar en un resistor de referencia conocido para la auto-calibración durante los períodos de ocio.
- Cerrarse de potencia: Conecte un relé de estado sólido para desconectar las cargas cuando el consumo supere un umbral (por ejemplo, para evitar el tripulador).
Comparación con Monitores de Energía Comercial
Productos comerciales como el Sense, Emporia Vue o Shelly EM ofrecen aplicaciones pulidas, integración en la nube y seguridad en UL. Sin embargo, lo encerran en un ecosistema patentado y a menudo requieren una suscripción mensual para datos históricos. Un medidor de DIY le da la propiedad completa de los datos, sin costos recurrentes, y la capacidad de interactuar con cualquier estándar inteligente (Home Assistant, OpenHAB).
Recursos y lectura ulterior
Para un entendimiento más profundo, consulte los siguientes recursos:
- OpenEnergyMonitor Documentation – Guías integrales sobre sensores de TC, adaptadores AC-AC y calibración.
- Adafruit INA219 Tutorial – Usando un sensor de corriente/voltaje I2C para aplicaciones de baja potencia DC.
- Guía de medición de potencia de dispositivos análogos] – Fondo teórico sobre medición de potencia y errores de AC.
Traer todo juntos: una lista de verificación práctica de construcción
Para ayudarle a comenzar, aquí hay una lista de verificación paso a paso para un metro de una sola fase, ESP32-basado:
- Componentes de selección y pedido: ESP32 DevKitC, SCT‐013‐000 (100A/50mA), transformador AC 230V‐to‐9V, resistores de 1kΩ y 10kΩ, condensadores de 10μF/25V, perfboard, recinto.
- En primer lugar, montar el voltaje y los circuitos de divider actuales en una tabla de pan. Prueba con un multimetro para verificar el offset DC es exactamente Vcc/2.
- Escribe un simple bosquejo que imprime valores ADC crudos. Aplica un voltaje AC conocido (a través del transformador) y verifica la forma de onda en un plotter serie.
- Implementar cálculos RMS con un promedio de más de 50 ciclos. Compare la lectura a un multimetro.
- Agregue el sensor actual y la calibración de repetición. Prueba con una bombilla de 100W (debería leer ~0.43A en 230V).
- Combina tensión y muestreo actual en un bucle. Computa potencia activa. Comprueba con una carga resistiva (poder activo ♥ energía aparente).
- Agregue conexión WiFi y publicación MQTT. Utilice una herramienta como MQTT Explorer para verificar el flujo de datos.
- Diseñar y imprimir un caso que asegure el flujo de aire y prevenga el contacto accidental con el cableado de las principales. Instalar la versión final en el panel de interruptores (con el interruptor principal apagado).
- Ejecute el medidor durante 24 horas y compare el total de energía diaria con su factura de utilidad para confirmar la precisión dentro del 2–5%.
Construir un medidor de potencia basado en microcontroladores es un proyecto que ofrece beneficios prácticos inmediatos. Con un diseño cuidadoso y calibración, su monitor casero proporcionará años de datos energéticos confiables, ayudando a reducir los residuos y ahorrar dinero.