Ir al contenido principal
Todas las coleccionesConecta tus dispositivos
Conectar dispositivos Alta-Monnit a Ubidots usando UbiFunctions
Conectar dispositivos Alta-Monnit a Ubidots usando UbiFunctions

Aprende a configurar los dispositivos Alta-Monnit y su gateway para enviar datos a la plataforma de desarrollo de aplicaciones IoT de Ubidots.

Sergio M avatar
Escrito por Sergio M
Actualizado hace más de 3 meses

Los productos ALTA son una solución líder de monitoreo y control remoto de nivel empresarial para negocios e instituciones. Algunos aspectos destacados de los productos ALTA incluyen los productos de 900 MHz que utilizan un espectro de salto de frecuencia (FHSS), y los productos ALTA de 868 y 433 MHz que son ágiles en frecuencia, proporcionando mejor inmunidad a la interferencia RF para ser utilizados en los entornos más exigentes.

Una de las características más destacadas de Monnit es su nueva seguridad de nivel bancario Encrypt-RF™, que cuenta con un intercambio de 256 bits para establecer una clave única global, y un AES-128 CTR para todos los mensajes de datos. Estas características ayudan a mantener la seguridad desde el sensor hasta el gateway, del gateway a la nube, y de vuelta nuevamente.

En este tutorial, demostraremos cómo integrar el Gateway Ethernet ALTA de Monnit con Ubidots, utilizando UbiFunction.

Requisitos

  • Conexión Ethernet con acceso a Internet

  • Gateway Ethernet ALTA de Monnit

  • Sensores ALTA de Monnit (en este ejemplo, utilizaremos un medidor de Temperatura, Humedad y voltaje de 0-5)

  • Cable Mini USB a USB

  • 2 baterías AA

  • Una cuenta de Ubidots con el complemento de UbiFunctions habilitado

Configurando Monnit

Configuración del Gateway/Sensores ALTA de Monnit

1. Para comenzar, inicie sesión en su cuenta premium de iMonnit. Si no tiene una, puede crear una nueva aquí.

2. Agregue el gateway a la cuenta. Para esto, use los campos “ID” y “SC” impresos en el dispositivo.

3. Una vez que el gateway esté agregado, es hora de registrar los dispositivos sensores. Para esto, use los campos “ID” y “SC” impresos en el dispositivo.

Asigne un nombre al sensor, seleccione y complete "cómo se va a utilizar el sensor", y haga clic en continuar.

Configuración del Gateway

4. Ahora, configuremos el Gateway Ethernet ALTA de Monnit:

  • Conecte un cable Ethernet al gateway (asegúrese de que tenga acceso a Internet) y luego encienda el gateway y espere a que los 3 LED frontales se muestren con luz de fondo verde. En caso de que esto no suceda, esta guía de solución de problemas puede ayudar.

  • Vaya a la plataforma iMonnit y verifique si el gateway está enviando mensajes a la plataforma de iMonnit observando el historial de mensajes:

5. Inserte baterías en cualquiera de los dispositivos sensores y verifique si la plataforma confirma que el sensor está conectado.

Creando un Webhook de iMonnit para enviar datos a Ubidots

En este momento podemos estar seguros de que los datos están siendo recibidos en la plataforma de hardware de iMonnit. Ahora necesitamos conectar iMonnit a Ubidots para desarrollar nuestra aplicación de control y/o monitoreo para extraer valor de los sensores de iMonnit.

6. Para conectar ambas plataformas utilizaremos la herramienta Webhook de iMonnit. Vaya al menú desplegable de Nombre de usuario, luego haga clic en la opción “Volver a la vista clásica”.

7. En la parte superior derecha, haga clic en el ícono de "engranaje", y luego en “API/Webhook”. En la pestaña Webhook puede encontrar los parámetros del gateway y del sensor, luego haga clic en “Configurar Webhook”.

8. La herramienta Webhook permite enviar datos continuamente o solo cuando llega un mensaje de sensor, esto depende de usted. En nuestro caso, seleccionaremos la opción “Siempre”.

9. En los pasos a continuación, aprenderemos cómo crear una URL de UbiFunction para recibir datos de iMonnit.

Configuración de Ubidots

Creando una UbiFunction para recibir datos de iMonnit en Ubidots

Una función es una función en la nube de Node.js que se activa cuando se realiza una solicitud GET o POST HTTPS a la URL del Endpoint de la Función. Efectivamente, estamos construyendo un Endpoint URL o API en un único subsistema de Ubidots.

10. En su cuenta de Ubidots, vaya al menú desplegable “Datos” y seleccione “Funciones”, y cree una nueva función utilizando el ícono azul "+" en la esquina superior derecha.

Nota: En caso de que no tenga una cuenta de Ubidots, puede crear una aquí.

11. En su nueva función creada, agregue un nombre y seleccione el método POST.

12. Para hacer su función pública y accesible, haga clic en “Hacerla activa”.

