De enchufe espía a enchufe que es tuyo de verdad
¿Tienes un enchufe inteligente en casa y nunca te preguntaste a dónde van los datos de consumo de tu pieza? La mayoría de los enchufes WiFi baratos del mercado funcionan igual: miden tu energía, sí, pero esa información viaja a un servidor en la nube de un fabricante que ni conoces, atada a una cuenta y a una app propietaria que puede dejar de funcionar el día que la empresa cierre. Tú compraste el aparato, pero quien manda es otro.
Este tutorial te muestra cómo dar vuelta esa relación por completo. Vamos a tomar un enchufe inteligente comercial con medidor de energía y a reemplazar su cerebro WiFi por un módulo ESP8685-WROOM-03 (ESP32-C3), para correr firmware abierto compatible con Apple HomeKit nativo, sin nube, con actualizaciones por aire (OTA) y con medición completa de voltaje, corriente, potencia y energía acumulada. Al terminar vas a tener un enchufe que mide tu consumo y reporta todo de forma local, dentro de tu casa, sin telemetría hacia afuera.
Es un proyecto de electrónica de reflasheo: hay que abrir el aparato, desoldar el módulo original de montaje superficial (SMD), soldar el nuevo módulo en su lugar y cargar el firmware. La dificultad real es media. Si ya soldaste pads SMD alguna vez y te manejas con la línea de comandos, esto está a tu alcance.

Advertencia: esto trabaja con 220V de la red domiciliaria
Antes de cualquier otra cosa, lo más importante:
PELIGRO: la red eléctrica puede matarte. Este proyecto interviene un dispositivo que se conecta directo a los 220V AC de tu casa. La placa, una vez enchufada, tiene zonas con tensión de red letal.
Reglas que no se negocian:
- Desenchufa siempre el dispositivo antes de abrirlo. Trabaja únicamente con la placa fuera del tomacorriente.
- Nunca manipules el circuito con energía aplicada.
- Usa herramientas con mango aislado.
- No toques conductores expuestos.
- En Chile, intervenir instalaciones eléctricas tiene marco regulatorio de la SEC. Si no estás seguro de lo que haces, consulta a un instalador eléctrico autorizado. Este contenido es educativo y nadie se hace responsable por daños, lesiones o accidentes.
Un detalle práctico chileno: el enchufe del proyecto original viene en formato europeo Schuko. En Chile usamos clavija distinta, así que este montaje tiene sentido sobre todo como ejercicio de electrónica, ingeniería inversa y aprendizaje de HomeKit. No lo instales de forma permanente en tu pared si la clavija no corresponde a la norma local.
Por qué cambiar el chip original
Los enchufes inteligentes económicos suelen depender de servidores en la nube, cuentas de fabricante, apps propietarias e infraestructura remota con recolección de datos que nadie audita. Esa es la trampa: el aparato es tuyo, pero el control no.
Existen varias revisiones de hardware de este producto. La que cubrimos trae internamente un módulo CB2S / BK7231N. El problema del BK7231 es que es una plataforma cerrada, difícil de reflashear y sin un ecosistema de desarrollo moderno y abierto. En vez de pelear contra esas limitaciones, lo reemplazamos entero por un ESP8685-WROOM-03 (ESP32-C3), que nos da:
- Soporte nativo de Apple HomeKit
- Actualizaciones OTA mediante LCM (Life Cycle Manager)
- Toolchain 100% abierto
- Comunidad ESP32 activa y enorme
- Integración directa con el chip de medición de energía BL0937
Una nota técnica que el tutorial original no profundiza: el BL0937 es el corazón de la medición. Es un chip que entrega pulsos cuya frecuencia es proporcional a la magnitud medida. Por un pin (CF) saca pulsos proporcionales a la potencia activa, y por otro (CF1) alterna entre corriente y voltaje según el estado del pin SEL. El firmware cuenta esos pulsos por unidad de tiempo y los convierte en watts, amperes y volts. Por eso al ESP32-C3 le bastan tres GPIO (CF, CF1, SEL) para leer toda la energía: no es un ADC analógico, es conteo de frecuencia.
Al reemplazar el firmware recuperas privacidad total, control local del dispositivo, propiedad real del firmware, operación offline, cero telemetría e independencia de soporte a largo plazo.
Materiales y herramientas
El componente clave es el módulo ESP8685-WROOM-03 (ESP32-C3) en su formato SMD, el mismo que se suelda sobre el PCB del enchufe. Es una pieza específica de montaje superficial: si recién estás partiendo con el ESP32-C3 y quieres practicar el chip antes, en Chile hay placas de desarrollo con ese mismo SoC para experimentar en protoboard, aunque para este montaje necesitas la variante SMD.
Para el trabajo de desoldado y soldado vas a necesitar:
- Cautín con control de temperatura (tipo TS100/101 o equivalente regulable)
- Trenza desoldante o malla de cobre para retirar estaño
- Flux líquido (esto es clave, no lo saltes)
- Alcohol isopropílico y cotonitos para limpiar
- Multímetro para chequeo de continuidad
- Espátulas plásticas (spudgers) y una herramienta metálica fina para abrir la carcasa

