¿Qué es NodeMCU?
NodeMCU es una placa de desarrollo de código abierto basada en un chip de bajo coste que dispone de WIFI, ESP 8266, y que es ampliamente utilizado en IoT (The Internet Of Things, El Internet de las Cosas). Asociado a un sinfín de sensores, software, y tecnologías varias, nos permite interconectar todo tipo de dispositivos cotidianos o industriales. A través de una nube, los dispositivos físicos pueden recopilar e intercambiar información y crear un limbo donde es posible la comunicación entre las personas y las cosas.
El autor de este blog no aporta lo que ya hay a raudales en Internet, aporta la experiencia y el código que puede dejar aquí, que en este caso puede ser muy interesante, tanto a nivel didáctico como técnico.
En esta entrada os cuento la experiencia de conectar la placa NodeMCU a la plataforma de código abierto Thinger.io, y activar a través de ella y del móvil el LED de la placa, y desde la placa, pulsando un pulsador, verificar como se manifiesta el widget de la plataforma y del móvil al ser actuado.
Podemos comenzar instalando ARDUINO 1.8.10.
Para poder brindar soporte para el chip ESP8266 al entorno Arduino, permitiendo crear sketches utilizando funciones y bibliotecas conocidas por Arduino, tenemos que añadir desde la siguiente web de GitHub - esp8266 de Arduino, en Archivo --> Preferencias --> Ajustes, el enlace al archivo package_esp8266com_index.json
Copiamos desde:
Y pegamos en Archivo --> Preferencias --> Ajustes
Instalamos luego con el Gestor de tarjetas del entorno IDE de Arduino el paquete ESP8266 Community versión 2.6.2
ESP8266 Community version 2.6.2
Seleccionamos luego la placa NodeMCU 1.0 (ESP-12E Module)
En Linux, si no se abren los puertos serie USB, es decir, no hay comunicación con la placa a través de ellos, debemos ejecutar el siguiente comando en el Terminal de root:
usermod -a -G dialout usuario
Podéis comprobar si vamos bien, verificando con el siguiente código que los LEDs de la placa y el de la salida digital D1 se apagan y encienden alternativamente; el LED azul de la placa está invertido.
int ledPin5 = 5; //GPI005 - D1
void setup() {
pinMode(LED_BUILTIN, OUTPUT); // GPI002 - D4
pinMode(ledPin5, OUTPUT);
}
void loop() {
void setup() {
pinMode(LED_BUILTIN, OUTPUT); // GPI002 - D4
pinMode(ledPin5, OUTPUT);
}
void loop() {
digitalWrite(LED_BUILTIN, HIGH);
digitalWrite(ledPin5, HIGH);
delay(1000); // Espera un segundo
digitalWrite(LED_BUILTIN, LOW);
digitalWrite(ledPin5, LOW);
delay(1000); // Espera un segundo
}