Ir al contenido principal
Todas las coleccionesConecta tus dispositivos
Conectar un RedBear Duo a Ubidots a través de MQTT
Conectar un RedBear Duo a Ubidots a través de MQTT

Aprende a configurar un RedBear Duo para SUSCRIBIR/PUBLICAR utilizando la biblioteca de Ubidots y el IDE de Particle a través de MQTT.

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

El RedBear Duo es un pequeño kit de desarrollo de hardware Wi-Fi y BLE que viene con el firmware de Particle por defecto. Esto nos permite utilizar el entorno de desarrollo de Particle y disfrutar de su facilidad de uso, ejemplos de la comunidad y bibliotecas disponibles.

Siguiendo esta guía, podrás PUBLICAR y SUBSCRIBIR datos a/desde Ubidots utilizando el módulo RedBear Duo en solo un par de minutos!

Requisitos

Paso a Paso

  1. Configuración del Dispositivo

  2. Reclama tu RedBear Duo en Particle IDE

  3. Crea una nueva APP e incluye la Biblioteca de Ubidots

  4. SUBSCRIBIR a una Variable

  5. PUBLICAR Valores a un Dispositivo

  6. Resumen

1. Configuración del Dispositivo

1. Conecta el RedBear Duo a un ordenador a través del puerto USB utilizando un cable USB.

2. Por defecto, el RedBear Duo trae "Setup Firmware" que te permite verificar la versión de la placa RedBear, el ID del dispositivo de la placa. Además, podrás configurar las credenciales de WiFi.

Según tu sistema operativo, por favor consulta los siguientes pasos:

  • Usuarios de Windows

1. Descarga e instala el controlador Silicon Labs CP2102 para Windows.
2. Ve a Administración de Equipos y busca Silicon Labs CP210x USB to UART Bridge bajo Puertos (COM & LPT), y toma nota del número COM entre paréntesis.
3. Abre PuTTY, selecciona Serial para la conexión, ingresa el puerto COM de Silicon y coloca 115200 para la velocidad; luego haz clic en el botón Abrir para completar este paso.

NOTA: Si no te gusta Putty, siéntete libre de elegir otras herramientas de comunicación soportadas por Windows, como HyperTerminal o TeraTerm.

  • Usuarios de MacOSX

1. Instala "screen" siguiendo las instrucciones proporcionadas en esta guía.
2. Con screen correctamente instalado, ejecuta el siguiente comando en la terminal del ordenador.

NOTA: El xxx ubicado al final del comando se refiere al Puerto Serial asignado al Red. Basado en esto, puedes reemplazar el xxx con el puerto asignado a la placa.

screen /dev/ttyxxx
  • Usuarios de Linux

1. Instala "screen" siguiendo las instrucciones proporcionadas en esta guía.
2. Con screen correctamente instalado, ejecuta el siguiente comando en la terminal del ordenador.

NOTA: El xxx ubicado al final del comando se refiere al Puerto Serial asignado al Red. Basado en esto, puedes reemplazar el xxx con el puerto asignado a la placa.

screen /dev/ttyxxx

3. Ahora, escribe los siguientes comandos en la terminal para configurar la placa correctamente:

  • [OPCIONAL] Escribe "v" para verificar la versión de RedBear.

  • Escribe "i" para imprimir el ID del Dispositivo; el ID del Dispositivo es el que se necesita para reclamar el dispositivo en el Particle IDE, así que por favor ten esto a mano ya que se usará más tarde.

  • Escribe "w" para establecer las credenciales de WiFi. En este punto, la placa pedirá el SSID (nombre de la red), tipo de seguridad y contraseña, así que por favor asigna las credenciales de la red a la que te conectarás.

NOTA: Para poder configurar las credenciales de WiFi en la placa, esto debe hacerse mientras la placa está en "Modo de Escucha". Para poner la placa en modo de escucha, presiona y mantén presionado el botón "SETUP" durante al menos 3 segundos.

Si la configuración de tu red WiFi se ingresa correctamente, el RedBear Duo saldrá del Modo de Escucha e intentará conectarse al punto de acceso a Internet. El LED RGB debería parpadear en verde si la conexión se establece correctamente con Internet. Si el Duo se conecta al punto de acceso con éxito, realizará un reinicio suave y se reiniciará. De lo contrario, el Duo volverá a entrar en Modo de Escucha y esperará que vuelvas a ingresar las credenciales de Wi-Fi.

Si estás usando PuTTY u otro terminal serial, cuando el Duo realice un reinicio, se desconectará del terminal, posiblemente desconectándose del puerto serial correcto. Si esto sucede, necesitas cerrar el puerto serial, luego presionar el botón RESET de la placa, y luego volver a abrir el puerto serial para restaurar la comunicación con el Duo.

2. Reclama tu RedBear Duo en Particle IDE

1. Ve a Particle IDE.

2. Haz clic en Dispositivos –> AÑADIR NUEVO DISPOSITIVO.

3. Asigna el ID del Dispositivo que guardaste en el paso anterior (Configuración del Dispositivo). Luego haz clic en RECLAMAR UN DISPOSITIVO.

Ahora, el RedBear Duo está agregado al Particle IDE.

3. Crea una nueva APP e incluye la Biblioteca de Ubidots

