Puede que insista demasiado con los módulos ESP8266/ESP32… supongo que soy culpable. Aunque parezca mentira, estos microcontroladores son un excelente punto de partida para cualquiera que quiera iniciarse en el DIY, el código Arduino y otros lenguajes compatibles. Existen muchas opciones para programar un ESP32, pero hoy volvemos a el canal de «atomic14» para aprender lo mínimo y necesario en materia de componentes.
Imagino que alguien pensará: «Lisandro, esto no tiene sentido». ¿Por qué seguir ese camino cuando un módulo ESP32 con su propio regulador de voltaje, botones de reset, pines soldados y puerto micro USB incluido vale menos de 10 euros en Amazon? La respuesta no es otra que «aprendizaje». Sí, un módulo listo para usar te llevará a buen puerto, pero un día deberás extraerlo de otro producto, o tu adaptador USB-a-serial fallará. Conocer el pinout y las funciones internas de cualquier módulo ESP / Arduino / ATtiny / STM32 siempre es una buena idea, y el último vídeo de atomic14 apunta en esa dirección.
Programando un módulo ESP32 con componentes mínimos
Lo primero que debes saber es que el tutorial solo funciona con los modelos ESP32-S2 y ESP32-S3. La razón es sencilla: son los únicos de la familia ESP con soporte USB-OTG (todos los demás requieren un adaptador). Tampoco olvides que el ESP32 trabaja a 3.3V, y conectarlo a 5V lo iluminará como un árbol de Navidad… antes de destruirlo. Entonces, ¿qué necesitamos exactamente?
- Una fuente de 3.3v(batería, adaptador, tú eliges), conectada al pin correspondiente (3v3 = +) y a uno de los GND (-)
- El pin Enable, conectado a los 3.3v para colocarlo en «high»
- IO19 es «Data -» del puerto USB, mientras que IO20 es «Data +»
- IO0 debe estar conectado a GND la primera vez que programamos al ESP32. No sería mala idea usar un pulsador aquí.
- El LED en I02 y su resistencia son opcionales, pero muy útiles para comprobar que todo funciona.
- Y por supuesto, cualquier driver relevante para Windows(si lo usas), acompañado por un IDE compatible(Arduino IDE, PlatformIO, etc.)
Para finalizar, me gustaría añadir un detalle apenas mencionado en el vídeo de atomic14: muchos usuarios reportan problemas de conectividad con el error «A fatal error occurred: Failed to connect to ESP32». El youtuber VoltLog sugiere que esto se debe a un error provocado por el salto de la señal Enable, que modifica la condición de IO0. La solución es añadir un capacitor de 1 microfaradio entre el pin Enable y GND. Esto vuelve un poco más lento a Enable y evita que el error se dispare.