Volviendo al ESP-01
MATERIAL REQUERIDO
Arduino WIFI
Si miramos un poco atrás desde el mundo Arduino, no hace tanto conseguir una conexión WIFI razonable era complicado sin vender un riñón. Cuando surgieron los primeros procesadores ESP8266 y en concreto los ESP-01 se nos hizo la luz y por fin pudimos conectar nuestros circuitos a internet de una forma sencilla y barata, lo que hizo que aparecieran cientos de aplicaciones.
Desde entonces, las cosas han mejorado bastante y hoy es fácil conseguir una conexión TCPIP por muy poco dinero para nuestros proyectos. Baste mencionar mis favoritos los NodeMCU en su distintas variantes que incluyen el chip ESP-12E, pero no podemos olvidar los hermanos mayores de este como el ESP32, y la pléyade de Arduinos oficiales con WIFI que temes a nuestra disposición
Mi favorito sigue siendo el NodeMCU V2, por tamaño y prestaciones y porque incluye múltiples pines a nuestra disposición para hacer las delicias de los Arduino maníacos. Pero quizás por éxito de este modelo hemos acabado relegando a su hermanito el ESP-01 al olvido, por menos potente y porque solo dispone de dos pines para el control exterior (Entre otras limitaciones)
Pero el ESP-01 también tiene algunas ventajillas, de las que me da la sensación que nos hemos olvidado injustamente y me parece que vale la pena recordarlas, porque hay algunas ocasiones en que un humilde ESP-01 puede ser la solución ideal (Cuando nos basta con un par de pines) y hay que destacar que sigue siendo el sistema más barato para correr Arduino o Python, o un server web sencillo, que no es poco.
Cuando reviso aquellos primeros tutos que publicamos en Prometec hace ya 4 años (¡Joder como pasa el tiempo!) me entra una pereza horrible de hacer aquellos montajes de un ESP-01 a base de un Arduino,y una protoboard y muchos cables para conectarlo todo. Y de repente me he dado cuenta de que nunca hemos hablado en esta, vuestra casa, de cómo utilizar un ESP-01 de una forma cómoda, y eso es un crimen, al que debemos poner remedio de inmediato.
Así que, queridos amigos, sin más dilación vamos a volver a hablar del ESP-01 y de algunas cosas que por una u otra razón han ido quedando en el tintero y que deben ser reveladas sin falta, y también hacer un par de comentarios de cómo usarlos, que facilitan mucho las cosas y si me concedéis un poco de vuestra paciencia, confío en que os resultaran de interés.
Programando el ESP-01
El mayor problema que tenía el ESP-01 tradicionalmente es que conectarlo era un asco. Sus patillas no servían para la protoboard lo que obligaba a múltiples cablecitos colgando y además es de 3,3V lo que suele repugnar a los de Arduino de toda la vida (Aunque no entiendo porque) y además tenía algunas manías para entrar en modo programación y luego ejecutar los programas.
He visto varias páginas por internet que son indescifrables al respecto, pero en realidad es una tontería. Para empezar vamos a olvidarnos de protoboard y demás puñetas. Usaremos un adaptador USB para el ESP-01 que no librara de muchos dolores de cabeza:
Como ves el ESP se inserta cómodamente en el zócalo del adaptador USB y con el podemos ejecutar los programas y volcar los nuevos programas desde nuestro entorno IDE de Arduino. De verdad, no hay que usar más cables ni historias. Es cómodo y limpio… Bueno, casi.
Para ejecutar el programa que está grabado basta con conectarlo y listo pero estos adaptadores baratos suelen tener un problema: No permite que grabemos los programas en el ESP-01 porque no viene preparados para el modo programación. Y es que para que el ESP-01 entre en el modo programación basta con conectar el pin GPIO0 a GND, pero en estos adaptadores la conexión no viene hecha, pero eso tiene fácil remedio.
Modificando el Adaptador USB
Si recordamos un poco las conexiones de uno de esto módulos ESP-01, sería algo como esto:
Para programar el ESP necesitamos poner el pin GPIO0 a GND y basta con que soldemos un cablecito por la parte de atrás, para que nuestro adaptador ya pueda poner el modo erase en marcha. No es complicado y con un poco de maña podéis hacer algo como esto:
Ya tenemos listo nuestro programador de ESP-01. Si te vas al entorno Arduino, tienes que instalar la compatibilidad con los Esp8266 (En caso de que aún no lo hayas hecho) y seleccionar un Esp8266 genérico y el puerto correspondiente y a programar.
Si le volcamos un sencillo Blink verás que va como una seda:
void setup() { pinMode(1, OUTPUT); } void loop() { digitalWrite(1, LOW); delay(500); digitalWrite(1, HIGH); delay(500); }
Vamos a poner en claro un par de puntos ahora, que he visto suele provocar muchos dolores de cabeza:
- Cuando acabas de volcar el programa con el adaptador modificado, el programa empieza inmediatamente a ejecutarse sin más (Lo que te permite comprobar que funciona correctamente)
- Pero si sacas el adaptador USB y lo vuelves a introducir no hará nada de nada. Esto es porque has arrancado con el programador puesto y por tanto sigue en modo listo para Flashear y no en modo ejecución de programa.
- Si dispones de un segundo adaptador sin modificar, basta con que cambies el chip ESP-01 del programador al normal y en cuanto lo insertes ejecutará el programa.
- Como no es cuestión de soldar y desoldar cada vez los pines, podemos usar un par de soluciones sencillas con un poco de ingenio y un soldador fino (SI. Ya sé que esto os horroriza pero prometo que es fácil) podemos pegar a nuestro adaptador USB un jumper o un interruptor entre los pines GPIO0 y GND que se conecte o desconecte a nuestro antojo
De ese modo podemos pasar de programado a soporte de conexión a USB con un simple cambio de Jumper (O mover el interruptor si es lo tuyo)
Claro que si prefieres las cosas fáciles, también nos lo venden hecho. Fíjate en el interruptor a la derecha abajo:
Es la idea que hemos comentado de pasar de ejecución a programación, aunque siempre tendréis que desconectar el USB y volver a conectar para cambiar de modo. No basta con mover el interruptor.
Servidor Web de coste mínimo
Mucha gente me dice que quiere montar un servidor web sin grandes complicaciones para algún proyecto generalmente domótico que pueda funcionar 24 h al día 365 días al año sin gastar mucha tela.
Si os preguntase cual es el coste mínimo para montar un servidor sencillo ¿Cuánto diríais?
Piensa en una cifra y ahora calcula el coste de un adaptador USB con un ESP-01 enchufado a un cargador de teléfono de esos que tienes perdidos por algún cajón de casa. Alrededor de 10€ sería suficiente para esta configuración:
Y para todos los que os pasáis la vida midiendo la temperatura de las habitaciones seguro que encontráis algún adaptador que incluya un ESP-01 y un sensor de temperatura que podéis conectar de una forma parecida.
Por ejemplo, si sueldas la pata de datos de un sensor DHT-11 o DHT-22 al pin GPIO2 del ESP-01 (Joer, vaya trabalenguas) y sueldas también con un poco de maña GND y Vcc, tienes una preciosa estación meteorológica local por el precio de una entrada de cine.
Vas mandando las medidas a un servidor Web como el de arriba y te conectas desde el teléfono por WIFI, Una estación meteorológica domestica barato, barato como diría Arguiñano.