Objetivos
Material requerido.
Un ESP8266 01 | |
Un adaptador USB a FTDI | |
Cables Dupont Macho-Hembra |
Mas sobre WIFI y ESP8266
No cabe duda de que el módulo ESP8266 WIFI, es uno de los que más interés despiertan en nuestros amables lectores. No solo es barato y nos permite conectar nuestros Arduinos (Entre otros micro controladores) a la red WIFI, sino que además es razonablemente sencillo.
Buena parte de las consultas que recibimos en Prometec.net se refieren a este magnífico módulo, y por eso vamos a tratar de ampliar un poco la información que presentamos en tutoriales previos, cubriendo algunos temas que inicialmente no nos atrevimos, pero en vista del interés que el ESP8266 despierta, vamos a entrar en algunas cuestiones más técnicas, con las que esperamos no abusar de la paciencia de nuestros sufridos seguidores.
En sesiones anteriores vimos la forma de conectar el ESP8266 a nuestros Arduinos y también, ejemplos de cómo programar le modulo mediante comandos AT, para realizar toda una colección de procedimientos relacionados con la conexión a nuestras WIFIs.
Pero es importante que sepáis, que este módulo nos es simplemente un dispositivo WIFI, sino que es un completo SOC (Sistem On Chip) o lo que es lo mismo que incluye un procesador completo además del stack TCPIP y el interface WIFI, cuya potencia es algo inferior al de un Arduino UNO, pero que tiene la enorme virtud de estar incluido en un todo en uno, en este chip. [one-fourth] [/one-fourth][three-fourth last][margin value=»5″ /][fancy-ul style=»rounded-tick»] [three-fourth last][margin value=»5″ /][fancy-ul style=»rounded-tick»]
Por eso no debería sorprendernos el hecho de que podemos reprogramar el Firmware básico de este módulo, bien para corregir errores, añadir nuevas prestaciones, porque como iremos viendo hay bastantes modelos de ESP8266 y no solo el que estamos acostumbrados, e iremos hablando un poco de todo ello en futuras sesiones.
Pero para empezar conviene que veamos el procedimiento general de actualizar el firmware y las conexiones precisas porque nos va a servir para más de una cosa en el futuro.
Consideraciones previas a la actualización
Ya hemos comentado que hay varias razones por las que puede interesarnos reinstalar el firmware del módulo WIFI ESP8266.
Esto no quiere decir que debas flashear el Firmware porque no consigues comunicarte con el modulo las primeras veces que lo usas. Lo más probable es que no sea necesario y tengas un problema de cualquier otro tipo.Tened en cuenta que actualizar el firmware de un sistema electrónico es siempre una operación de riesgo, y es imprescindible que tengas claro lo que estáis haciendo y porque.
No quisiera ser el responsable de la muerte prematura de varias docenas de módulos ESP8266, por incluir aquí un tutorial de como instalar un nuevo firmware. Así que antes de empezar, vamos a hacer unas cuantas consideraciones previas:
Para efectuar la actualización del Firmware vamos a necesitar varias cosas, que tenemos que conseguir previamente. En primer lugar un programa para gestionar el envió del Firmware al módulo.
Yo voy a usar (Por diferentes razones) el aparentemente, programa oficial, llamado ESP8266_flasher que podéis descargar de aquí, Aunque hay más programadores que podéis usar como por ejemplo el XTCOM_UTIL (Pero que a mí no me sirve por el FTDI que uso usa el COM15 y este XTCOM solo acepta hasta el COM6).
También necesitaremos el binario del firmware que queremos volcar a nuestro ESP8266, La descarga de mas arriba incluye la version 0.9.2.2 pero podéis conseguir versiones mas actualizadas aquí. Y por último vamos a necesitar usar un adaptador FTDI a USB para conectar nuestro modulo al PC y lanzar la actualización. Empecemos con las conexiones
Conexión del ESP8266 al FTDI
Para programa el modulo tenemos que conectarlo a un PC desde el que volcarle el Firmware, y la manera más sencilla es usar un adaptador FTDI a USB, que podéis conseguir por muy poco dinero en la red. El que yo he usado no es este exactamente, pero tanto da, porque lo de menos es el modelo exacto. Lo que necesitamos es simplemente un modo de convertir USB a puerta serie que podamos inyectar en el ESP8266. Podéis utilizar cualquiera que tengáis disponible y adaptar los pines, porque el nombre será el mismo aunque la distribución de pines sea diferente. Para poder Flashear el módulo necesitáis hacer dos cosas:
Y con eso el módulo está listo. El resto consiste en conectar RXD y TXD cruzados entre el ESP8266 y el adaptador FTDI, y conectar GND y VCC, que recordad es de 3,3V Por eso, para reprogramar la memoria Flash del módulo, vamos a hacer las conexiones así: Y si simplemente queremos usarlo desde el PC, las conexiones son las mismas con excepción de que dejamos al aire la patilla GPIO0. Volveremos a conectarlo mas adelante. Como hay que conectar a GND y VCC mas de un cable, vais a necesitar una protoboard para hacer los empalmes, no se puede hacer tan bonito como veis arriba (La vida es dura)
Cuando conectéis el USB FTDI a vuestro PC os levantara una puerta serie. Necesitamos saber cuál es para indicárselo al programa de volcado. Para ello si estáis en Windows podéis hacer: INICIO\Equipo\Botón derecho\Administrar Y podréis ver en administrador de dispositivos / Puertos (COM y LPT) el número de puerto asignado, en mi caso COM15:
Probando el módulo ESP8266
Una de las cosas que más dolores de cabeza parece producir con este módulo WIFI, es acertar con la velocidad de comunicación adecuada. Con mucha frecuencia recibimos consultas acerca de que solo pueden ver basura cuando te conectas a él y nos preguntan que hacer.
Tenéis que entender que a priori no sabemos cuál es la velocidad a la que el modulo viene programado. Según el manual es de fábrica a 9.600 baud, pero me consta que esto varía bastante. Por ejemplo sé que algunos módulos vienen a 115.200 baud y alguno me he encontrado a 38.400.
Así que es mejor no fiarte y probar todas la posible velocidades antes de dar por supuesto nada y este montaje que os planteamos aquí es ideal para ir probando las velocidades de transmisión con otro viejo conocido nuestro: PUTTY.
Poned vuestra puerta COM e ir variando la velocidad, desde 115200, 57600, 38400, 19200,9600, 4800, 2400, 1200, e intentad la comunicación. Seguro de que con una lo lograréis y basta con que escribáis AT por ejemplo para que veáis que hay contacto:
Si lo que leéis es basurilla o chinitos variados, probad con la siguiente velocidad tranquilamente, (No vais a estropear el módulo así, tranquilos) Después podéis ir probando los comandos que consideréis, pero de esto modo tan sencillo podéis comprobar el módulo WIFI sin arrancar Arduino siquiera, solo necesitáis el adaptador FTDI a USB.
Podéis probar todos los comandos que vimos en las sesiones anteriores, pero recordad también que los cambios de firmware pueden afectar a la sintaxis de los comandos.
Actualizando el Firmware
Ya vimos antes que el flasher incluye el firmware 0.9.2.2, que podemos instalar en nuestros módulos o podemos haber descargado las nuevas versiones. En ambos caso disponemos de un fichero con extensión bin que podemos volcar a nuestro módulo ESP8266 En el momento actual la nueva versión es la 9.5.0 AT, pero de todos modos con el ESP8266_flasher viene incluido la versión 0.9.2 del firmware por si no encontráis otra, y con esto ya podemos pasar a ejecutar el Flasher.
Cuando arrancáis el programa os aparece esta pantalla, que deberéis rellenar con vuestra información. Con el botón BIN, elegís el firmware que queréis volcar (El fichero que habéis descargado)y en mi caso le indico que tengo el Adaptador en la puerta COM15. Pulsad el botón de Download y recibireis una serie de mensajes que indican que está volcando el firmware al módulo:
Si no hay errores mayores, cuando finalice, vuestro ESP8266 tendrá instalada la nueva versión de firmwareque le habéis volcado.
Si por la razón que sea, no os permite actualizar el firmware o si a pesar de que os lo permite vuestro ESP8266 sigue comportándose raro, hay una segunda dirección de seguridad para instalar el firm, en la dirección 0x40000080 en lugar de la 0x00000, pero no me preguntéis que significa esto.
Resumen de la sesión