Programación ESP8266 con IDE Arduino

Hemos visto como realizar las conexiones y vimos los comandos AT que nos permiten configurar las acciones del WIFI. El ESP8266 dispone internamente de un pequeño procesador, prácticamente es capaz de replicar casi cualquier cosa los Arduinos puedan hacer. Así que los 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.

Gracias a un firmware basado en C ++, permite que la CPU ESP8266 y sus componentes Wi-Fi sean programados como cualquier otro dispositivo Arduino.

  • Puedes desarrollar con el mismo IDE que ya conoces
  • 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
  • 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 modelo ESP8266-01 solo tienes dos pines disponibles GPIO0 y GPIO2
  • 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, 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 reutilizar muchos programas.  

Todo este soporte del ESP8266 para Arduino gracias a Ivan Grokhotkov: https://github.com/igrr y más de 140 personas que colaboran.

El Arduino Core ESP8266 está disponible a través de GitHub: https://github.com/esp8266/Arduino

Wiki de la comunidad esp8266:https://github.com/esp8266/esp8266-wiki/wiki

Este SDK para Arduino incluye el compilador GCC para el microcontrolador LX106 usado en este módulo Incluido en el SDK están las fuentes para SSL, JSON y lwIP, haciéndolo una solución perfecta para Internet de las Cosas.

Este SDK incluye códigos de ejemplo para usar con los pines libres como buses GPIOs, I2C y SPI y como UART

lwIP:

El SDK de ESP8266 para Arduino salio de la comunidad en http://bbs.espressif.com/ y del foro de la comunidad http://www.esp8266.com/

Reference de Arduino core para el ESP8266:

Además el manejo del wifi con la librería ESP8266WiFi.h cuyo código se puede encontrar en https://github.com/esp8266/Arduino/tree/master/doc/esp8266wifi se hace de una forma similar a la librería WiFi de Arduino https://www.arduino.cc/en/Reference/WiFi

Toda la documentación del soporte de Arduino core a ESP8266:

Para usar el SDK de ESP8266 para Arduino debemos instalar el soporte a terceros en nuestro IDE simplemente añadiendo el texto “http://arduino.esp8266.com/stable/package_esp8266com_index.json” en propiedades:

Y luego desde el gestor de tarjetas dar a instalar al soporte para ESP8266.

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

  • Generic ESP8266 modules
  • Olimex MOD-WIFI-ESP8266
  • NodeMCU 0.9 (ESP-12)
  • NodeMCU 1.0 (ESP-12E)
  • Adafruit HUZZAH ESP8266 (ESP-12)
  • SparkFun Thing
  • SweetPea ESP-210
  • WeMos D1
  • WeMos D1 mini

Para instalar el Arduino Core ESP8266 en nuestro IDE de Arduino seguir las instrucciones: http://www.instructables.com/id/Setting-Up-the-Arduino-IDE-to-Program-ESP8266/?ALLSTEPS

IMPORTANTE: Cuando cargas un sketch en el ESP8266 con el IDE Arduino estamos cargando en la flash de ESP8266 un nuevo firmware borrando el que viene por defecto visto anteriormente para manejar el módulo con comando hayes.

Otras características de este soporte:

  • Actualización OTA
  • Soporta muchas de las librerías de Arduino y otras librerías hechas por terceros está ya adaptadas para usar con el ESP8266.

Más información:

Programar el módulo ESP-01 con Arduino

Es posible programar el módulo ESP-01 sin necesidad de un programador externo usando un Arduino. Para ello nos valemos del microcontrolador ATmega16U2 para programar y conectar por USB el módulo ESP8266 ESP-01 que disponemos.

En este esquema estamos conectando directamente los puertos Tx y Rx del ATmega16u2 con los del ESP8266 (puertos serie), de forma que el ATmega16U2 me hace de conversor USB a TTL para poder acceder al ESP8266 desde USB. Debe tenerse en cuenta que el ATmega328p de Arduino también está conectado a Tx y Rx, por lo que habrá que tener cargado algún programa que no use la UART de Atmega328p (cualquiera que con tenga Serial.begin)

También se puede usar un adaptador FTDI. Conectar al programador FTDI como hemos visto anteriormente. Pero para programar el módulo (Y para actualizar el firmware) necesitáis colocar el módulo en estado de programación y eso se consigue poniendo a GND la patilla GPIO0.

Vamos a programar el blink de Arduino en la patilla GPIO2, que es la que nos queda libre:

 
void setup()
   { pinMode(2, OUTPUT); }

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

Para probarlo.

IMPORTANTE: Al cargar un programa pierdo el firmware original.

Más información:

Veamos los ejemplos de ESP8266 que vienen en el soporte para el IDE de Arduino, usando la librería ESP8266WiFi.h:

  • Blink
  • ESP8266Wifi/Wifiscan: Scan networks
  • ESP8266Wifi/WifiClient Conectar a wifi
  • ESP8266WebSerber/HelloServer: Servidor web wifi
  • ESP8266Wifi/WiFiAccessPoint: punto de acceso wifi

El reference para programar:

Anuncios

Un pensamiento en “Programación ESP8266 con IDE Arduino

  1. Pingback: Saber Más Avanzado 2017 | Aprendiendo Arduino

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s