13. Ahora vamos a codificar las funciones de análisis utilizando Node.js. Por defecto, la función recibe “params” como un diccionario de tipo de contenido JSON. La plataforma de iMonnit envía datos como un diccionario de tipo de contenido JSON, como se muestra en la imagen a continuación. Tenga en cuenta que ‘gatewayMessage’ y ‘sensorMessages’ corresponden a los datos del gateway y del sensor, respectivamente:

Puede aprender más sobre la estructura de mensajes de iMonnit en su documentación.

Utilice el siguiente código de muestra para analizar el mensaje del Gateway y los mensajes de los sensores (nombre, fecha del mensaje, señal, datos y batería) para luego hacer una solicitud POST a la nube de Ubidots y obtener los datos de la nube de hardware de Monnit a la nube de software de Ubidots.

Copie y pegue el código de muestra a continuación en su función; modificándolo según lo considere necesario:

var request = require('request-promise');var ubidotsToken = "YOUR_TOKEN"; // Hacer solicitud POST a Ubidotsasync function ubidotsPostRequest(deviceLabel, data) {    var options = {        method: 'POST',        url: 'https://industrial.api.ubidots.com/api/v1.6/devices/' + deviceLabel,        body: data,        json: true,        headers: {            'Content-Type': 'application/json',            'X-Auth-Token': ubidotsToken        }    };    return await request.post(options);}// Combina arreglosconst zip = (arr, ...arrs) => {    return arr.map((val, i) => arrs.reduce((a, arr) => [...a, arr[i]], [val]));}async function main(params) {    var globalPayload = [];    // Se obtiene y envía el nombre del Gateway, la fecha del mensaje, la señal, la batería, llamando a la función ubidotsPostRequest.    var payloadGateway = params.gatewayMessage;    var gate_Time = new Date(payloadGateway.date);    gate_Time = Date.parse(gate_Time);    var device_label = "gateway" + payloadGateway.gatewayID;    let gw_data = {        "device": device_label,        "signal": {"value": payloadGateway.signalStrength, "timestamp": gate_Time},        "battery": {"value": payloadGateway.batteryLevel, "timestamp": gate_Time}    }    globalPayload.push(gw_data);    // Se obtiene y envía el nombre del sensor, la fecha del mensaje, los datos, la señal, la batería, llamando a la función ubidotsPostRequest.    if(params.sensorMessages) {        params.sensorMessages.forEach(element => {            let payload = {}            let sensorTime = new Date(element.messageDate);                sensorTime = Date.parse(sensorTime);            let values = element.plotValues.split("|");            let labels = element.plotLabels.split("|");            zip(labels, values).forEach(e => {                payload[e[0]] = {"value": e[1], "timestamp": sensorTime}            });            payload["battery"] = {"value": element.batteryLevel, "timestamp": sensorTime}            payload["signal"] = {"value":element.signalStrength, "timestamp": sensorTime}            payload["device"] = element.sensorID;            globalPayload.push(payload);        });    }    console.log(JSON.stringify(globalPayload));    for (var payload of globalPayload) {        let devLabel = payload["device"];        delete payload["device"];        var res = await ubidotsPostRequest(devLabel, payload);        console.log(res);    }    return {"Status": "ok"}}


14. (Opcional) Para probar el código, haga clic en “Ejecutar función”. Aparecerá una ventana emergente, donde puede ingresar datos de muestra en el mismo formato que sería enviado por iMonnit.

15. Haga clic en “Ejecutar con esta entrada” para completar la función.

Aparecerá una ventana de consola con los resultados. A continuación se indica la salida esperada cuando las cosas funcionan correctamente - status_code 201 :

La salida “status_code” : 201 es la respuesta de los servidores de Ubidots a su función, lo que significa que los datos fueron recibidos con éxito. Para aprender más sobre los códigos de estado de Ubidots, vea nuestra documentación.

Conectar iMonnit y Ubidots

Finalmente, copia la URL de la función de Ubidots y pégala en la configuración del webhook de iMonnit como “Base URL (requerido)”, luego haga clic en Guardar.

URL de la función de Ubidots:

Configuración del Webhook de iMonnit:

Ahora estamos listos para recibir datos de iMonnit dentro de una UbiFunction.

Resultados

A medida que los datos comienzan a fluir desde los dispositivos ALTA-Monnit hacia iMonnit, se activará un webhook que reenvía todos los datos a la función de Ubidots, con todos los datos apareciendo como variables dentro del Dispositivo en Ubidots.

En menos de una hora pudimos integrar los dispositivos Alta de Monnit con Ubidots para potenciar su solución IoT con la visualización de datos de Ubidots, alertas y una experiencia de datos personalizable para el usuario final.

¿Necesita ayuda para codificar su función? No dude en comunicarse con Ubidots a través del canal de chat en la aplicación o por correo electrónico a support@ubidots.com para obtener más información.

¿Desea compartir una función útil para enseñar a otros cómo conectar los puntos para construir una solución basada en datos? Publique su proyecto en community.ubidots.com y ayude a otros a alcanzar sus objetivos de IoT.

¿Ha quedado contestada tu pregunta?