1. Después de reclamar tu RedBear Duo en el Particle IDE y configurar tu cuenta de Ubidots, vamos a la Web IDE de Particle y "Crear Nueva App."

Para detalles adicionales sobre cómo "Crear Nueva App," simplemente haz clic aquí y sigue el sencillo proceso de 3 pasos.

2. Con la nueva app creada, ahora debes incluir la Biblioteca de Ubidots en la app creada para poder trabajar con tus dispositivos RedBear y Ubidots.

Para incluir la biblioteca, ve a la pestaña de bibliotecas y encuentra el conjunto de bibliotecas de Ubidots, específicamente la biblioteca UBIDOTSMQTT. Asegúrate de agregar la última versión de la biblioteca.

Luego, haz clic en INCLUIR EN APP. Y regresa a la app previamente creada.

Esta biblioteca crea por defecto un nuevo Dispositivo utilizando el ID del Dispositivo RedBear de tu hardware RedBear. El nombre de este dispositivo será "Particle" por defecto, y la etiqueta será tu ID del Dispositivo RedBear.

4. SUSCRIBIR a una Variable

Para suscribirte a una variable, necesitas especificar tu dispositivo y las etiquetas de las variables como argumentos de entrada para la función ubidotsSubscribe(). El valor entrante será devuelto por la biblioteca MQTT en la variable de carga. Por defecto, la función suscrita solo obtiene el último valor de la variable a la que está suscrita.

/**************************************** * Incluir Bibliotecas ****************************************/#include "UbidotsMQTT.h"/**************************************** * Definir Constantes ****************************************/#ifndef TOKEN#define TOKEN "Your TOKEN"  // Agrega aquí tu TOKEN de Ubidots#endif/**************************************** * Funciones Auxiliares ****************************************/void callback(char* topic, byte* payload, unsigned int length) {    Serial.print("Mensaje recibido [");    Serial.print(topic);    Serial.print("] ");    Serial.println("carga obtenida del servidor:");    for (int i=0;i<length;i++) {        Serial.print((char)payload[i]); // imprime la respuesta del broker para fines de depuración    }    // Algunas cosas que hacer con la carga obtenida        //   //    Serial.println();}/**************************************** * Instancias ****************************************/Ubidots client(TOKEN, callback);/**************************************** * Funciones Principales ****************************************/void setup() {    Serial.begin(115200);    client.initialize();    // Descomenta esta línea si tienes una cuenta de Ubidots    //client.ubidotsSetBroker("industrial.api.ubidots.com");    if(client.isConnected()){        // Inserta como primer parámetro el dispositivo al que suscribirte y como segundo la etiqueta de la variable        client.ubidotsSubscribe("device-to-subscribe", "water-level");     }}void loop() {    if(!client.isConnected()){        client.reconnect();    }    // Bucle del cliente para publicar y mantener la conexión    client.loop();    delay(1000);}

5. PUBLICAR Valores a un Dispositivo

Para publicar valores en Ubidots, primero debes llamar a la función add() para almacenar los valores a enviar (máx. 5 valores por solicitud), así que inserta como parámetros para la función add() la etiqueta de la variable, el contexto y la marca de tiempo (estos últimos dos son opcionales):

/**************************************** * Incluir Bibliotecas ****************************************/#include "UbidotsMQTT.h"/**************************************** * Definir Constantes ****************************************/#ifndef TOKEN#define TOKEN "Your TOKEN"  // Agrega aquí tu TOKEN de Ubidots#endif/**************************************** * Funciones Auxiliares ****************************************/void callback(char* topic, byte* payload, unsigned int length) {    Serial.print("Mensaje recibido [");    Serial.print(topic);    Serial.print("] ");    Serial.println("carga obtenida del servidor:");    for (int i=0;i<length;i++) {        Serial.print((char)payload[i]); // imprime la respuesta del broker para fines de depuración    }    // Algunas cosas que hacer con la carga obtenida        //   //    Serial.println();}/**************************************** * Instancias ****************************************/Ubidots client(TOKEN, callback);/**************************************** * Funciones Principales ****************************************/void setup() {    Serial.begin(115200);    client.initialize();    // Descomenta esta línea si tienes una cuenta de Ubidots    //client.ubidotsSetBroker("industrial.api.ubidots.com");}void loop() {    if(!client.isConnected()){        client.reconnect();    }    // Rutina de publicación, si el dispositivo y las variables no están creadas, se crearán    float value = 1;    Serial.println("Enviando valor");    client.add("test-var-1", value); // Inserta como primer parámetro tu etiqueta de variable    client.add("test-var-2", value, "\"lat\":10.302, \"lng\":2.9384"); // Agrega valor con contexto    client.add("test-var-3", value, NULL, 1492445109); // Agrega valor con marca de tiempo personalizada    client.ubidotsPublish("test-device"); // Inserta tu etiqueta de dispositivo donde se almacenarán los valores en Ubidots    // Bucle del cliente para publicar y mantener la conexión    client.loop();    delay(1000);}

6. Resumen

Con este simple tutorial, puedes PUBLICAR y SUBSCRIBIR datos a/desde Ubidots con la facilidad del Particle IDE y la placa RedBear Duo.

¡Ahora es tiempo de crear Tableros de Ubidots para visualizar tus datos y desplegar tu solución IoT! ¡Feliz desarrollo! :)

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

¿Ha quedado contestada tu pregunta?