Programando NODEMCU con Arduino IDE

Objetivos

 

  • Volvemos a ver al ESP8266, ahora integrado en el módulo NodeMCU v1.0.
  • Descargar el plugin ESP8266 para el IDE de Arduino.
  • Configurar el entorno.
  • Nuestro primer programa con NodeMCU v1.0, blinking LED
  •  

    Material requerido

     

    Vista principal  NodeMCU V2 o V3

     

    NodeMCU, un microcontrolador basado en el ESP8266

     

    Ya hemos hablado anteriormente sobre el módulo WIFI ESP8266 en otras ocasiones, pero hoy vamos a hablar de una placa que está basada en él: el NodeMCU v1.0. Queremos recalcar que si queréis juguetear con él es conveniente que busquéis la versión 1.0 porque los cambios introducidos han sido enormes y para mejor.

    Uno de esos cambios es que el procesador que incluye, en la versión 12E, o mejorada (del inglés Enhanced), tenemos 6 pines más, cuatro de los cuales están dedicados a la comunicación SPI, que son los CS0, MISO, MOSI y SCLK. Si no tenéis claro lo que significa SPI o no lo recordáis, podéis echar un vistazo a este otro tutorial en el que hablamos de él cuando enredábamos con displays: El bus SPI.

    Podéis ver los nuevos pines en el siguiente esquema:

    detalle pinout
    detalle pines

    En el tutorial Modelos ESP2866 ya presentamos al NodeMCU y dijimos que si se confirmaba que se podía programar como un Arduino mediante el plugin ESP8266 podría ser el Arduino que llevamos mucho tiempo esperando con WIFI incluido por un precio ridículo además.

    Pues bien, ya está confirmado y gracias al grupo de benefactores de la humanidad que desarrollaron el plugin ESP2866 para el IDE Arduino, podemos utilizarlo ahora también para programar el NodeMCU desde el IDE de Arduino.

    En lugar de tener que aprender a programar el dichoso módulo en LUA, podemos ahorrarnos tiempo y quebraderos de cabeza y empezar a cacharrear directamente con él usando el C que utilizamos en nuestro IDE de Arduino.

    Vamos a recordar un poco las ventajas que nos ofrece el plugin del ESP2866 para programar el NodeMCU:

  • 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.
  •  

    Decíamos que NodeMcu es una iniciativa Open Source de Espressif systems  para el desarrollo de un modelo sencillo de integrar la IOT en donde haga falta. Para ello desarrollan modelos de hardware y software que facilite el desarrollo de programas y aplicaciones basados en WIFI.

    Una ventaja con respecto a otros módulos que integran el ESP2866 es que todos sus pines están disponibles en el exterior, en un montaje que se puede colocar en una protoboard (síi, por fin) y además incluye un conector mini USB para programar el chip interno y comunicarse con el PC si es necesario, con lo que nos evitamos el adaptador FTDI a USB que siempre es engorroso.
     

    Variantes de Nodemcu

     

    Vamos a echar un ojo a los diferentes modelos de las placas NodeMCU, porque al ser un proyecto open-source existen una serie de variantes ya que cualquiera puede producir y vender placas NodeMCU.

    Principalmente son tres los fabricantes: Amica, Doit/Smartduino y Lolin/WeMos. En nuestro caso hemos probado la versión NodeMCU Amica.

    Primera Generación, V1 (versión V0.9)

     

    La primera generación de placas NodeMCU, que lleva la numeración v0.9, tiene la peculiaridad de que el color de la placa suele ser amarillo y que  el formato es más ancho que el de sus sucesoras, 47 mm x 31 mm. El inconveniente de este tipo de placas es que, debido a su tamaño, cubre los diez pines de una protoboard normal haciendo que sea engorroso utilizarla para nuestros proyectos porque no deja pines libres.

    vista principal
    Vista superior

    Descripción de los pines del NodeMCU v0.9

    Descripción de los pines del NodeMCU v0.9Segunda Generación, V2 (versión V1.0)

     

    Segunda Generación, V2 (versión V1.0) 

     

    En la segunda generación de placas ya han solucionado el problema del tamaño y podemos usar las nuevas NodeMCU v1.0 en nuestras protoboards sin incomodidades, ya que nos deja una fila de pines disponibles a cada lado. Además llevan los nuevos chips mejorados ESP12E.

    pinout
     

    En este caso no se trata de una auténtica nueva versión ya que NodeMCU no ha sacado ninguna nueva especificación, sino una versión que LoLin se ha sacado de la manga y que presenta una serie de innovaciones menores con respecto a la versión V1.0.

    En teoría el puerto USB es más robusto y LoLin ha usado uno de los pines reservados para la alimentación USB de salida y otro de los pines reservados para una conexión GND adicional.

    Otra peculiaridad de esta versión es que el tamaño es más grande que el de las placas Amica y Doit. En las siguientes imágenes se puede apreciar la diferencia de tamaño entre las versiones V2 y V3.

    detalle
    vista general

    version loolin

    Ambas variantes son equivalentes ne cuanto a prestaciones, pero el menor tamaño de la version Amica puede ser una ventaja.

    Bueno, vamos a dejarnos de tanta cháchara y cacharreemos ya con nuestro NodeMCU. Pero primero tenemos que instalarlo en nuestro equipo y para ello conviene que sigas los pasos que describimos en esta sesión en su día, en el caso de que aun no lo tengas instalado.

    Arduino, si volvéis ahora a seleccionar las placas con  \Herramientas\Placa, veréis que ya podéis seleccionar las correspondientes al NodeMCU 1.0 (ESP-12E Module).

    Selecciona nodemcu

    Nos falta seleccionar el puerto en el que está instalado NodeMCU en nuestro equipo, así que navegamos a \Herramientas\Puerto y seleccionamos el que haya elegido para ello nuestro sistema operativo. En nuestro caso elegimos el puerto COM7.

    Seleccionar puerto comm

    Ya tenemos el NodeMCU instalado en el equipo, hemos descargado el plugin del ESP8266 para el IDE de Arduino, hemos seleccionado la tarjeta y el puerto en el que lo hemos instalado, así que ya sólo nos queda comprobar que funciona correctamente.
     

    PROBANDO EL BLINKING LED

     

    Ya sabéis que es costumbre que el primer programa que utilizamos con un micro controlador sea el blinking LED, sustituyendo a los famosos «Hola Mundo» de la programación habitual. Es verdad que se nos va a quedar muy corto y con ganas de hincarle más el diente al NodeMCU, pero por algo hay que empezar y la tradición, es la tradición.

    Vamos a cargar el programa de ejemplo del blinking LED del ESP8266, que nos va a funcionar sin ningún problema en nuestro NodeMCU. Para ello iremos a \Archivo\Ejemplos\ESP8266\Blink y haremos click en el ejemplo.

    cargando ejemplo

    • Atención: Asegúrate de cargar el ejemplo que corresponde al ESP8266, porque el LED esta en un pin diferente del habitual 13 de Arduino, y si no lo haces así no veras el parpadeo. 

    Como siempre cargaremos el programa en nuestra placa haciendo click en la flecha horizontal y veremos que el LED azul de la placa ESP8266, que se encuentra en la zona de la antena, comienza a parpadear indicando que se está realizando la transferencia de datos.

    transfiriendo programas

    Fijate que la descarga del programa se indica con una linea de puntos suspensivos  media que avanza el volcado

    Pasados unos segundos se habrá completado la transferencia y veremos que el LED de la placa del NodeMCU empieza a parpadear.

    detalle del led

    Si todo ha ido bien y vemos cómo parpadea el LED significará que tenemos instalado y configurado nuestro NodeMCU para que en futuras sesiones podamos emprender proyectos de mayor envergadura.
     

    Resumen de la sesión

     

  • Hemos visto el ESP8266 desde un nuevo punto de vista, integrado en la placa NodeMCU Amica.
  • Presentamos la configuración básica del entorno para programar directamente el NodeMCU.
  • Volcamos nuestro primer programa y probamos el simple Blink LED. —-

    Deja una respuesta