¿Te gustaría saber cuánta corriente está consumiendo un electrodoméstico sin instalar un medidor comercial? Con un ESP32 y un sensor SCT-013 puedes construir un pequeño sistema capaz de medir corriente, conectarse a tu red Wi-Fi y mostrar los datos directamente desde el móvil.
|
|
ESP32 con sensor SCT-013 conectado por Wi-Fi para visualizar el
consumo eléctrico desde el móvil |
Lo interesante de este proyecto es que no necesitas una pantalla adicional. El propio ESP32 crea una pequeña página web que puedes abrir desde cualquier teléfono conectado a la misma red.
¿Qué vamos a construir?
El objetivo es crear un monitor de corriente con ESP32 + SCT-013 que pueda:
- Medir la corriente que circula por un conductor.
- Calcular una estimación de potencia.
- Conectarse a una red Wi-Fi.
- Mostrar los valores desde el navegador del móvil.
- Actualizar automáticamente las mediciones.
El sistema resulta especialmente interesante para proyectos de domótica, electrónica, eficiencia energética y aprendizaje con microcontroladores.
Materiales necesarios
- ESP32 DevKit.
- Sensor de corriente SCT-013.
- Resistencias para adaptar la señal del sensor.
- Condensador para crear el punto medio de referencia.
- Cables Dupont.
- Protoboard para las pruebas.
- Cable USB para alimentar y programar el ESP32.
Es importante comprobar qué versión del SCT-013 tienes antes de montar el circuito. Existen diferentes modelos y no todos entregan exactamente la misma señal.
¿Cómo funciona el SCT-013?
El SCT-013 es un transformador de corriente que permite detectar la corriente que circula por un conductor sin necesidad de realizar una conexión eléctrica directa con él.
El sensor se coloca alrededor de un solo conductor. El campo magnético producido por la corriente genera una señal proporcional que posteriormente puede ser procesada por el ESP32.
Esta característica hace que el SCT-013 sea muy útil para proyectos de monitorización energética.
Conexión básica
El ESP32 trabaja con entradas analógicas y necesita que la señal procedente del sensor permanezca dentro de un rango seguro para el ADC. Por eso se utiliza una etapa de adaptación con resistencias y un condensador.
De forma conceptual, la conexión queda así:
|
|
Conexion del sensor SCT-013 al ESP32 mediante circuito de adaptacion y
GPIO 34 ADC |
Para una primera prueba, puedes utilizar un pin ADC apropiado del ESP32, por ejemplo GPIO 34. Recuerda que la disponibilidad y comportamiento de los ADC puede variar entre diferentes versiones de placas ESP32.
¿Por qué necesitamos una referencia de voltaje?
La señal del SCT-013 es una señal alterna. El ADC del ESP32, en cambio, trabaja con valores positivos respecto a GND.
Por eso normalmente se crea un punto medio de referencia. De esta manera, la señal alterna puede oscilar alrededor de ese punto sin intentar introducir valores negativos en la entrada analógica.
En un montaje práctico se utiliza un divisor resistivo y un condensador para generar esta referencia.
El programa del ESP32
El siguiente ejemplo permite conectar el ESP32 a Wi-Fi, realizar una lectura analógica y mostrar el resultado mediante una página web.
Importante: los valores de calibración deben ajustarse al modelo exacto del SCT-013 y al circuito utilizado. El código sirve como punto de partida y no como instrumento de medición certificado.
#include <WiFi.h>#include <WebServer.h>#include <math.h>const char* ssid = "TU_WIFI"; const char* password = "TU_PASSWORD"; WebServer server(80); const int SENSOR_PIN = 34; // Ajusta este valor según tu SCT-013 y tu circuito const float CALIBRATION = 0.050f; // Voltaje de referencia utilizado solamente // para una estimación de potencia const float LINE_VOLTAGE = 120.0f; float readCurrent() { const int samples = 1000; double sum = 0; double sumSquares = 0; for (int i = 0; i < samples; i++) { int raw = analogRead(SENSOR_PIN); sum += raw; sumSquares += (double)raw * raw; delayMicroseconds(200); } double mean = sum / samples; double variance = (sumSquares / samples) - (mean * mean); if (variance < 0) variance = 0; double rms = sqrt(variance); return rms * CALIBRATION; } void handleRoot() { String html = R"rawliteral( <!DOCTYPE html> <html lang="es"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <title>Monitor eléctrico ESP32</title> <style> body{ font-family:Arial,sans-serif; background:#101318; color:white; text-align:center; margin:0; padding:25px; } .card{ max-width:500px; margin:auto; background:#1c222b; border-radius:16px; padding:25px; box-sizing:border-box; } .value{ font-size:48px; font-weight:bold; margin:20px 0; } .label{ color:#b9c0ca; } .info{ margin-top:20px; color:#aaa; font-size:14px; } </style> </head> <body> <div class="card"> <h1>Monitor eléctrico</h1> <div class="label">Corriente estimada</div> <div class="value"> )rawliteral"; float current = readCurrent(); float power = current * LINE_VOLTAGE; html += String(current, 2); html += " A"; html += R"rawliteral( </div> <div class="label">Potencia estimada</div> <div class="value" style="font-size:36px;"> )rawliteral"; html += String(power, 1); html += " W"; html += R"rawliteral( </div> <div class="info"> Lectura realizada por ESP32 + SCT-013 </div> </div> </body> </html> )rawliteral"; server.send(200, "text/html; charset=utf-8", html); } void setup() { Serial.begin(115200); analogReadResolution(12); WiFi.begin(ssid, password); Serial.print("Conectando a Wi-Fi"); while (WiFi.status() != WL_CONNECTED) { delay(500); Serial.print("."); } Serial.println(); Serial.println("Wi-Fi conectado"); Serial.print("Dirección IP: "); Serial.println(WiFi.localIP()); server.on("/", handleRoot); server.begin(); Serial.println("Servidor web iniciado"); } void loop() { server.handleClient();}
Cómo cargar el programa
Abre Arduino IDE, selecciona la placa ESP32 que estás utilizando y reemplaza:
const char* ssid = "TU_WIFI";const char* password = "TU_PASSWORD";
por el nombre y la contraseña de tu red inalámbrica.
|
|
Programacion del ESP32 con Arduino IDE para conectar el sensor SCT-013
a WiFi |
Después selecciona el puerto correspondiente al ESP32 y carga el programa.
Cómo ver el consumo desde el móvil
Una vez que el ESP32 se conecte a la red Wi-Fi, abre el Monitor Serie del Arduino IDE a 115200 baudios.
Deberías encontrar un mensaje parecido a:
Wi-Fi conectadoDirección IP: 192.168.1.45Servidor web iniciado
La dirección IP puede ser diferente en tu red.
Ahora conecta el teléfono a la misma red Wi-Fi y escribe esa dirección en el navegador:
|
|
Ver el consumo electrico del sensor SCT-013 y ESP32 desde el movil
mediante WiFi |
Al hacerlo aparecerá una pequeña interfaz con la corriente y la potencia estimadas.
Un detalle importante sobre la potencia
En este proyecto estamos calculando la potencia de forma aproximada mediante:
Esto puede ser útil para aprender y realizar estimaciones, pero no equivale a un medidor profesional de energía.
En una instalación real, la potencia activa depende también del factor de potencia y de la forma de onda. Para obtener una medición energética más precisa habría que medir simultáneamente tensión y corriente y realizar un cálculo adecuado de potencia activa.
¿Cómo calibrar el sensor?
La constante:
const float CALIBRATION = 0.050f;
es solamente un valor inicial. No debes asumir que funciona correctamente para todos los SCT-013.
La forma adecuada de calibrarlo es comparar la lectura del ESP32 con una carga conocida y un instrumento de referencia confiable.
|
|
Calibracion del sensor SCT-013 con ESP32 usando una carga electrica
conocida |
Por ejemplo, puedes utilizar una carga estable cuya corriente conozcas y ajustar progresivamente el factor hasta que la lectura del ESP32 se aproxime al valor de referencia.
¿Qué puedes mejorar después?
Una vez que este primer prototipo funcione, puedes convertirlo en un proyecto mucho más completo.
- Guardar las mediciones en una base de datos.
- Crear gráficos de consumo.
- Registrar el consumo por horas y días.
- Crear una página web más completa.
- Añadir alertas cuando la corriente supere determinado valor.
- Enviar los datos a Home Assistant.
- Utilizar MQTT para integrarlo con otros dispositivos IoT.
- Calcular energía acumulada en kWh.
¿Qué tan útil puede ser este proyecto?
Un ESP32 cuesta relativamente poco y ofrece conectividad Wi-Fi integrada, por lo que puede convertirse en el cerebro de un pequeño sistema de monitorización energética.
Con un SCT-013 puedes experimentar con diferentes cargas y aprender cómo funcionan los sensores de corriente, los ADC, las comunicaciones inalámbricas y las interfaces web.
También es una excelente base para construir posteriormente un sistema de monitorización eléctrica doméstica mediante IoT.
⚠️ Seguridad antes de realizar pruebas
No conectes nunca la tensión de red directamente al ESP32.
El SCT-013 permite realizar una medición indirecta, pero eso no significa que trabajar alrededor de una instalación eléctrica sea completamente seguro.
Realiza las primeras pruebas utilizando una configuración aislada y de baja tensión cuando sea posible. Si necesitas intervenir en una instalación eléctrica doméstica, solicita la ayuda de una persona cualificada.
Con un ESP32 + SCT-013 puedes construir un detector de corriente conectado a Wi-Fi capaz de mostrar las mediciones desde cualquier teléfono conectado a la misma red.
Lo mejor es que este proyecto puede crecer mucho más allá de una simple lectura. Con almacenamiento de datos, gráficos y automatizaciones, el mismo concepto puede convertirse en un auténtico sistema de monitorización energética basado en IoT.
¿Te gustaría llevarlo al siguiente nivel? El siguiente paso natural es añadir un historial de consumo, gráficos y una interfaz web optimizada para móviles para convertir el ESP32 en un pequeño monitor energético inteligente.




