Este microcontrolador se puede reprogramar y con ello han salido herramientas para hacerlo conservando la funcionalidad WiFi. Entre estas herramientas se encuentra un paquete para el IDE Arduino, que permite programar el microcontrolador como si se tratase de un Arduino con escudo Wifi.
La pega es que se ha de programar de manera no-bloqueante si no deseamos interferir con el funcionamiento de la WiFi. Para ello se ha creado la instrucción "yield()" que permite al microcontrolador ejecutar las tareas pendintes que tenga en 2o plano. Además, el toolkit aprovecha cualquier "delay()" para ejecutar esas tareas.
Existen muchísimas variaciones de este microcontrolador de Espressif, desde el minúsculo ESP05, el pequeño pero versátil ESP01 hasta los mas completos, que suelen estar basados en el ESP12F, como es NodeMCU.
Tabla de características:
ESP8266 | |
---|---|
Procesador | Tensilica LX106 32 bit 80MHz (hasta 160MHz) |
RAM | 80KBytes (40KBytes disponibles) |
Flash | Externa, hasta 4MBytes |
ROM interna | No |
Alimentación | 3,0V – 3,6V |
Consumo | 80 mA promedio, 225mA máximo |
Consumo modo deep sleep | 20uA con RTC |
WiFi | b/g/n WEP, WPA. SoftAP |
Cifrados | TLS 1.2 por software |
UART | 2 (en uno solo puede usarse el Tx) |
I²C | 1 |
SPI | 2 |
1-wire | Por software |
I²S | 1 |
IR | Sí |
GPIO usables | 32 |
PWM | 8 |
ADC | 1 (10 bits) |
Temporizadores | 3 |
Aquí tenéis la web oficial del fabricante: Web oficial de Espressif sobre productos ESP8266.
Para usar estos dispositivos en el IDE Arduino usaremos el plugin de la comunidad ESP8266:
- El repositorio git está en GitHub, https://github.com/esp8266/Arduino. Contiene instrucciones de uso, aunque aquí os las dejo al detalle.
- El foro principal es: http://www.esp8266.com/
Pasos para instalar el soporte para ESP8266 en el IDE Arduino:
Pongo los de Windows, pero en Linux y Mac es exactamente igual.
Necesitas Arduino 1.6.4 o superior.
1) Abrimos el IDE Arduino
2) Vamos al menú "Archivo" -> "Preferencias"
3) En el cuadro de texto "Gestor de URLs Adicionales de Tarjetas ponemos:
http://arduino.esp8266.com/stable/packa ... index.json
Y pulsamos el botón "Ok".
4) Abrimos el menú "Herramientas" -> "Placa" -> "Gestor de tarjetas..."
5) Una vez que se haya actualizado la información (se hace automáticamente) buscamos la opción "esp8266 by ESP8266 Community" y pulsamos el botón "Instalar".
6) Esperamos mientras dura el proceso de descarga e instalación.
7) Comprobamos que está instalado
8) Ya estarán disponibles las placas en el menú "Herramientas" -> "Placa"
Pinouts y conectar los diferentes ESP8266 en modo normal y modo Flash:
El pinout y la manera de conectar los diferentes ESP8266 en modo normal y modo Flash para ser programados directamente con el IDE (o para cambiar o actualizar el firmware) lo tenéis explicado en el hilo: Conexión modo flash para ESP8266
Ejemplos de compra en Aliexpress:
ESP05: sirve como puente WiFi para otro microcontrolador, usado con comandos AT. No es reprogramable. Poco recomendado, pero útil para su función. Es diminuto.
ESP01: Versátil, reprogramable, pero muy pocos pines. Muy útil para controlar un único dispositivo.
NodeMCU v2/v3: Me encanta este dispositivo, muy completo. Incluye conector USB, se puede reprogramar usándolo.
Ya no encuentro el ESP201, un módulo que sería muy bueno si no fuese por los pines que pusieron en una 3a hilera.