Abrir el enchufe
Herramientas: espátulas plásticas y una pala metálica delgada.
- Inserta una espátula plástica entre las dos mitades de la carcasa.
- Crea una pequeña separación.
- Desliza la espátula metálica.
- Haz palanca suave hacia una esquina.
- Libera cada uno de los cuatro clips.
- La carcasa se abre limpia.
Adentro vas a encontrar el bloque de pines de la clavija, el relé y el PCB verde con la electrónica de control y medición.

Mapeo de pines (verificado)
Antes de tocar nada, ten claro qué pin original va a cada GPIO del ESP8685. Este mapeo está verificado:
| Función | Pin original | GPIO ESP8685 |
|---|---|---|
| Relé | P8 | GPIO6 |
| Botón | P7 | GPIO7 |
| LED rojo | P6 | GPIO3 |
| LED azul | P10 | GPIO20 |
| CF (BL0937) | P26 | GPIO4 |
| CF1 (BL0937) | P24 | GPIO5 |
| SEL (BL0937) | P11 | GPIO21 |
Las asignaciones de GPIO para el BL0937 se definen en la configuración del firmware.

Retirar el módulo original
Antes de instalar el ESP8685-WROOM-03 nuevo, hay que sacar con cuidado el módulo original del PCB. Este paso es crítico: si dañas los pads, el proyecto se vuelve mucho más difícil o imposible.
Herramientas recomendadas: cautín digital con temperatura controlada, trenza desoldante, flux líquido (muy importante), alcohol isopropílico y cotonitos. Un cautín de temperatura estable y con buena potencia es lo que evita recalentar la placa al trabajar módulos de varios pines.
Paso 1: identifica el chip original. Según tu revisión vas a ver un CB2S o un BK7231N, ambos módulos WiFi de montaje superficial con pads de soldadura en el borde. Antes de retirarlo, saca fotos en alta resolución del PCB desde varios ángulos: te van a salvar si algo sale mal.
Paso 2: aplica flux generoso. Pon flux líquido a lo largo de cada borde de pad del módulo. El flux baja la temperatura de fusión, mejora la transferencia de calor, evita que se levanten los pads y hace que el estaño fluya bien. Nunca intentes desoldar sin flux.
Paso 3: retira el módulo. Pon el cautín a 350 a 380 grados C. Apoya la trenza desoldante sobre una fila de pads, presiona con el cautín caliente, deja que el estaño se absorba en la malla y repite en todos los lados. Cuando todas las uniones estén limpias, levanta el módulo con suavidad. No tires si todavía sientes resistencia: si queda una sola unión soldada, puedes arrancar un pad.
Paso 4: limpia los pads. Retira el estaño restante con la trenza, limpia el flux con alcohol isopropílico e inspecciona bajo aumento por si hay pads levantados. El resultado debe ser: alineación limpia, pads de cobre planos, sin zonas quemadas y sin puentes de estaño.
Preparar el ESP8685-WROOM-03 y borrar la flash
El autor del tutorial original armó un jig programador magnético impreso en 3D para no tener que soldar headers. Si no tienes impresora 3D, también puedes soldar unos cables a los pads de programación del módulo. La idea es lograr contacto estable con el módulo para flashearlo con esptool.
Primero borra la flash y anota la MAC:
esptool.py erase_flash
Ejemplo de salida:
Chip is ESP32-D0WD-V3
Erasing flash...
Chip erase completed successfully
MAC: 68:25:dd:f0:40:94
Guarda tu dirección MAC: la vas a necesitar al generar el QR.

Generar el código QR de HomeKit
El código QR es lo que después escaneas en la app Casa de Apple para emparejar el accesorio. Se genera con la herramienta del autor, pasando los datos de tu dispositivo:
./gen_qrcode 7 693-41-208 M4T8 cc8da2ddafe0 new/qrcode.png
Qué significa cada campo:
7= tipo de accesorio (Outlet o enchufe)693-41-208= código de setupM4T8= Setup IDcc8da2ddafe0= la MAC sin los dos puntos
Esto te genera una imagen de etiqueta. Puedes usar solo el QR o la etiqueta completa, imprimirla como sticker y pegarla en tu enchufe.

