Ir al contenido principal
Todas las coleccionesConecta tus dispositivos
Integrar el gateway de automatización vNode IoT a Ubidots
Integrar el gateway de automatización vNode IoT a Ubidots

Este artículo explica cómo integrar vNode con Ubidots a través del protocolo MQTT.

Alejandro Mora Chica avatar
Escrito por Alejandro Mora Chica
Actualizado hace más de una semana

¿Qué es vNode Gateway?

vNode es una plataforma de software industrial que combina conectividad industrial con los principales protocolos de IoT para proporcionar una solución plug and play. vNode utiliza módulos de entrada como el núcleo de la solución, lo que le permite leer datos de cualquier fuente a través de diferentes protocolos.

Este artículo será útil para integrar vNode con Ubidots a través del protocolo MQTT.

Requisitos

1. Creando un módulo de instancia MQTT

Una vez que vNode esté en funcionamiento en su computadora, debe crear un módulo cliente MQTT:

  • Abra vNode y dirígete a “Config” en la barra de navegación.

  • Haga clic en “Módulos” en la barra de exploración y cree un nuevo módulo MqttClient con la siguiente información.

Donde:

  • Pausar enlaces mientras no estén disponibles: Esta opción pausa la recepción de datos de otros vNode mientras el módulo está fuera de línea.

  • Inicio: Controla el comportamiento del módulo cuando los servicios de vNode se inician, incluyendo una opción de reinicio.

    • Habilitado: Se inicia automáticamente cuando los servicios de vNode comienzan.

    • Retraso de inicio: Controla el retraso en el inicio.

2. Configuración del registrador y API

Es necesario configurar el registrador y la configuración de la API para el módulo.

Nota: la configuración predeterminada será suficiente.

  • Haga clic en "Módulo MQTT" en la barra de exploración y luego cree una “Nueva Conexión” en la ventana del modelo.

Para configurar la conexión con Ubidots, es necesario modificar la siguiente información:

  • Autenticación: Es la forma en que MQTT se autentica con el broker.

    • Modo de autenticación: Contraseña.

    • Nombre de usuario: será el TOKEN de su cuenta de Ubidots.

    • Contraseña: TOKEN.

  • Opciones de conexión: Opciones para conectarse al broker.

    • URL del broker: industrial.api.ubidots.com

    • ID del cliente: Este campo no puede estar vacío, sin embargo, puede poner cualquier ID de cliente (en este caso, usamos una combinación de letras y números aleatorios).

  • Agentes: Lista de todos los agentes que utilizan esta conexión. El agente se encarga de definir si enviar o recibir datos. Los agentes pueden ser un Publicador, un Escritor o un Suscriptor.

3. Enviar datos desde vNode

En este caso, debe crear un agente “Nuevo Publicador”, que es responsable de enviar datos al broker MQTT. En este caso, también puede usar la información predeterminada con las siguientes modificaciones:

  • Publicador:

    • Intervalo de envío: 10000 milisegundos. Es el intervalo entre cada envío de datos al broker MQTT.

    • Tema: /v1.6/devices/<deviceLabel>. La dirección a la que desea enviar la información. Necesita reemplazar <deviceLabel> con el identificador único del dispositivo de Ubidots.

    • QoS: 1. Especifica el QoS del mensaje publicado.

  • Formato del mensaje: Cómo se analizará el mensaje entrante.

    • Serialización: Personalizada.

    • Script: <javascript>. es el formato en el que Ubidots recibe datos.

Para modificar el código JavaScript predeterminado, haga clic en el símbolo "</>" y pegue el siguiente código:

$.logger.debug("Parsing %d events", $.input.length);$.logger.info("Parsing message: %j", $.input);// Declare a variable to create the JS object wanted.const response = {};// Iterate over all events in $.inputfor (const event of $.input) {   // Event data:   // {   // tagName: TAG_ADDRESS, // This is the path of the tag   // data: {   // value: TAG_VALUE, // This is the value used to update the tag. It can be any value.   // quality: TAG_QUALITY, // This is the quality of the tag for this event. It is a number from 0 (Bad) to 192 (Good).   // ts: EPOCH_TIMESTAMP // This values is the timestamp of the event. It is a number in epoch format with milliseconds.   // }   // }   // Convert to:   // {   // TAG_ADDRESS: {   // "value": TAG_VALUE,   // "timestamp": EPOCH_TIMESTAMP   // }   // }   let tmpList = response[event.tagName] || [];   tmpList.push({       "value": event.data.value,       "timestamp": event.data.ts,       "context": {           "quality": event.data.quality       }   });   response[event.tagName] = JSON.parse(JSON.stringify(tmpList));}$.logger.info("Response: %j", response);// Send the output as string. JSON.stringify converts an JS object into a JSON string representation.$.output = JSON.stringify(response);
  • Filtro de etiquetas: Se utiliza para filtrar qué etiquetas se ven afectadas por un publicador o escritor específico. Cree un filtro de etiquetas para el publicador con la información predeterminada.

4. Configurar las etiquetas para el Publicador

