ESP8266-01 y Arduino.

Creado por V. García. El 06.05.2016

INTRODUCCIÓN.

Estamos ante una etapa de expansión que las nuevas tecnologías ponen a nuestro alcance, me estoy refiriendo a los medios que serán parte del entorno de nuestro más próximo futuro, entre los cuales se encuentran los llamados IoT (Internet de las cosas) como es el módulo ESP8266. Este módulo tiene su tiempo en el mercado y que podemos decir del software de lo más variado que podemos encontrar en la red. Este apartado es tan extenso que hasta puede llegar a confundirnos, ya que cada grupo e incluso a nivel personal estamos unos creando y otros experimentando nuevos recursos para su control y de esta forma avanzamos en su conocimiento y usabilidad.


Fig. 1

Puede ver las características con más detalle en: https://github.com/esp8266/esp8266-wiki/wiki

Este pequeño módulo tiene unas dimensiones pequeñas de 25 x 14 mm. No obstante, nos pueden sorprender sus posibilidades ya que algunas de sus características son:

        Protocolo 802.11 b/g/n
Wi-Fi de 2,4 GHz, compatible con WPA / WPA2
Módulo tamaño súper pequeño (11,5 mm x 11,5 mm)
ADC integrado 10 bits
Memoria Flash de 512 KB hasta 4MBit
Integrado TCP / IP pila del protocolo (IPv4 sólo en el momento)
Conmutador TR, balun, LNA, amplificador de potencia y adaptador de red
PLL integrado, reguladores y unidades de administración de energía.
Potencia de salida de + 20 dBm en el modo 802.11b
Compatible con diversidad de antenas
Deep sleep potencia < 10uA, Corriente de fuga al apagado < 5uA
Bajo consumo de energía integrado, MCU 32 bits a 80MHz
SDIO 2.0, SPI, UART, I2C
STBC, 1×1 MIMO, 2×1 MIMO
A-MPDU & A-MSDU agrupación e intervalo de seguridad 0.4μs
Despertar y transmitir paquetes < 2 ms
Consumo en espera (Standby) de < 1.0mW (DTIM3)
Temperatura de funcionamiento -40C ~ 125C

 Fig.2

Algunos de estos valores dependen de la versión que usted haya adquirido. Puede tener hasta 16 puertos accesibles para el usuario, según el modelo. El módulo ESP8266-ESP01, dispone de un conector DIL de dos filas de 4 pines como se aprecia en las imágenes. Como se aprecia los pines de acceso a los puertos y alimentación vienen en dos filas de cuatro pines, debe utilizar cables macho-hembra para sus conexiones, observe más abajo, el útil que he utilizado para un conexionado mejor .

Estos módulos funcionan por sí solos, sin embargo es de gran ayuda disponer de una herramienta como puede ser Arduino que nos facilitará en el momento de programar los códigos de programas que darán una mayor autonomía a este módulo ESP8266-ESP01. Veamos como podemos utilizar nuestro habitual Arduino.

INSTALACIÓN DE SOFTWARE EN ARDUINO.

Como ya he dicho, existe una variedad de entornos de desarrollo que podemos utilizar para programar el ESP8266. La comunidad ESP8266 recientemente dio un paso más allá mediante la increíble creación de un complemento en la selección de IDE Arduino. Para empezar, la programación del ESP8266, en la plataforma Arduino se recomienda comenzar con la documentación de este tutorial. Para la instalación en el administrador del añadido de tarjetas a Arduino para asegurarnos algún éxito, son de verdadera importancia, siga los siguientes pasos:

  • Un primer paso que hay que tener en cuenta es, configurar adecuadamente nuestro IDE Arduino, versión 1.6.4 (o mayor para evitar problemas, recomiendo actualizar ahora).
  • Luego, verifique la configuración ya que requiere de este enlace: http://arduino.esp8266.com/stable/package_esp8266com_index.json
  • Para mayor claridad procure seguir los pasos de las imágenes que siguen:

Descargar e instalar Arduino 1.6.4 desde el sitio web de Arduino. Ahora, inicie Arduino y vaya a Archivo > Preferencias como se aprecia en la imagen.

Fig. 3 Preferencias.

Al entrar en la ventana, en la parte inferior, donde esta el campo adicional de texto “Gestor de URL adicionales de tarjeta“, copie e introduzca este enlace:
http://arduino.esp8266.com/…/package_esp8266com_index.json

Fig. 4 Configurar Preferencias.

 Si ya tiene una dirección URL allí, y desea mantenerla, se pueden añadir varias direcciones URL, separándolas por comas.

Fig. 5 Configurar Preferencias en Arduino.

Pulse OK y otra vez OK para salir.

Ahora, abra el administrador de tarjetas instalado. En el menú Herramientas > Placa Arduino… de su plataforma, en la lista que presenta, no se olvide de seleccionar su tarjeta esp8266 en el menú como se muestra en la imagen).

Fig. 6

El complemento para Arduino del ESP8266, se debe al trabajo de Ivan Grokhotkov y el resto de la comunidad ESP8266. Descargue el repositorio GitHub para ESP8266 con Arduino para más información.