Instalar el Life Cycle Manager (LCM)
El LCM (Life Cycle Manager) es lo que permite instalar y actualizar firmware por aire (OTA), sin tener que volver a abrir el dispositivo nunca más. Es la pieza que convierte este enchufe en algo mantenible a largo plazo.
Ve a la carpeta donde dejaste los archivos y flashea:
python -m esptool --chip esp32c3 -b 460800 \
--before default_reset --after hard_reset write_flash \
--flash_mode dio --flash_size 4MB --flash_freq 80m \
0x0 build/bootloader/bootloader.bin \
0x8000 build/partition_table/partition-table.bin \
0xe000 build/ota_data_initial.bin \
0x20000 build/esp32-lifecycle-manager.bin
Instalar y soldar el nuevo chip
Con el módulo viejo fuera y los pads limpios, llegó el momento de instalar el nuevo cerebro: el ESP8685-WROOM-03. Esta es la parte más delicada de todo el upgrade, pero con paciencia y técnica es totalmente manejable, incluso si recién partes.
Paso 1: alinea y fija una esquina. Posiciona el ESP8685 sobre su footprint (un lado con 5 pads y el otro con 6). Alinea todos los bordes, funde un pad de esquina pre estañado y déjalo enfriar. Revisa la alineación por todos lados; si quedó torcido, recalienta esa esquina, ajusta y vuelve a fijar hasta que quede perfecto.
Paso 2: suelda la esquina opuesta. Cuando la alineación se ve correcta, suelda la esquina opuesta y vuelve a chequear. Con dos esquinas fijas, el módulo ya no se mueve.
Paso 3: drag soldering de los pads. Aplica flux generoso a lo largo de una fila de pines. Carga una pequeña gota de estaño en la punta y arrástrala lento sobre los pines, dejando que la tensión superficial lleve el estaño a su lugar. Repite en el otro lado. No te asustes si se forman puentes: se quitan fácil después.
Paso 4: elimina los puentes de estaño. Si quedan pines unidos, agrega flux, apoya la trenza desoldante, presiona suave con el cautín, deja que absorba el estaño y vuelve a inspeccionar. La meta: uniones limpias, sin grumos, sin puentes y sin pads levantados.
Paso 5: limpieza e inspección final. Limpia la placa con alcohol isopropílico y cotonitos. Inspecciona con cuidado: todos los pads conectados, ningún pin flotando, sin uniones frías, sin daño por calor y sin residuos. Dedícale tiempo: la inspección visual previene el 90% de las fallas.
Paso 6: chequeo de continuidad (recomendado). Con el multímetro en modo continuidad, verifica que no haya cortocircuitos entre pines vecinos, confirma las conexiones de tierra, comprueba que el pin del relé llega al GPIO correcto del ESP y valida la continuidad del riel de alimentación. Este paso te ahorra horas de debugging después.
Cargar el firmware HomeKit
Si quieres escribir tu propio código, los repositorios del autor (más abajo en Recursos) tienen todo el framework HomeKit para ESP32. Si no, puedes usar directamente el firmware ya compilado e instalarlo vía LCM.
La configuración del servidor HomeKit usa tu código de setup y tu Setup ID:
homekit_server_config_t config = {
.accessories = accessories,
.password = "693-41-208",
.setupId = "M4T8",
};
Para compilar el firmware se usa el contenedor oficial de ESP IDF v5.4, fijando el target al ESP32-C3:
docker run -it -v ~/ESP32-Power-Plug:/project -w /project espressif/idf:v5.4
idf.py set-target esp32C3
idf.py build
Esto produce el archivo main.bin.
Qué hace el firmware
El firmware expone un accesorio HomeKit tipo Outlet (enchufe) con características de energía extendidas:
- Relé y LED azul: el LED azul siempre sigue el estado del relé. El relé es la única fuente de verdad.
- LED rojo (estado WiFi o aprovisionamiento): encendido durante el arranque, apagado cuando el WiFi conecta, y encendido si falta la configuración WiFi o falla.
- Acciones del botón: una pulsación alterna el relé y notifica a HomeKit. Una pulsación larga (10 s) hace factory reset y reinicia vía LCM.
- Medición de energía (BL0937): una tarea dedicada muestrea continuamente el BL0937 y actualiza las características HomeKit de voltaje, corriente, potencia y energía (kWh).
- Protección de sobrecorriente (opcional): cuando se habilita en menuconfig, el relé corta si la corriente supera un umbral, con anti rebote para evitar falsos positivos, actualización inmediata del estado en HomeKit y enfriamiento opcional antes de rehabilitar.
Firmar el firmware
Abre una terminal nueva, ve al directorio del proyecto y firma el binario:
openssl sha384 -binary -out build/main.bin.sig build/main.bin
printf "%08x" "$(wc -c < build/main.bin)" | xxd -r -p >> build/main.bin.sig
O usa directamente el repositorio del autor con los archivos ya firmados.
Instalar vía LCM y emparejar con la app Casa
Con el LCM cargado, el dispositivo crea una red WiFi propia. El flujo es:
- Conéctate a la red
LCM-XXXXX. - El portal cautivo se abre solo.
- Ingresa las credenciales de tu WiFi de casa.
- Indica el origen del firmware (el repositorio del autor con la energía:
AchimPieters/ESP32-Power-Plug-with-Energy-Meter). - Habilita el GPIO3 (LED rojo en este caso) con nivel encendido y presiona Join.
La instalación arranca, el LED empieza a parpadear y cuando termina el dispositivo se reinicia.

