Ir al contenido principal
Todas las coleccionesConecta tus dispositivos
Conectar un NodeMCU ESP8266 a Ubidots a través de TCP/UDP
Conectar un NodeMCU ESP8266 a Ubidots a través de TCP/UDP

Aprende a conectar el NodeMCU ESP8266 a la Plataforma de Desarrollo de Aplicaciones Ubidots a través de TCP/UDP.

Sergio M avatar
Escrito por Sergio M
Actualizado hace más de una semana

El Kit de Desarrollo NodeMCU se basa en el ESP8266 e integra GPIO, PWM, IIC, 1-Wire y ADC en una sola placa.

Siguiendo esta guía, podrás POST y GET datos a/desde Ubidots utilizando el módulo NodeMCU ESP8266 en solo un par de minutos!

Requisitos

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.

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 Herramientas > Placa NodeMCU 1.0(ESP12E module)”.

3. Descarga e instala la biblioteca Ubidots. Para una explicación detallada de cómo instalar bibliotecas utilizando el Arduino IDE, consulta esta guía.

2. Enviando (POST) Datos a Ubidots

Con el siguiente código de ejemplo podrás publicar lecturas tomadas del pin ANALÓGICO del NodeMCU ESP8266.

1. Para comenzar a publicar valores en 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.

  • Código de ejemplo TCP

/**************************************** * Incluir Bibliotecas ****************************************/#include "Ubidots.h"/**************************************** * Definir Instancias y Constantes ****************************************/const char* UBIDOTS_TOKEN = "...";  // Pon aquí tu TOKEN de Ubidotsconst char* WIFI_SSID = "..."; // Pon aquí tu SSID de Wi-Ficonst char* WIFI_PASS = "..."; // Pon aquí tu contraseña de Wi-FiUbidots ubidots(UBIDOTS_TOKEN, UBI_TCP);/**************************************** * Funciones Auxiliares ****************************************/// Pon aquí tus funciones auxiliares/**************************************** * Funciones Principales ****************************************/void setup() {  Serial.begin(115200);  ubidots.wifiConnect(WIFI_SSID, WIFI_PASS);  // ubidots.setDebug(true);  // Descomenta esta línea para imprimir mensajes de depuración}void loop() {  float value1 = random(0, 9) * 10;  float value2 = random(0, 9) * 100;  float value3 = random(0, 9) * 1000;  ubidots.add("Variable_Name_One", value1);  // Cambia por el nombre de tu variable  ubidots.add("Variable_Name_Two", value2);  ubidots.add("Variable_Name_Three", value3);  bool bufferSent = false;  bufferSent = ubidots.send();  // Enviará datos a una etiqueta de dispositivo que coincida con el Id del dispositivo  if (bufferSent) {    // Haz algo si los valores se enviaron correctamente    Serial.println("Valores enviados por el dispositivo");  }  delay(5000);}
  • Código de ejemplo UDP

/**************************************** * Incluir Bibliotecas ****************************************/#include "Ubidots.h"/**************************************** * Definir Instancias y Constantes ****************************************/const char* UBIDOTS_TOKEN = "...";  // Pon aquí tu TOKEN de Ubidotsconst char* WIFI_SSID = "..."; // Pon aquí tu SSID de Wi-Ficonst char* WIFI_PASS = "..."; // Pon aquí tu contraseña de Wi-FiUbidots ubidots(UBIDOTS_TOKEN, UBI_UDP);/**************************************** * Funciones Auxiliares ****************************************/// Pon aquí tus funciones auxiliares/**************************************** * Funciones Principales ****************************************/void setup() {  Serial.begin(115200);  ubidots.wifiConnect(WIFI_SSID, WIFI_PASS);  // ubidots.setDebug(true);  // Descomenta esta línea para imprimir mensajes de depuración}void loop() {  float value1 = random(0, 9) * 10;  float value2 = random(0, 9) * 100;  float value3 = random(0, 9) * 1000;  ubidots.add("Variable_Name_One", value1);  // Cambia por el nombre de tu variable  ubidots.add("Variable_Name_Two", value2);  ubidots.add("Variable_Name_Three", value3);  bool bufferSent = false;  bufferSent = ubidots.send();  // Enviará datos a una etiqueta de dispositivo que coincida con el Id del dispositivo  if (bufferSent) {    // Haz algo si los valores se enviaron correctamente    Serial.println("Valores enviados por el dispositivo");  }  delay(5000);}

