93. ESP8266 todo lo que necesitas saber del módulo WiFi para Arduino - a podcast by Luis del Valle Hernández

from 2016-09-20T04:03:05

:: ::

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ún tiempo cayó en mis manos un módulo 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ítulo del podcast.

Gracias a Germán Martín, 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ños ha conseguido crear diferentes módulos destinados a diferentes fines, lo mejor está todavía por llegar. Comenzaremos hablando de sus orígenes y sus posibles usos. Luego veremos detalladamente sus especificaciones técnicas. Por último analizaremos los diferentes módulos que podemos encontrar en el mercado y los diferentes métodos para programar el ESP8266.

Qué es el ESP8266

Cuando salió el Arduino MKR1000, afirmé que revolucionaría 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ón civil. Pero lo que está ocurriendo con el ESP8266, puede reventar las nuevas tendencias de muchos sectores. Se trata de un chip integrado con conexión WiFi y compatible con el protocolo TCP/IP. El objetivo principal es dar acceso a cualquier microcontrolador a una red.

En este artículo haré 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ó 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ódulos con el chip ESP por 3€, el Arduino MKR1000 sale por unos 40€ con gastos de envío.

La diferencia es abismal aunque tiene su sentido. La versión más básica del ESP es la 01 y dista mucho de la facilidad de uso que tiene el Arduino MKR1000, aunque el objetivo de este artículo 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ás de este chip. Puedes encontrar mucha información 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ón básica el módulo ESP-01 de la mano de AI-Thinker. Ese mismo mes comenzó la era de reinado del ESP. Todos aquellos que pudieron hacerse con uno quedaron fascinados por su bajo precio y las posibilidades que tenía. En aquella época el gran problema era la documentación, estaba toda en Chino.

Poco a poco, la gran comunidad que hay detrás, comenzó a traducir la documentación y crear firmwares pare el ESP8266. Un firmware no es más que el software de bajo nivel, la lógica que controla los circuitos electrónicos. Todo empezó a crecer y las aplicaciones se multiplicaron. En la actualidad podemos encontrar multitud de módulos que incorporan este microcontrolador.

A mediados de este año (2016), la empresa anunció una nueva versión, el ESP8285. Parecía 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ódulo externo para almacenar los programas. Esto va a permitir crear dispositivos del IoT, o de otro tipo, del tamaño 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ódulos 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á de si lo tenemos como chip o como módulo. Dentro de la gran cantidad de usos caben destacar los siguientes:

Electrodomésticos conectados.
Automatización del hogar.
Casas inteligente. ITEAD es puntera en este sector.
Automatización de la industria.
Monitor de bebés.
Cámaras 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ón donde se requiera conexión a una red o a Internet.

Especificaciones del chip ESP8266

No me cansaré de repetir que lo primero que debemos hacer cuando adquirimos un nuevo componente es mirar la hoja de especificaciones técnicas. La empresa Espressif nos facilita dicha hoja en Inglés. A continuación haré un resumen de lo más importante.

Hardware

Utiliza una CPU Tensilica L106 32-bit
Voltaje de operación entre 3V y 3,6V
Corriente de operación 80 mA
Temperatura de operación -40ºC y 125ºC
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ón está todavía en desarrollo.
Puertos GPIO (de propósito general)

Tiene 17 puertos GPIO pero solo se pueden usar 9 o 10. El GPIO16 es especial ya que está conectado al RTC (Real Time Clock).
Pueden ser configurados con resistencia Pull-up o Pull-down.
Soporta los principales buses de comunicación (SPI, I2C, UART).
Características eléctricas

Voltaje de trabajo entre 3V y 3,6V.
Según noticias del propio CEO de Espressif, admite tensiones de entrada de 5V e los puertos GPIO.
Consumos

Dependerá de diferentes factores como el modo en el que esté trabajando el ESP8266, de los protocolos que estemos utilizando, de la calidad de la señal WiFi y sobre todo de si enviamos o recibimos información a través de la WiFi. Oscilan entre los 0,5 μA (microamperios) cuando el dispositivo está apagado y los 170 mA cuando transmitimos a tope de señal.

Modos de operación

Debido a los sectores a los que va enfocado, wereables, dispositivos del IoT y móviles, el ESP8266 requiere de una gestión de energía 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á activo para mantener la sincronización. Se queda en modo alerta de los posibles eventos que le hagan despertar. Mantiene en memoria los datos de conexión y así no hace falta volver a establecer la conexión con la WiFi. Consume entre 0,6 mA y 1 mA.
Deep sleep o modo en sueño profundo: el RTC está 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én almacenados se pierden. Consume alrededor de 20 μA.
Módulos 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ún módulo ESP como el NodeMCU.

Further episodes of 301 Moved Permanently

Further podcasts by Luis del Valle Hernández

Website of Luis del Valle Hernández