bclose

ESP8266 pluggin para Arduino IDE

Programando el ESP8266 nativo desde el IDE Arduino

Objetivos

 

 

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

Material requerido.

ProtoboardUna Protoboard .
conexionesAlgunos cables de protoboard, preferiblemente Dupont macho/hembra.
Vista frontal Un módulo WIFI ESP8266.
Vista frontal Un adaptador FTDI a USB
Fuente para protoboard Una fuente de alimentación externa de 3.3V si fuera necesario

 

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.

 

Descargando un IDE ya configurado 

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.

 

Descargando e instalando el plugginESP8266 

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.

(137) Comments

    • José

    PD: El IDE Arduino que utilizo es el ‘1.8.1’, y también con el ‘1.6.13’

    Saludos,
    José

    • José

    Hola,

    Trabajo con MacOS y el IDE Arduino, el tema es que al conectar el ESP8266, en el IDE puedo elegir correctamente la placa y sus características, pero no el Puerto, solo me da a elegir la opción: ‘/dev/cu.Bluetooth-Incoming-Port’.
    ¿Qué puedo hacer para obtener la dirección correcta del puerto dónde está conectada la placa?

    Nota:
    1. La placa es: ‘Assembled Feather HUZZAH w/ ESP8266 WiFi With Stacking Headers’ ( https://www.adafruit.com/products/3213 ).
    2. El cable USB de conexión placa/ordenador, me lo han vendido como el correcto, también he probado con el cable con el que habitualmente programo placas Arduino.
    3. Observo que se encienden los led rojo y azul al conectar la placa, pero no se mantienen encendidos. O sea al conectarlo sí, pero inmediatamente se apagan.

    Muchas gracias por cualquier ayuda,
    José

  • Que tal!
    Le comento que pude realizar esta experiencia, gracias a este articulo, y me siento muy contento con los resultados obtenidos, estuve tratando de mandar datos via WIFI a un servidor, como se ve en el siguiente video:
    https://www.youtube.com/watch?v=zQY6Pfpm_w8
    A partir del minuto 14:30 muestra como enviar datos desde el modulo via wifi, y se ve la conexión mediante la consola serial de arduino, pero yo cargo el programa normalmente y después no envia nada por la consola como en el video. y los dispositivos que tengo cerca dejan de percibir el wifi y se desconecta todo, es algo extraño, puedes ayudarme? alguna sugerencia?

    • Pues la verdad que no sé muy bien qué puede ser, pero estamos trabajando en un tutorial para precisamente conseguir enviar datos a un servidor. Sois muchos los que parecéis interesados, así que intentaremos darnos prisa, dentro de lo posible. Un saludo.

    • Manuel

    Hola, buenas tardes.
    Después de dar muchas vueltas después de reinstalar y no poder instalar mi placa d1 me he dado cuenta que la dirección que pones ya no vale para cargar las placas.
    Esta ya no vale. http://arduino.esp8266.com/package_esp8266com_index.json
    Lo he conseguido con esta: http://arduino.esp8266.com/stable/package_esp8266com_index.json
    Un saludo.

    • Gracias por el apunte Manuel, lo cambiamos en la sesión.

  • Hola ?que tal? todo esta muy interesante, pero no he podido encontrar el pluggin al cual usted haces referencia.
    por todo lo de mas esta muy bien, bien explicado con sus respectivas imágenes como me me gusta.

    • Garrydo

    Para cambiarle el programa hay q resetear o algo? Gracias

    • Hola Garrydo, si. para apodmer programar los modulos esp8266 directamente tienes que poner el pin creo 1ue GPIO0 a LOW (Compruebalo por si acaso)

  • No estoy muy seguro de lo que m epreguntas Mauricio

    • Alvaro

    Para los que tienen el error
    “warning: espcomm_sync failed
    error: espcomm_open failed
    error: espcomm_upload_mem failed
    error: espcomm_upload_mem failed”

    Recuerden que GPIO 0 debe estar conetado a GND (modo programacion) y desconectarlo para que corra el sketch cargado..

    • Francisco

    Hola

    Si programo el ESP-01 o cualquier otro para que trabaje sólo, si luego se conecta a un arduino para que éste lo gobierne, ¿funcionará correctamente?

    Gracias

    • SI Francisco, pero no uses en tonces el pluccin esp porque desde arduino lo controlaras con comandos AT.

      O puedes cargar el pluggin en el esp y hacer un programa que acepte los comandos que le des desde tu arduino y le envie las respuestas a traves de la puerta serie

    • Aka

    El esp8266-12e dispone de 22 pines con los que poder programar, tambien ofrece i2c y spi, soportaria accionar servos como arduino? Existe alguna definicion de pines para los protocolos serie i2c y spi? En lo que a numeracion se refiere

    • Hola Aka, EL esp8266 en todas sus versiones e incluyendo el 12e soporta tanto SPI como I2C, y enseguida encontraras los pines corepondientes en internet, pero me permito aconsejarte que no uses el esp12 a pelo porque es muy modlesto de manejar. Es mucho ma spractico que emplees un Nodemcu que incluye ese chip y ademas el USB para programarlo

    • Manuel

    Hola buenas
    Soy nuevo en esto con esp8266 , y he visto bastante interesante que dicho modulo trabaje por sí solo.
    He realizado las conexiones y conecto el circuito al puerto usb del computador.
    cuando compilo el programa, no me da ningun error. Pero cuando le doy para subirlo al modulo esp8266 entonces me da los mismos errores.
    warning: espcomm_sync failed
    error: espcomm_open failed
    error: espcomm_upload_mem failed
    error: espcomm_upload_mem failed

    Si me puede ayudar a solucionarlo , muchas gracias

    • Para poder compilar el programa para el esp8266 debes descargarte el pluggin correspondiente e instalarlo y despues podras seleccionar el esp8266 como un modelo mas de arduino. Si ya tienes esto, el siguiente problema es que debes instalar el driver del chip USB de este que se llama CHG341 y si no lo has hecho no te permitira volcar el programa y te dara un error como el que mencionas ¿vale?

    • Joaquin

    Buenos dias, desde ya muchas gracias por toda la informacion brindada en cada uno de los post.
    Quisiera saber si se puede realizar la programacion del esp8266 utilizando las salidas txo y rxo de un arduino mega en vez de un adaptador USB serie; lo intente y me sale el error
    “warning: espcomm_sync failed
    error: espcomm_open failed
    error: espcomm_upload_mem failed
    error: espcomm_upload_mem failed”

    • Hola Joaquin , en principio no hay problema, excepto que el Mega va a 5V y el esp8266 a 3.3, mucho dispositivos asi son compatibles pero si no quiere no conviene insistir mucho o va a oler a quemado. Necesitas un level converter o adaptador 33.3 a 5V bidireccional. SOn faciles de conseguir por 2 o 3 $

      • Eduardo

      Hola, Joaquín pudiste resolver el error que te da a mi me pasa lo mismo y esta conectado a 3.3v, o si me pudieran ayudar estoy usando un arduino uno para programar el esp8266 gracias este es el error
      warning: espcomm_sync failed
      error: espcomm_open failed
      error: espcomm_upload_mem failed
      error: espcomm_upload_mem failed

      • Creo que aqui tenemos algun error de concepto. Veamos el pluggin esp8266 es para que programes el esp como si fuese un arduino. No para programar el arduino con un esp ¿Vale?

Give a Reply

WordPress Anti-Spam by WP-SpamShield