El Kit de Desarrollo NodeMCU está basado en el ESP8266, e integra GPIO, PWM, IIC, 1-Wire y ADC en una sola placa.
Siguiendo esta guía podrás PUBLICAR y SUSCRIBIR datos hacia/desde Ubidots utilizando el módulo NodeMCU ESP8266 en solo un par de minutos!
Requisitos
NodeMCU versión 1.0.
1. Configuración del Arduino IDE
1. Para poder trabajar con la plataforma NodeMCU ESP8266 en el Arduino IDE, necesitarás instalar la plataforma ESP8266 utilizando el Administrador de Placas preconfigurado de Arduino. Si no estás familiarizado con la adición de una placa en el Arduino IDE, consulta este artículo para obtener orientación adicional.
NOTA: Al instalar la plataforma ESP8266 en tu Arduino IDE, asegúrate de instalar la versión v.2.7.4.
2. Con la plataforma ESP8266 instalada, selecciona el dispositivo ESP8266 con el que estás trabajando. En este caso, estamos trabajando con un “NodeMCU 1.0(ESP12E module)”. Para seleccionar tu placa desde el Arduino IDE, selecciona Tools > Board “NodeMCU 1.0(ESP12E module)”.
3. Descarga e instala la biblioteca UbidotsMQTTESP8266 . Para una explicación detallada sobre cómo instalar bibliotecas utilizando el Arduino IDE, consulta esta guía.
2. Enviar (PUBLICAR) Datos a Ubidots
Con el siguiente código de ejemplo podrás publicar las lecturas tomadas del pin ANALOG A0 del NodeMCU ESP8266.
1. Para publicar tu primer valor en Ubidots, abre el Arduino IDE y pega el código de ejemplo a continuación. Una vez que hayas pegado el código, necesitarás asignar tu TOKEN único de Ubidots, SSID (Nombre de WiFi) y Contraseña de la red disponible.
/**************************************** * Incluir Bibliotecas ****************************************/#include "UbidotsESPMQTT.h"/**************************************** * Definir Constantes ****************************************/#define TOKEN "....." // Tu TOKEN de Ubidots#define WIFINAME "...." //Tu SSID#define WIFIPASS "....." // Tu contraseña de WiFiUbidots client(TOKEN);/**************************************** * Funciones Auxiliares ****************************************/void callback(char* topic, byte* payload, unsigned int length) { Serial.print("Mensaje recibido ["); Serial.print(topic); Serial.print("] "); for (int i=0;i<length;i++) { Serial.print((char)payload[i]); } Serial.println();}/**************************************** * Funciones Principales ****************************************/void setup() { // coloca tu código de configuración aquí, para ejecutarse una vez: //client.ubidotsSetBroker("industrial.api.ubidots.com"); // Configura el broker correctamente para la cuenta industrial client.setDebug(true); // Pasa un valor bool verdadero o falso para activar mensajes de depuración Serial.begin(115200); client.wifiConnection(WIFINAME, WIFIPASS); client.begin(callback); }void loop() { // coloca tu código principal aquí, para ejecutarse repetidamente: if(!client.connected()){ client.reconnect(); } float value1 = analogRead(A0); client.add("temperature", value1); client.ubidotsPublish("my-new-device"); client.loop(); delay(5000);}
2. Verifica tu código en el Arduino IDE. Para hacer esto, en la esquina superior izquierda de nuestro Arduino IDE verás el icono de "Marca de verificación"; presiona para verificar tu código.
3. Sube el código en tu “NodeMCU 1.0(ESP12E module)”. Para hacer esto, elige el icono de "flecha derecha" junto al icono de "marca de verificación".
4. Para verificar la conectividad del dispositivo y los datos enviados, abre el monitor serial seleccionando el icono de "lupa" en la esquina superior derecha del Arduino IDE para ver los registros de conectividad.
NOTA: Si no ves ninguna respuesta, intenta desconectar el NodeMCU y luego volver a conectarlo. Asegúrate de que la velocidad en baudios del monitor serial esté configurada en la misma especificada en tu código 115200
.
5. Confirma tus datos en Ubidots. Ahora deberías ver los datos publicados en tu cuenta de Ubidots, ubicados en el dispositivo llamado "my-new-device".
NOTA: Para cambiar el nombre del dispositivo que se actualiza en Ubidots, reemplaza la cadena asignada en el código con la siguiente línea:
client.ubidotsPublish("my-new-device");
3. Recibir (SUSCRIBIR) Datos de Ubidots
Con el siguiente código de ejemplo podrás suscribir un valor desde Ubidots para empezar a controlar cualquier activo que desees.
1. Para comenzar a recibir valores de Ubidots, abre el Arduino IDE y pega el código de ejemplo a continuación. Una vez que hayas pegado el código, asegúrate de asignar los siguientes parámetros:
SSID (Nombre de WiFi) & Contraseña de la conexión de red disponible.
Etiqueta del Dispositivo del dispositivo que contiene la variable que deseas OBTENER.
Etiqueta de la Variable de la variable que deseas OBTENER.
/**************************************** * Incluir Bibliotecas ****************************************/#include "UbidotsESPMQTT.h"/**************************************** * Definir Constantes ****************************************/#define TOKEN "....." // Tu TOKEN de Ubidots#define WIFINAME "....." //Tu SSID#define WIFIPASS "....." // Tu contraseña de WiFi#define DEVICE_LABEL "..." // Coloca aquí la etiqueta de tu dispositivo Ubidots#define VARIABLE_LABEL "..." // Coloca aquí la etiqueta de tu variable de Ubidots Ubidots client(TOKEN);/**************************************** * Funciones Auxiliares ****************************************/void callback(char* topic, byte* payload, unsigned int length) { Serial.print("Mensaje recibido ["); Serial.print(topic); Serial.print("] "); for (int i=0;i<length;i++) { Serial.print((char)payload[i]); } Serial.println();}/**************************************** * Funciones Principales ****************************************/void setup() { // coloca tu código de configuración aquí, para ejecutarse una vez: client.ubidotsSetBroker("industrial.api.ubidots.com"); // Configura el broker correctamente para la cuenta industrial client.setDebug(false); // Pasa un valor bool verdadero o falso para activar mensajes de depuración Serial.begin(115200); client.wifiConnection(WIFINAME, WIFIPASS); client.begin(callback); client.ubidotsSubscribe(DEVICE_LABEL, VARIABLE_LABEL); //Inserta las etiquetas del DataSource y la Variable }void loop() { // coloca tu código principal aquí, para ejecutarse repetidamente: if(!client.connected()){ client.reconnect(); client.ubidotsSubscribe(DEVICE_LABEL, VARIABLE_LABEL); //Inserta las etiquetas del DataSource y la Variable } client.loop(); }
2. Verifica y Sube el código a la placa siguiendo los mismos pasos proporcionados en el paso PUBLICAR anterior.
3. Para verificar la conectividad del dispositivo y los datos que se están recibiendo, abre el monitor serial seleccionando el icono de "lupa" en la esquina superior derecha del Arduino IDE para ver los registros de conectividad.
NOTA: Si no ves ninguna respuesta, intenta desconectar el NodeMCU ESP8266 y luego volver a conectarlo. Asegúrate de que la velocidad en baudios del monitor serial esté configurada en la misma especificada en tu código 115200
.
4. En el monitor serial, podrás ver el último valor recibido en Ubidots de la variable especificada en el firmware.
4. Resumen
Con este simple tutorial puedes PUBLICAR y SUSCRIBIR datos hacia/desde Ubidots con la facilidad del Arduino IDE y un NodeMCU ESP8266. Si deseas encontrar más ejemplos para manejar valores de contexto o marca de tiempo en tu solicitud, consulta la documentación de Ubidots con el ESP8266 haciendo clic aquí.
¡Ahora es momento de crear Dashboards de Ubidots para visualizar tus datos y desplegar tu solución IoT!