Cuando estamos inmersos en nuestro mundo, muchas veces no nos damos cuenta de lo que sucede a nuestro alrededor. Esto es precisamente lo que me ha pasado con el ESP8266. Siempre he estado rodeado de Arduino y soy un fiel defensor de esta placa. Hace ya alg\xfan tiempo cay\xf3 en mis manos un m\xf3dulo ESP-01. Estuve trasteando con el varios meses y jugando con los comandos AT. Pero realmente cuando he visto el potencial que tiene, ha sido preparando este cap\xedtulo del podcast.
Gracias a Germ\xe1n Mart\xedn, un fiel seguidor de Programarafacil, he podido descubrir el abanico de posibilidades que nos brinda. Hoy vamos a hablar de todo esto. Analizaremos la actualidad de este microcontrolador y pondremos todas las cartas sobre la mesa. Si en apenas dos a\xf1os ha conseguido crear diferentes m\xf3dulos destinados a diferentes fines, lo mejor est\xe1 todav\xeda por llegar. Comenzaremos hablando de sus or\xedgenes y sus posibles usos. Luego veremos detalladamente sus especificaciones t\xe9cnicas. Por \xfaltimo analizaremos los diferentes m\xf3dulos que podemos encontrar en el mercado y los diferentes m\xe9todos para programar el ESP8266.
Qu\xe9 es el ESP8266
Cuando sali\xf3 el Arduino MKR1000, afirm\xe9 que revolucionar\xeda el mundo de los objetos conectados, sobre todo por la facilidad de uso que caracteriza a estas placas. Acercaba de una manera sencilla el IoT a la poblaci\xf3n civil. Pero lo que est\xe1 ocurriendo con el ESP8266, puede reventar las nuevas tendencias de muchos sectores. Se trata de un chip integrado con conexi\xf3n WiFi y compatible con el protocolo TCP/IP. El objetivo principal es dar acceso a cualquier microcontrolador a una red.
En este art\xedculo har\xe9 referencia en varias ocasiones a Arduino y es que, sin duda alguna, es la competencia del Shield WiFi para esta placa. Pero no solo eso, Atmel, el fabricante que provee de microcontroladores a Arduino, sac\xf3 al mercado el ATSAMW25, competencia directa del ESP8266. Este microcontrolador es el que incorpora el Arduino MKR1000.
La gran diferencia entre el ESP8266 y el ATSAMW25 es el precio. Mientras que podemos encontrar m\xf3dulos con el chip ESP por 3\u20ac, el Arduino MKR1000 sale por unos 40\u20ac con gastos de env\xedo.
La diferencia es abismal aunque tiene su sentido. La versi\xf3n m\xe1s b\xe1sica del ESP es la 01 y dista mucho de la facilidad de uso que tiene el Arduino MKR1000, aunque el objetivo de este art\xedculo no es hacer una comparativa entre ellos.
La gran ventaja del ESP8266 es su bajo consumo. Es el producto ideal para wereables y dispositivos del IoT.
Un poco de historia
No voy a profundizar en la historia detr\xe1s de este chip. Puedes encontrar mucha informaci\xf3n en la red. La empresa que lo creo y lo fabrica es Espressif, una empresa China situada en Shangai.
Aunque parece que lleva con nosotros mucho tiempo, lo cierto es que vio la luz en agosto del 2014, en su versi\xf3n b\xe1sica el m\xf3dulo ESP-01 de la mano de AI-Thinker. Ese mismo mes comenz\xf3 la era de reinado del ESP. Todos aquellos que pudieron hacerse con uno quedaron fascinados por su bajo precio y las posibilidades que ten\xeda. En aquella \xe9poca el gran problema era la documentaci\xf3n, estaba toda en Chino.
Poco a poco, la gran comunidad que hay detr\xe1s, comenz\xf3 a traducir la documentaci\xf3n y crear firmwares pare el ESP8266. Un firmware no es m\xe1s que el software de bajo nivel, la l\xf3gica que controla los circuitos electr\xf3nicos. Todo empez\xf3 a crecer y las aplicaciones se multiplicaron. En la actualidad podemos encontrar multitud de m\xf3dulos que incorporan este microcontrolador.
A mediados de este a\xf1o (2016), la empresa anunci\xf3 una nueva versi\xf3n, el ESP8285. Parec\xeda un clon de su predecesor. La gran diferencia es que incorpora una memoria Flash de 1MB integrada dentro del propio chip. El ESP8266 no dispone de esta memoria y necesita de un m\xf3dulo externo para almacenar los programas. Esto va a permitir crear dispositivos del IoT, o de otro tipo, del tama\xf1o de una tecla de un teclado, todo un reto. Todo gracias a la conectividad y a la memoria Flash que incorpora.
Posibles usos del ESP8266
En este punto debemos de distinguir entre los m\xf3dulos y los microcontroladores. El ESP8266 y el ESP8285 son microcontroladores. Podemos trabajar con ellos sueltos o podemos comprarlo integrado dentro de un PCB (Printed Circuit Board o Circuito Impreso).
Ocurre lo mismo que con Arduino. Tenemos la posibilidad de comprar un microcontrolador Atmel o comprar la placa de Arduino donde ya viene integrado.
Dicho todo esto, el uso que le demos depender\xe1 de si lo tenemos como chip o como m\xf3dulo. Dentro de la gran cantidad de usos caben destacar los siguientes:
Electrodom\xe9sticos conectados.
Automatizaci\xf3n del hogar.
Casas inteligente. ITEAD es puntera en este sector.
Automatizaci\xf3n de la industria.
Monitor de beb\xe9s.
C\xe1maras IP.
Redes de sensores.
Wereables.
IoT (Internet of Things o Internet de las Cosas)
IIoT (Industrial Internet of Things o Internet de las Cosas para el sector Industrial)
Y cualquier aplicaci\xf3n donde se requiera conexi\xf3n a una red o a Internet.
Especificaciones del chip ESP8266
No me cansar\xe9 de repetir que lo primero que debemos hacer cuando adquirimos un nuevo componente es mirar la hoja de especificaciones t\xe9cnicas. La empresa Espressif nos facilita dicha hoja en Ingl\xe9s. A continuaci\xf3n har\xe9 un resumen de lo m\xe1s importante.
Hardware
Utiliza una CPU Tensilica L106 32-bit
Voltaje de operaci\xf3n entre 3V y 3,6V
Corriente de operaci\xf3n 80 mA
Temperatura de operaci\xf3n -40\xbaC y 125\xbaC
Conectividad
Soporta IPv4 y los protocolos TCP/UDP/HTTP/FTP
No soporta HTTPS en un principio. Si que lo hace mediante software tanto en cliente como servidor TLS1.2. La primera implementaci\xf3n est\xe1 todav\xeda en desarrollo.
Puertos GPIO (de prop\xf3sito general)
Tiene 17 puertos GPIO pero solo se pueden usar 9 o 10. El GPIO16 es especial ya que est\xe1 conectado al RTC (Real Time Clock).
Pueden ser configurados con resistencia Pull-up o Pull-down.
Soporta los principales buses de comunicaci\xf3n (SPI, I2C, UART).
Caracter\xedsticas el\xe9ctricas
Voltaje de trabajo entre 3V y 3,6V.
Seg\xfan noticias del propio CEO de Espressif, admite tensiones de entrada de 5V e los puertos GPIO.
Consumos
Depender\xe1 de diferentes factores como el modo en el que est\xe9 trabajando el ESP8266, de los protocolos que estemos utilizando, de la calidad de la se\xf1al WiFi y sobre todo de si enviamos o recibimos informaci\xf3n a trav\xe9s de la WiFi. Oscilan entre los 0,5 \u03bcA (microamperios) cuando el dispositivo est\xe1 apagado y los 170 mA cuando transmitimos a tope de se\xf1al.
Modos de operaci\xf3n
Debido a los sectores a los que va enfocado, wereables, dispositivos del IoT y m\xf3viles, el ESP8266 requiere de una gesti\xf3n de energ\xeda eficaz. Dispone de una arquitectura de bajo consumo que trabaja en 3 modos.
Active mode o modo activo: a pleno rendimiento.
Sleep mode o modo dormido: solo el RTC (Real Time Clock) est\xe1 activo para mantener la sincronizaci\xf3n. Se queda en modo alerta de los posibles eventos que le hagan despertar. Mantiene en memoria los datos de conexi\xf3n y as\xed no hace falta volver a establecer la conexi\xf3n con la WiFi. Consume entre 0,6 mA y 1 mA.
Deep sleep o modo en sue\xf1o profundo: el RTC est\xe1 encendido pero no operativo. Debe pasar por el modo dormido antes de despertar. Hay que llevar especial cuidado con los datos ya que en este estado es como si estuviera apagado y todos los datos que no est\xe9n almacenados se pierden. Consume alrededor de 20 \u03bcA.
M\xf3dulos ESP-XX
Al igual que con Arduino, donde trabajamos con la placa o circuito integrado, con el ESP8266 ocurre exactamente lo mismo. El fabricante AI-Thinker proporciona la serie ESP con diferentes modelos para diferentes usos. A parte han ido surgiendo diferentes placas que incorporan alg\xfan m\xf3dulo ESP como el NodeMCU.