Un GPIO del ESP32 entrega una señal de 3,3 V, mientras que muchos módulos de relé habituales están diseñados alrededor de una alimentación de 5 V. Esa diferencia puede dejar el relé activado a medias, impedir que se apague con fiabilidad o provocar clics intermitentes. No se resuelve mirando solo la tensión de la bobina: también hay que comprobar cómo interpreta el módulo la señal de entrada.
La guía publicada en DEV Community, originalmente en iot.gripe, propone revisar tensión de bobina, compatibilidad lógica, polaridad de disparo, aislamiento y capacidad de los contactos antes de comprar. Random Nerd Tutorials muestra que algunos módulos sí aceptan el nivel del ESP32: en el que describe, la entrada dispara por debajo de unos 2 V. La diferencia entre ambos casos explica por qué una placa puede controlar un módulo sin problemas y fallar con otro que, a primera vista, parece equivalente.
La bobina y la entrada son dos requisitos distintos
Un relé mecánico utiliza una corriente pequeña para accionar un electroimán, que mueve contactos capaces de abrir o cerrar otro circuito. El GPIO no debe alimentar directamente la bobina: el módulo incorpora un transistor para aportar esa corriente y un diodo para proteger el circuito cuando la bobina se desactiva. También puede incluir un optoacoplador, un indicador LED y bornes COM, NO y NC.
Conviene separar dos preguntas que a menudo quedan mezcladas en las fichas de producto. La primera es qué tensión necesita la bobina para funcionar: la guía de iot.gripe señala que 5 V es lo más común, aunque hay módulos con bobina de 3,3 V. La segunda es qué nivel debe recibir la entrada IN para activar o desactivar el circuito de control. Que la bobina sea de 5 V no significa por sí solo que el GPIO de 3,3 V sea incompatible; y que un anuncio diga «compatible con ESP32» tampoco aclara necesariamente cómo está resuelta esa entrada.
La experiencia descrita por Random Nerd Tutorials es un ejemplo concreto: la entrada de su módulo se activa cuando baja de aproximadamente 2 V, por lo que puede responder a una señal del ESP32. En cambio, la guía de iot.gripe advierte de módulos de 5 V con optoacoplador y disparo activo en bajo en los que un HIGH de 3,3 V puede no bastar para apagar por completo el optoacoplador. El relé puede quedarse pegado, hacer clic de manera intermitente o dejar su LED encendido débilmente.
Qué revisar antes de elegir el módulo
La primera comprobación es que el fabricante indique compatibilidad de la entrada con lógica de 3,3 V. Si la ficha no lo deja claro, no hay que deducirlo únicamente de la tensión de alimentación: prueba el módulo con el ESP32 antes de conectarlo a una carga. Otra opción es escoger un módulo con bobina de 3,3 V, aunque eso tampoco sustituye la revisión de su entrada de control.
Después, identifica si el disparo es activo en bajo o en alto. En el primer caso, IN activa el relé cuando baja a LOW; en el segundo, lo activa al recibir HIGH. Muchos módulos económicos son activos en bajo y algunos permiten seleccionar la lógica mediante un puente. La polaridad afecta tanto al cableado lógico como al programa: si se invierte, el comando que el desarrollador considera «encender» puede apagar el relé, y viceversa.
Un puente JD-VCC puede permitir separar la alimentación de la bobina de la parte de control. La guía de iot.gripe propone retirar el puente y alimentar la parte del optoacoplador con 3,3 V y la bobina por separado con 5 V. Random Nerd Tutorials explica que, al retirar el puente de su módulo, hace falta una fuente independiente para el electroimán y que el optoacoplador puede aislar físicamente ambos circuitos. Esa disposición depende del diseño concreto del módulo: hay que seguir su esquema y no asumir que la presencia del puente garantiza aislamiento en cualquier configuración.
También hay que escoger el tipo de contacto según el comportamiento deseado. COM es el terminal común; NO (normalmente abierto) mantiene el circuito abierto hasta activar el relé, mientras NC (normalmente cerrado) lo mantiene conectado hasta que se activa. Para una lámpara que solo debe encenderse cuando recibe una orden, Random Nerd Tutorials utiliza NO. Es una decisión sobre el estado eléctrico de la carga, distinta de la lógica HIGH o LOW que activa la entrada del módulo.
Por último, comprueba el número de canales y la capacidad de los contactos. Un módulo multicanal controla varias salidas, pero cada canal añade una entrada y una carga que alimentar. La guía de iot.gripe menciona como valor frecuente una especificación de 10 A a 250 V AC y recomienda dejar margen respecto a la carga; no presenta ese valor como adecuado para cualquier aparato. Para cargas grandes, como estufas, calentadores o motores, aconseja no acercarse al límite y recurrir a contactores adecuados y a un electricista.
Alimentación, aislamiento y seguridad
En una placa alimentada por USB, el pin de 5 V suele poder alimentar uno o dos relés, según la guía de iot.gripe. Para varios relés, recomienda una fuente aparte con tierra común. Random Nerd Tutorials también distingue la alimentación de control de JD-VCC, que alimenta el electroimán. La decisión entre una sola alimentación y una fuente separada afecta al montaje y al aislamiento; no conviene elegirla solo por comodidad si el módulo se va a conectar a la red eléctrica.
Un optoacoplador añade separación entre la señal del microcontrolador y el circuito del relé, pero la disposición de las alimentaciones importa: Random Nerd Tutorials indica que, con el puente puesto, VCC y JD-VCC quedan unidos y el electroimán se alimenta directamente desde el pin de alimentación de la placa; en esa configuración, los circuitos no están físicamente aislados entre sí. Retirar el puente y usar una alimentación independiente para la bobina permite el aislamiento que ofrece el optoacoplador, de acuerdo con su explicación.
La prueba inicial debe hacerse con el módulo desconectado de la red. La recomendación de iot.gripe es verificar el encendido y el apagado mediante el LED y el clic del relé antes de conectar una carga. BlueGrays también propone usar primero un LED en lugar de una lámpara. La red eléctrica supone un riesgo de descarga o incendio: si no se tiene experiencia con instalaciones eléctricas, la guía de iot.gripe aconseja dejar esa conexión a un electricista. Random Nerd Tutorials pide mantener todo desconectado de la red mientras se programa o se cablea y colocar el montaje final en una caja que impida dejar terminales de corriente alterna expuestos.
El arranque también forma parte del diseño
Aunque la lógica funcione durante la ejecución normal, el relé puede activarse brevemente al arrancar. La causa señalada por iot.gripe es que el pin puede encontrarse en un estado indefinido hasta que el programa lo configura. Por eso recomienda establecer cuanto antes el estado apagado en setup() y evitar pines de arranque; en el ESP32-C3 cita GPIO 2, 8 y 9 como pines que conviene evitar porque su estado durante el arranque puede activar el relé por un instante.
El código debe representar explícitamente la polaridad del módulo, en vez de repartir inversiones entre varias partes del programa. La guía de iot.gripe muestra una función que convierte el estado lógico deseado en HIGH o LOW según una opción de activo en bajo. BlueGrays emplea el mismo principio en su ejemplo para el GPIO 26 y fija el estado apagado al configurar la salida. Es una pequeña decisión de diseño con un efecto práctico: deja clara la relación entre la orden de la aplicación y el nivel eléctrico enviado al pin.
El pin asignado también merece revisión. Random Nerd Tutorials conecta su ejemplo a GPIO 26 y aclara que puede usarse otro GPIO adecuado; BlueGrays propone igualmente GPIO26 como valor por defecto. No son razones para copiar ese número sin comprobar la placa: la guía de iot.gripe pide evitar los pines de arranque en el ESP32-C3, y el cableado debe corresponder al modelo concreto que se está usando.
Cuándo conviene otra tecnología
Para encender y apagar una luz unas pocas veces al día, la guía de iot.gripe considera que el relé mecánico es la opción más sencilla y fiable. Tiene contactos físicos y hace clic; su vida útil está limitada por esos contactos. Un relé de estado sólido (SSR) no tiene piezas móviles y funciona en silencio, pero puede dejar pasar una pequeña corriente cuando está apagado. En algunas bombillas LED, esa fuga basta para producir un brillo tenue o parpadeos.
Ni el SSR ni el relé mecánico sirven, en general, para regular la intensidad según la tabla de esa guía. Para atenuar una carga, plantea un TRIAC con el circuito adecuado; también advierte que puede haber corriente de fuga cuando está apagado. La elección, por tanto, depende del trabajo concreto: conmutaciones frecuentes y silenciosas apuntan al SSR; una luz con encendidos ocasionales, al relé mecánico; regulación, al TRIAC con su circuito apropiado.
El criterio final no es comprar el módulo con más canales ni el que anuncie una bobina de 5 V. Es confirmar que la entrada reconoce los 3,3 V del ESP32, decidir qué alimentación y aislamiento exige el montaje, fijar un estado seguro durante el arranque y comprobar la conmutación sin carga de red. Si el fabricante no especifica la compatibilidad lógica, esa comprobación debe ocurrir antes de conectar la lámpara.
Fuentes: DEV Community, Random Nerd Tutorials, BlueGrays