ESP8266 pluggin para Arduino IDE

 

Objetivos

 

  • Viendo el ESP8266 de un nuevo modo.
  • Descargar el ESP8266 Arduino Pluggin.
  • Configurar el entorno.
  • Nuestro primer programa directo en ESP8266.
  •  

    Material requerido.

    Imagen de Arduino UNO Arduino Uno o similar.
    Vista frontal Un ESP8266 ESP-01

    Empezando de nuevo con ESP8266

     

    Después de unas cuantas sesiones con el módulo WIFI ESP8266, parece raro querer decir que vamos a volver a empezar… pero la verdad es que eso es exactamente lo que vamos a hacer en esta sesión.

    Antes de que haya estampida hacia la salida, vale la pena comentar que hasta ahora hemos usado el ESP8266 como un pequeño modulo adicional que proporciona WIFI a nuestros muy queridos Arduinos. Hhemos visto como realizar las conexiones, vimos los comandos AT que nos permiten configurar las acciones del WIFI e hicimos varios ejemplos de programación desde el lado Arduino, tratando al módulo como completamente tonto.

    Pero queridos amigos, el ESP8266 dispone internamente de un pequeño procesador, que aunque un poco inferior en capacidad y potencia a nuestros Arduinos, prácticamente es capaz de replicar casi cualquier cosa que estos puedan hacer.

    Así que de repente para todos los que andáis haciendo proyectos con sensores más Arduinos que envían los datos a la WIFI mediante un ESP8266, es muy probable que podamos ahorrarnos el Arduino en el proceso.

    ¿Cómo dice? Ya, pero para eso hay que aprender a programar de nuevo el dichoso módulo en un lío de nuevo lenguaje y comandos que requiere un montón de tiempo y de dolores de cabeza ¿Verdad?

    Pues no. Y aquí esta lo interesante: Un grupo de benefactores de la humanidad han desarrollado un pluggin para el IDE Arduino, de modo que:

  • UNO – Puedes desarrollar con el mismo IDE que ya conoces
  • DOS – Han hecho un Cross compiler, de forma que prácticamente utilizas los mismos comandos que utilizas con Arduino, con lo que te ahorras aprender nada nuevo (Y los dolores de cabeza)
  • TRES – Dependiendo del modelo de ESP8266 que tengas, dispones de más o menos pines disponibles con PWM y otras cosas más como I2C y SPI, pero para el típico  modelo ESP8266-01 ( O sea el que tienes con casi total probabilidad) solo tienes dos pines disponibles GPIO0 y GPIO2, pera ya hablaremos que hay otros modelos con todos los pines disponibles
  • CUATRO – Es decir, que puedes programar el procesador de tu ESP8266 exactamente como si fuera un Arduino con los mismos comandos, y en lo que se refiere a la WIFI, ya puedes olvidarte de los comandos AT, porque incluye una serie de librerías, que imitan la librería WIFI de Arduino con lo que se pueden trasplantar muchos programas.
  •  

    Por eso os decía que vamos a volver a empezar con este módulo porque tendremos que ver, dependiendo del módulo que tengas que pines tenemos disponibles y veremos que módulos son los que tenemos que comprar para obtener el máximo de ellos, especialmente en proyectos donde haya varios sensores emitiendo datos WIFI.

    Y lo primero que vamos a hacer es ver cómo podemos instalar el pluggin ESP8266 para nuestro Arduino IDE.

     

    Instalando el pluggin ESP8266 en Arduino IDE

     

    Hay dos maneras básicas de instalar el pluggin ESP8266. La primera, para cobardes, consiste en descargar un IDE Arduino ya configurado y que podemos instalar en un directorio distinto para que no nos lie nuestro entorno principal y de ese modo convivir con dos versiones hasta que lo tengamos claro.

    La segunda, para corazones intrépidos, consiste en descargar el pluggin desde internet a nuestro IDE principal, como corresponde a hombres de pelo en pecho y que sea lo que Dios quiera.

    Vamos a empezar por el primer método  y después veremos cómo hacemos para montar el segundo.

     

    Tengo que decir que empecé por este método, porque en general me costó un montón encontrar una definición clara de cómo instalar el pluggin directamente en Internet.  Pero descargar un IDE configurado es simplemente cuestión de rebuscar un sitio razonable para descargarlo, a mí me ha ido bien con esta página de GitHub: https://github.com/esp8266/Arduino/releases

    Incluye versiones del IDE 1.6.1 para Windows, Mac y Linux. Os descargarais la que más os guste. La descomprimís en un directorio de vuestra elección y ya podéis lanzar sin más el ejecutable de Arduino, que puede convivir con vuestra instalacion principal sin interferencias. Veréis que ya podéis seleccionar una placa Genérica ESP8266 board.

    Seleccion del ESP8266

    Y seleccionar ahora el puerto COM que corresponda a vuestro adaptador FTDI:

    Seleccionar puerto del adaptador FDTI

    Y ya estáis listos para programar el ESP8266.

     

    Bien, esta segunda opción cuando queráis tener todo integrado, tampoco es especialmente difícil, pero requiere que tengáis la versión 1.6.4 del entorno de desarrollo.

    Si no es la versión que tenéis, descargarla de Arduino.cc porque si no, no va a funcionar. El motivo es que la nueva versión de Arduino, permite, precisamente, crear definiciones de nuevas placas e incorporarlas al entorne bajo ciertas condiciones, y el pluggin que vamos a probar es uno de los que cumplen esas condiciones.

    Para instalar el pluggin vamos a tener que descargarlo de internet, lo que le va a llevar un ratito (Son como 110 Mb).  Abrid vuestro IDE de Arduino y pinchar en \Archivo\preferencias, os aparecerá algo así:

    Gestor de nuevas placas

    Fijaros en la parte inferior que pone Additional Boards Manager URLs, y escribid ahí:

    http://arduino.esp8266.com/stable/package_esp8266com_index.json

  • Se pueden instalar mas de una tarjeta adicional. Si más adelante necesitaseis instalar otras placas, basta con escribáis lo URLs separadas por comas. 
  •  

    Dadle a OK y volvemos a \Herramientas\placa\Board Manager

    Board Manager

    Os saldrá algo como esto y tenéis que buscar la línea que dice ESP8266 Comunity version:

    Seleccion de placas adicionales

    Dadle al botón Install y veréis una barra de progreso a medida que vaya descargando lo necesario. Si volvéis ahora a seleccionar las placas con  \Herramientas\Placas veréis que ya podéis seleccionar las correspondientes al Genérica ESP8266.

  • En otro momento nos tocara hablar de los más que interesantes, modelos de Olimex y NodeMCU), que son otros modelos de placas basados en el chip ESP8266 y con sus propias características. 
  •  

    Como la comunicación con el modulo lo vamos a hacer por la puerta serie, veréis que podéis seleccionar la velocidad en el mismo menú. Preferiblemente a 115.200 y la puerta serie correspondiente. Y con esto ya estamos en condiciones programar nuestro módulo WIFI directamente.

     

    Programando el ESP8266 directamente

     

    Ya vimos en la sesión previa como debíamos hacer la conexión entre el adaptador FTDI y nuestro módulo WIFI, pero vamos a repetir aquí el diagrama:

    Conetando modulo wifi a USB

    Es importante insistir en que para programar el modulo (Y para actualizar el firmware) necesitáis colocar el modulo en estado de programación y eso se consigue poniendo a GND la patilla GPIO0.

    ¿Y qué primer programa podríamos volcar?, Veamos…. Ya esta: EL blinking LED

    Vamos a programarlo en la patilla GPIO2, que es la que nos quedaba libre:

    void setup()
       { pinMode(2, OUTPUT); }
    
    void loop()
       { digitalWrite(2, HIGH);  
         delay(1000);  
         digitalWrite(2, LOW);
         delay(1000);   
       }

    ¿Qué os parece? Totalmente Arduino

    Si habéis seleccionado correctamente en el IDE la placa, el cargador y el COM, podeis volcar directamente el programa a vuestro ESP8266, poneros cómodos que le va a llevar un ratito.

    Veréis unos puntitos avanzando en la parte inferior del IDE y si acabó sin errores el tema está listo.

     

    Probando el Blinking LED

     

    Hemos programado la pata GPIO2 para controlar el blinking del LED, pero para probarlo necesitamos montar un circuito de ejemplo, porque aparentemente el ESP8266 no tiene ningún LED conectado a sus pines controlables

    Por eso vamos a necesitar este montaje:

    ESquema protoboard

    Si preferís podeis usar el mismo montaje con el adaptador FTDI, pero recordad que tenéis que soltar el cable que une GPIO0 a GND para salir del modo de programación y poder ejecutar el programa interno, y además apagar y encender.

    Aqui os dejo un minivideo con el resultado:

     

    Resumen de la sesión

     

  • Vimos el ESP8266 desde un nuevo punto de vista, como procesador.
  • Hemos visto como disponer del pluggin IDE para este módulo, bien como segunda instalación o bien instalándolo en nuestro IDE normal.
  • Presentamos la configuración básica del entorno para programa directamente el ESP8266.
  • Volcamos nuestro primer programa y probamos el simple Blink LED.
  •  

    Deja una respuesta