bclose

Programando NODEMCU con Arduino IDE

Los NodeMCU y Arduino

Programando NODEMCU con Arduino IDE

 

 

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

Node MCU board 

Node MCU V2 y V3


micro usb
Un cable USB a microUSB, como el de cualquier teléfono móvil

 

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 ESP8266que 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 ESP8266exactamente como si fuera unArduino 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

 

Tercera generación, V3 (versión V1.0) 

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 varinates 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

 

 

(55) Comments

  • Hola buenas,
    Genial y muy completo tutorial.
    Tengo la placa NodeMCU V3 (versión V1.0) y mi duda es: ¿Es posible usar los pines SD2 (GPIO9 ), SD3 (GPIO10), D9 (GPIO3 ) y D10 (GPIO1) simplemente como entradas o salidas digitales? Y de ser así, ¿Como se configura desde el IDE de Arduino?.

    Muchas gracias de antemano 🙂

    • Hola Iván, yo he probado a usar el SD1 como salida de esta forma pinMode(10, OUTPUT); y no he tenido ningún problema.

      • Muchas gracias por la respuesta.
        En ese caso creo que te refieres al pin SD3 ¿no?. De todas maneras, he intentado hacer un simple blink con un LED conectado a cualquiera de los 4 pines que comenté y no consigo realizarlo. La salida siempre parece que está a nivel alto y el LED luce continuamente.
        El programa es una chorradilla:

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

        void loop() {
        digitalWrite(10, HIGH);
        delay(2000);
        digitalWrite(10, LOW);
        delay(2000);
        }

        No se si el problema está en la definición de la función del Pin o en que simplemente no se puede hacer y no hay más.

  • Buenas tardes, es posible correr un programa en un NodeMCU V 0.9, tengo cargado un programa que hace posible la detección de CO a través de la App Blynk, Solo quisiera saber si es posible ejecutar el código o una parte del código sin tener conexión a Internet. Es decir, en caso de que por alguna razón fallara el Internet y que de alguna manera pueda ejecutarse la lectura del sensor. Lo he intentado pero al parecer sin Internet no hace nada, no realiza ninguna instrucción. Saludos!!

    • Hola Mario, lamento no poder ayudarte pero no he utilizado App Blynk nunca y no tengo ni idea de cómo funciona.

      • Alfredo

      Mario, Blynk necesita internet si o si, ahora, revisa tu codigo, muchas veces el codigo de ejemplo tiene alguna instruccion while(1){} que hace que el ESP no haga nada cuando es incapaz de conectarse a alguna red. Te recomiendo que utilices la libreria WifiManager.

      • Luis

      Hola Mario, puedes llegar a programar a través de Blynk sin Internet instalando el servidor en una Raspberry Pi. Es muy aconsejable ya que el servicio de Blynk es de pago y si utilizas el gratuito he tenido problemas de conexión. También puedes montar el servidor en otro ordenador que no sea Blynk en un Windows por ejemplo.

Give a Reply

WordPress Anti-Spam by WP-SpamShield

KIT DE INICIO A ARDUINO

¡¡Solo en Mayo!!

Antes 72€

¡¡Ahora por sólo 64,95€!!

Comprar