Al usar MqttClient, las etiquetas deben configurarse por separado, en palabras simples, las etiquetas serán las variables que se crearán en Ubidots. Así que puede crear tantas etiquetas como variables desee enviar a Ubidots. En este caso, para tener más claridad en las etiquetas, creamos un grupo de etiquetas para el publicador y otro para el suscriptor. En el grupo correspondiente al publicador, creamos la nueva etiqueta.

Para crear las etiquetas, haga clic en "Etiquetas":

  • Navegue a “Config” en la barra de navegación.

  • Haga clic en “Etiquetas” en la barra de exploración y cree un nuevo grupo.

  • Haga clic derecho en el grupo que ha creado y cree una nueva etiqueta.

Después de crear la etiqueta, habilite la simulación seleccionando “Sí” en la casilla.

Nota: Puede modificar el nombre del grupo y la etiqueta como prefiera.

5. Recibir datos de Ubidots

En este caso, debe crear un agente “Suscriptor”, que es responsable de recibir datos del broker MQTT. En este caso, seleccionaremos una variable que está en el mismo dispositivo que el publicador, para ver los resultados en la misma pantalla. Como en los puntos anteriores, también puede usar la información predeterminada con las siguientes modificaciones:

Suscriptor:

◦ Tema: /v1.6/devices/<deviceLabel>/<variableLabel>. La dirección de la que provienen los datos de este Suscriptor. Necesita reemplazar <deviceLabel> y <variableLabel> con el identificador único del dispositivo y variable de Ubidots.

◦ QoS: 1. Especifica el QoS (Calidad de servicio) para la suscripción al broker.

• Mantener vivo: En este caso no activamos esta opción. Si desea verificar si el dispositivo sigue enviando datos, o si el dispositivo se ha detenido, active esta opción.

• Formato del mensaje: Cómo se analizará el mensaje entrante.

◦ Codificación: UFT8.

◦ Compresión: Ninguna

◦ Serialización: JSON

◦ Script: <javascript>. es el formato en el que Ubidots recibe datos.

• Analizador de datos:

◦ Tipo: Personalizado

• Opciones del analizador:

◦ Script: <javascript>. es el formato en el que Ubidots recibe datos.

Para modificar el código JavaScript predeterminado, haga clic en el símbolo "</>" y pegue el siguiente código:

$.logger.info("Topic is %s", $.topic); $.logger.info("input is %j", $.input); // Declare a variable to create the JS object wanted. const response = []; response.push({     tag: $.topic,     value: $.input.value,     quality: 192,     ts:  $.input.timestamp   });    $.output = response;

Nota: La calidad corresponde a un número, entre 0 y 255. Donde las calidades de etiqueta entre 0 y 63 se consideran malas, de 64 a 127 inciertas, y de 192 a 255 buenas.

6. Configurar las etiquetas para el Suscriptor

En la etiqueta para el Suscriptor, también puede usar la información predeterminada con las siguientes modificaciones:

Acceso del cliente: Leer y Escribir (Para recibir y enviar datos)

• Fuente:

◦ Habilitado: Sí

◦ Tipo de módulo: MqttClient

◦ Nombre del módulo: MQTT

Config:

◦ Suscriptor: Selecciona el suscriptor que proporcionará datos a esta etiqueta. El formato es: Conexión/Suscriptor.

◦ Dirección de etiqueta: /v1.6/devices/vnode/pressure. Determina un alias para la etiqueta para que pueda ser referenciada por él, en lugar de su ruta completa. Si se proporciona, la etiqueta solo puede ser referenciada usando este alias.​

7. Verificar si el módulo está funcionando

Una vez que haya guardado todos los cambios de configuración, verificaremos que el módulo esté en funcionamiento. Siga estos pasos:

  • Vaya a "Sistema" en la barra de navegación y haga clic en “Diagnósticos”.

  • Luego haga clic en “Módulos” y verifique si MQTT está en funcionamiento.

Después de confirmar que MQTT está en funcionamiento, proceda con los siguientes pasos:

  • Vaya a “Registros en tiempo real” en la barra de exploración.

  • Active la casilla de “Habilitado”.

  • Seleccione el nivel DEBUG y el módulo MQTT para verificar la comunicación con Ubidots. (Aquí puede ver la información enviada a Ubidots)

Ahora puede ver el dispositivo que incluye ambas variables del suscriptor y publicador en su cuenta de Ubidots, como en la siguiente imagen.

La variable que se ha creado en el dispositivo que seleccionó en el paso 2 en su cuenta de Ubidots se mostrará de la siguiente manera:

Para verificar que el suscriptor está funcionando correctamente, verá un dato como este en los registros en tiempo real, que muestra el valor que el suscriptor recibe de Ubidots:

Para verificar que puede acceder y modificar ese valor a través de la etiqueta,

• Vaya a “Datos” en la barra de navegación y haga clic en “Tiempo Real”

• Luego haga clic en “Etiquetas de Suscriptor”.

Allí, encontraremos la etiqueta y el valor. Si hacemos clic derecho en la etiqueta y seleccionamos “Escribir valor”, modificaremos el valor actual de la variable y se mostrará en Ubidots.

¿Ha quedado contestada tu pregunta?