Para emparejar con Apple Home: abre la app Casa, escanea el código QR del dispositivo, sigue las instrucciones, ponle nombre y asígnalo a una habitación. Listo.
Apple Home vs Eve: por qué Eve importa
La app Casa de Apple muestra a propósito un set mínimo de funciones. Sirve para prender y apagar, pero no entrega interfaz de actualización de firmware, ni métricas detalladas de energía, ni gráficos históricos, ni diagnóstico avanzado del accesorio.
Ahí entra la app Eve (gratis, sin cuenta). Con Eve obtienes visibilidad completa de las características HomeKit personalizadas, lecturas en vivo de voltaje, corriente, potencia y energía, gráficos históricos por hora, día, semana y mes, y la interfaz de actualización de firmware OTA vía LCM. Para actualizar, instalas Eve, seleccionas el enchufe, abres los detalles del accesorio, eliges Firmware Update y esperas a que termine el proceso OTA.

Resultado final
Al terminar tienes un enchufe inteligente que de verdad es tuyo: integración nativa con Apple HomeKit, actualizaciones OTA, cero dependencia de la nube, sin vendor lock in, sin telemetría ni spyware, firmware 100% abierto y vida útil de largo plazo. El dispositivo dejó de ser un producto de consumo desechable para convertirse en hardware personal y mantenible.
Variantes y mejoras
Algunas ideas para llevar este proyecto más allá de lo que cubre el original:
- Registro de consumo a planilla: como el firmware ya expone potencia y energía en HomeKit, puedes correr una automatización (con un Home Hub o con Home Assistant en un Raspberry Pi) que registre el kWh diario de tu refrigerador o tu PC y te arme un historial en CSV. Útil para estimar cuánto te cuesta cada equipo al mes con la tarifa eléctrica chilena.
- Alerta de sobreconsumo: aprovechando la protección de sobrecorriente del firmware, configura un umbral y dispara una notificación en tu iPhone cuando un equipo pasa cierto consumo. Sirve para pillar un calefactor que quedó prendido o una carga anómala.
- Práctica previa en protoboard: antes de jugarte con el módulo SMD soldado, arma la lógica de control y la lectura del BL0937 en una placa de desarrollo ESP32-C3 sobre protoboard. Validas el firmware con seguridad, sin tensión de red, y recién después haces el reflasheo definitivo.
Personalización para Chile
En Chile puedes conseguir las herramientas clave de soldadura SMD que pide este proyecto en MechatronicStore. Recuerda que el módulo ESP8685-WROOM-03 en formato SMD es la pieza específica del montaje; lo que sigue son los insumos de soldado y verificación que sí encuentras en stock local:
- Flux Pasta de soldadura NC-559 10cc (SKU E-006) por $8.990. Imprescindible para desoldar y soldar los pads sin levantarlos.
- Cautín 60W con regulador de temperatura (SKU E-209) por $8.990. El equivalente local al TS100/101 que recomienda el autor.
- Alcohol Isopropílico 300cc con spray (SKU A-088) por $3.290. Para limpiar el flux y dejar los pads impecables.
- Multímetro Multi Tester 830 (SKU E-304) por $2.990. Para el chequeo de continuidad antes de energizar.
Si necesitas más torque para trabajos largos, la Estación de Soldar ZD-99 también está disponible en tienda como alternativa al cautín de mano.
Recursos
- Tutorial original (inglés): ESP32 - Power Plug with Energy Meter por Achim Pieters, StudioPieters
- Firmware del proyecto (con medición de energía): AchimPieters/ESP32-Power Plug-with Energy-Meter
- Life Cycle Manager (OTA): AchimPieters/esp32-lifecycle manager
- Framework HomeKit para ESP32: AchimPieters/esp32-homekit
- Generador de QR HomeKit: AchimPieters/esp32-homekit qrcode
Versión chilena inspirada en el trabajo de Achim Pieters (StudioPieters), con herramientas en stock local en MechatronicStore.