Fig. 7 Gestor de tarjetas.

Con las definiciones que vienen de la tarjeta y las herramientas para el ESP8266, incluyen un nuevo conjunto de archivos bastante grandes, lo que puede retardar unos minutos en descargar e instalar (el archivo guardado, compilado es de ~ 110 MB). Una vez que la instalación se ha completado, un “INSTALLED” aparecerá al lado de la entrada como se aprecia en la imagen anterior.

Solo queda que seleccione el puerto COM X de su FTDI bajo el menú Herramientas > Puerto. Para conocer el puerto vayamos a INICIO / Ejecutar y en la celda Abrir: escribamos: mmc devmgmt.msc y Aceptar, se abrirá la ventana Administrador de dispositivos. En mi caso aparece el puerto COM5 como se aprecia en la imagen.

Fig. 8 Administrador de dispositivos.

Siguiendo estos pasos, pude realizar mi primer encuentro entre Arduino UNO y este dispositivo ESP8266, he de decir que hasta entonces ni las librerías aparecían en el IDE. Este era un buen primer paso, sin duda. Debía seguir con mi empeño (creo que es consecuencia de la falta de claridad en que se presentan ciertos ejemplos) para afrontar el nuevo reto, otras veces el exceso de información desacertada ya que acaba por ser confusa para el inexperto. No obstante, había dado el primer paso, ahora sigamos.

ARDUINO + ESP8266-01.

En principio ya nos comunicamos con el ESP8266 mediante comandos AT en este enlace. En esta entrega veremos como servirnos de nuestro Arduino UNO. Por cierto, el módulo ESP8266 incluye un potente microprocesador que podremos programar para que funcione de modo autónomo, dependiendo del modelo que incluye distintos puertos denominados GPIO (General Purpose Input Output) para su uso según nuestras necesidades, como podremos ver en otro artículo más adelante.

Estos son los dispositivos que vamos a utilizar son:

 Fig. 9

Si no dispone del conversor USB a FTDI, no se preocupe demasiado ya que Arduino UNO si dispone de ese mismo dispositivo, en la imagen se muestra el chip y las conexiones TX y RX que son los mismos de conversor.

Fig. 10 Conversor de USB a FTDI

 Precaución! Utilice una herramienta adecuada para extraer el ATmega328, debe extraer con cuidado el microprocesador ATmega328 de su zócalo (si se trata de Arduino con chip DIL) y luego conectar las masas del Arduino y del módulo ESP8266, para tener una masa común para los voltajes de cada dispositivo. Si no se unen las masas nos exponemos a quemar el módulo ESP8266.

Fig. 11 Extracción del ATmega328

El módulo ESP8266-01 por la disposición se sus pines no lo podemos insertar en un protoboard, para facilitar las conexiones, debemos utilizar cables con terminales macho-hembra como los mostrados más arriba. Una vez conectados hacemos lo mismo con el Arduino al PC, para abrir el puerto correspondiente y usar el monitor Serial con el que nos comunicaremos.


Fig. 12 Vídeo del útil para ESP8266-01

También debemos conectar el ESP8266-01 con el conversor USB a FTDI, ya que el consumo del ESP8266-01 (>200mA) llegará a superar la corriente del regulador de Arduino (50mA), y de este modo evitamos dañar el módulo, recuerde unir las masas. Ahora podemos pensar en enviar datos por Internet mediante comandos AT.

Fig. 13

De todas formas, seguimos usando las señales de transmisión de Arduino a 5V sin adaptarlas a los 3,3 V que es lo que recomienda el fabricante. Una forma de adaptar las TX y RX, podemos poner un resistor de 4k7Ω y uno de 2K7Ω a GND.

La experiencia dice que en muchas ocasiones se cuelga quizás, no está muy claro el motivo, se ha observado que utilizando un condensador de 100uf a 220uf, entre los pines VCC y GND se evita que se cuelgue, según mi experiencia, cuando quiero programar un nuevo boceto, primero hago un reset, evitando el error típico, por lo demás funciona bien.

Lo ideal es que usemos un adaptador de niveles con todas las señales a 3.3V con la tensión y corriente de 500mA correcta para cualquier módulo ESP. Este tipo de fuente externa mostrado en la figura siguiente, se adapta fácilmente al protoboard y es bastante económica.

Fig. 14

EL FIRMWARE.

Ahora empieza la parte más divertida, vamos a ver alguna de las herramientas disponibles para subir nuestros bocetos al ESP8266. Ya vimos el AT de Ai-Thinker que nos habilitaba el módulo para interpretar comandos AT. El NodeMCU es bastante popular y está bastante documentado y tiene muchos ejemplos.

Esto es todo por este momento, espero poder presentar una nuevo artículo más completo pronto.

Ayúdenos a mantener la comunidad en lo positivo y útil.
Sobre el tema, sea respetuoso con todas las edades y niveles
con la habitual responsabilidad.
Sea amable y no haga Spam – ¡Gracias!.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *