Objetivos
Material requerido.
Arduino Uno o similar. | |
Un ESP8266 ESP-01 |
Empezando de nuevo con ESP8266
Después de unas cuantas sesiones con el módulo WIFI ESP8266, parece raro querer decir que vamos a volver a empezar… pero la verdad es que eso es exactamente lo que vamos a hacer en esta sesión.
Antes de que haya estampida hacia la salida, vale la pena comentar que hasta ahora hemos usado el ESP8266 como un pequeño modulo adicional que proporciona WIFI a nuestros muy queridos Arduinos. Hhemos visto como realizar las conexiones, vimos los comandos AT que nos permiten configurar las acciones del WIFI e hicimos varios ejemplos de programación desde el lado Arduino, tratando al módulo como completamente tonto.
Pero queridos amigos, el ESP8266 dispone internamente de un pequeño procesador, que aunque un poco inferior en capacidad y potencia a nuestros Arduinos, prácticamente es capaz de replicar casi cualquier cosa que estos puedan hacer.
Así que de repente para todos los que andáis haciendo proyectos con sensores más Arduinos que envían los datos a la WIFI mediante un ESP8266, es muy probable que podamos ahorrarnos el Arduino en el proceso.
¿Cómo dice? Ya, pero para eso hay que aprender a programar de nuevo el dichoso módulo en un lío de nuevo lenguaje y comandos que requiere un montón de tiempo y de dolores de cabeza ¿Verdad?
Pues no. Y aquí esta lo interesante: Un grupo de benefactores de la humanidad han desarrollado un pluggin para el IDE Arduino, de modo que:
Por eso os decía que vamos a volver a empezar con este módulo porque tendremos que ver, dependiendo del módulo que tengas que pines tenemos disponibles y veremos que módulos son los que tenemos que comprar para obtener el máximo de ellos, especialmente en proyectos donde haya varios sensores emitiendo datos WIFI.
Y lo primero que vamos a hacer es ver cómo podemos instalar el pluggin ESP8266 para nuestro Arduino IDE.
Instalando el pluggin ESP8266 en Arduino IDE
Hay dos maneras básicas de instalar el pluggin ESP8266. La primera, para cobardes, consiste en descargar un IDE Arduino ya configurado y que podemos instalar en un directorio distinto para que no nos lie nuestro entorno principal y de ese modo convivir con dos versiones hasta que lo tengamos claro.
La segunda, para corazones intrépidos, consiste en descargar el pluggin desde internet a nuestro IDE principal, como corresponde a hombres de pelo en pecho y que sea lo que Dios quiera.
Vamos a empezar por el primer método y después veremos cómo hacemos para montar el segundo.
Tengo que decir que empecé por este método, porque en general me costó un montón encontrar una definición clara de cómo instalar el pluggin directamente en Internet. Pero descargar un IDE configurado es simplemente cuestión de rebuscar un sitio razonable para descargarlo, a mí me ha ido bien con esta página de GitHub: https://github.com/esp8266/Arduino/releases
Incluye versiones del IDE 1.6.1 para Windows, Mac y Linux. Os descargarais la que más os guste. La descomprimís en un directorio de vuestra elección y ya podéis lanzar sin más el ejecutable de Arduino, que puede convivir con vuestra instalacion principal sin interferencias. Veréis que ya podéis seleccionar una placa Genérica ESP8266 board.
Y seleccionar ahora el puerto COM que corresponda a vuestro adaptador FTDI:
Y ya estáis listos para programar el ESP8266.
Bien, esta segunda opción cuando queráis tener todo integrado, tampoco es especialmente difícil, pero requiere que tengáis la versión 1.6.4 del entorno de desarrollo.
Si no es la versión que tenéis, descargarla de Arduino.cc porque si no, no va a funcionar. El motivo es que la nueva versión de Arduino, permite, precisamente, crear definiciones de nuevas placas e incorporarlas al entorne bajo ciertas condiciones, y el pluggin que vamos a probar es uno de los que cumplen esas condiciones.
Para instalar el pluggin vamos a tener que descargarlo de internet, lo que le va a llevar un ratito (Son como 110 Mb). Abrid vuestro IDE de Arduino y pinchar en \Archivo\preferencias, os aparecerá algo así:
Fijaros en la parte inferior que pone Additional Boards Manager URLs, y escribid ahí:
http://arduino.esp8266.com/stable/package_esp8266com_index.json
Dadle a OK y volvemos a \Herramientas\placa\Board Manager
Os saldrá algo como esto y tenéis que buscar la línea que dice ESP8266 Comunity version:
Dadle al botón Install y veréis una barra de progreso a medida que vaya descargando lo necesario. Si volvéis ahora a seleccionar las placas con \Herramientas\Placas veréis que ya podéis seleccionar las correspondientes al Genérica ESP8266.
Como la comunicación con el modulo lo vamos a hacer por la puerta serie, veréis que podéis seleccionar la velocidad en el mismo menú. Preferiblemente a 115.200 y la puerta serie correspondiente. Y con esto ya estamos en condiciones programar nuestro módulo WIFI directamente.
Programando el ESP8266 directamente
Ya vimos en la sesión previa como debíamos hacer la conexión entre el adaptador FTDI y nuestro módulo WIFI, pero vamos a repetir aquí el diagrama:
Es importante insistir en que para programar el modulo (Y para actualizar el firmware) necesitáis colocar el modulo en estado de programación y eso se consigue poniendo a GND la patilla GPIO0.
¿Y qué primer programa podríamos volcar?, Veamos…. Ya esta: EL blinking LED
Vamos a programarlo en la patilla GPIO2, que es la que nos quedaba libre:
void setup() { pinMode(2, OUTPUT); } void loop() { digitalWrite(2, HIGH); delay(1000); digitalWrite(2, LOW); delay(1000); }
¿Qué os parece? Totalmente Arduino
Si habéis seleccionado correctamente en el IDE la placa, el cargador y el COM, podeis volcar directamente el programa a vuestro ESP8266, poneros cómodos que le va a llevar un ratito.
Veréis unos puntitos avanzando en la parte inferior del IDE y si acabó sin errores el tema está listo.
Probando el Blinking LED
Hemos programado la pata GPIO2 para controlar el blinking del LED, pero para probarlo necesitamos montar un circuito de ejemplo, porque aparentemente el ESP8266 no tiene ningún LED conectado a sus pines controlables
Por eso vamos a necesitar este montaje:
Si preferís podeis usar el mismo montaje con el adaptador FTDI, pero recordad que tenéis que soltar el cable que une GPIO0 a GND para salir del modo de programación y poder ejecutar el programa interno, y además apagar y encender.
Aqui os dejo un minivideo con el resultado:
Resumen de la sesión