2. Verifica tu código dentro del Arduino IDE. Para hacer esto, en la esquina superior izquierda de nuestro Arduino IDE verás el ícono de "Marca de Verificación"; presiónalo para verificar tu código.

3. Sube el código a tu “NodeMCU 1.0(ESP12E module)”. Para hacer esto, elige el ícono de "flecha derecha" al lado del ícono de "marca de verificación".

4. Para verificar la conectividad del dispositivo y los datos enviados, abre el monitor serial seleccionando el ícono de "lupa" en la esquina superior derecha del Arduino IDE para ver los registros de conectividad.

NOTA: Si no se ve ninguna respuesta, intenta desconectar el NodeMCU y luego volver a conectarlo. Asegúrate de que la velocidad de baudios del monitor serial esté configurada a la misma que se especifica en tu código 115200.

5. Confirma tus datos en Ubidots. Ahora deberías ver los datos publicados en tu cuenta de Ubidots.

3. Recibiendo (GET) Datos de Ubidots

Con el siguiente código de ejemplo podrás obtener un valor de Ubidots para comenzar a controlar cualquier activo que desees.

1. Para comenzar a obtener 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:

  • Código de ejemplo TCP:

/**************************************** * Incluir Bibliotecas ****************************************/#include "Ubidots.h"/**************************************** * Definir Constantes ****************************************/const char* UBIDOTS_TOKEN = "...";  // Pon aquí tu TOKEN de Ubidotsconst char* WIFI_SSID = "..."; // Pon aquí tu SSID de Wi-Ficonst char* WIFI_PASS = "..."; // Pon aquí tu contraseña de Wi-Ficonst char* DEVICE_LABEL_TO_RETRIEVE_VALUES_FROM = "weather-station";  // Reemplaza por la etiqueta de tu dispositivo                     const char* VARIABLE_LABEL_TO_RETRIEVE_VALUES_FROM = "humidity";       // Reemplaza por la etiqueta de tu variableUbidots ubidots(UBIDOTS_TOKEN, UBI_TCP);/**************************************** * Funciones Auxiliares ****************************************/// Pon aquí tus funciones auxiliares/**************************************** * Funciones Principales ****************************************/void setup() {  Serial.begin(115200);  ubidots.wifiConnect(WIFI_SSID, WIFI_PASS);  // ubidots.setDebug(true); //Descomenta esta línea para imprimir mensajes de depuración}void loop() {  /* Obtener último valor de una variable como float usando HTTP */  float value = ubidots.get(DEVICE_LABEL_TO_RETRIEVE_VALUES_FROM, VARIABLE_LABEL_TO_RETRIEVE_VALUES_FROM);  // Evalúa los resultados obtenidos  if (value != ERROR_VALUE) {    Serial.print("Valor:");    Serial.println(value);  }  delay(5000);}

2. Verifica & Sube el código a la placa siguiendo los mismos pasos proporcionados en el paso POST anterior.

3. Para verificar la conectividad del dispositivo y los datos que se están recibiendo, abre el monitor serial seleccionando el ícono de "lupa" en la esquina superior derecha del Arduino IDE para ver los registros de conectividad.

NOTA: Si no se ve ninguna respuesta, intenta desconectar el NodeMCU y luego volver a conectarlo. Asegúrate de que la velocidad de baudios del monitor serial esté configurada a la misma que se especifica 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 POST & GET datos a/desde Ubidots con la facilidad del Arduino IDE y un NodeMCU ESP8266. Si deseas encontrar más ejemplos para manejar valores de contexto o timestamp en tu solicitud, consulta la documentación de Ubidots con el ESP8266 haciendo clic aquí.

¡Ahora es el momento de crear Dashboards de Ubidots para visualizar tus datos y desplegar tu solución IoT! ¡Feliz Hackeo! :)

Otros lectores también han encontrado útil...

¿Ha quedado contestada tu pregunta?