Los dispositivos NCD ofrecen a sus usuarios una gran variedad de configuraciones, como la Tasa de Datos de Salida (ODR), la Duración de Muestreo que determina el período que toma cada ciclo de medición, el Intervalo de Transmisión de Datos, entre muchos otros.
El usuario puede cambiar y configurar fácilmente estas configuraciones en el sensor de vibración industrial lanzando el servicio integrado de Node-RED; sin embargo, el usuario necesitaría estar en la misma red local que dicho dispositivo, o configurar una conexión remota a dicha red desde una ubicación diferente.
En el siguiente artículo, aprenderás cómo establecer diferentes parámetros para tu sensor de vibración industrial utilizando Ubidots, ¡dándote la facilidad de configurar tu dispositivo NCD desde cualquier parte del mundo gracias a Ubidots!
Requisitos
Una cuenta activa de Ubidots
Cualquiera de los siguientes Sensores de Vibración Industrial NCD:
1. Obtén la dirección IP de la Computadora de Borde IoT
Por favor, sigue el primer paso de la siguiente guía técnica; una vez que conozcas la dirección IP de tu dispositivo, procede al siguiente paso.
2. Importar y configurar el flujo de Node-RED en la Computadora de Borde IoT NCD
Para completar el siguiente paso, tu Computadora de Borde IoT NCD necesita tener instalados los nodos MQTT de Ubidots. Visita el siguiente enlace para aprender cómo instalar dichos nodos en el Node-red de tu Computadora de Borde IoT.
Se necesitarán dos flujos diferentes: uno para gestionar el OTA de forma remota y otro para gestionar/leer los nodos del Sensor en consecuencia.
El flujo de Node-RED desarrollado por el equipo de Ubidots específicamente para esta implementación necesita ser importado; sin embargo, no puedes importarlo de la manera convencional de Node-RED porque eso sobrescribiría algunos IDs de nodos que deben fijarse a ciertos valores, de lo contrario, el flujo sería inútil. Por eso, el flujo se importará de la siguiente manera:
1. Usa cualquier servicio de acortamiento de URL de tu preferencia para la siguiente URL:
https://gist.githubusercontent.com/ubi-gists/25ab0e2ffeecfcfef6cd66d402fa214f/raw/e9d3d8bc6be0cab96ebb3baeb8f5b9801f11774b/NCD_Vibration_Sensors_OTA_flows.json
Este artículo utiliza bitly, así que la URL obtenida se verá así:
https://bit.ly/3YuPja2
Copia esta URL en un bloc de notas porque tendrás que escribirla manualmente en pasos posteriores.
2. Lanza tu navegador web preferido y escribe la dirección IP de la Computadora de Borde IoT en la barra de búsqueda. Luego, haz clic en la opción Terminal. Esto te llevará a la shell integrada de la Computadora de Borde IoT.
Cuando se te pida un nombre de usuario y una contraseña, ingresa las credenciales predeterminadas:
nombre de usuario: root
contraseña: ncdio
El EBDF será diferente en tu dispositivo, porque esto corresponde a los últimos 4 dígitos de la dirección MAC de tu dispositivo.
Para "importar" el flujo de Node-RED para esta aplicación, el archivo .node-red/flows_NCDGateway-xxxx.json necesita ser reemplazado con el flujo real. Para hacerlo, ejecuta el siguiente comando, pero primero cambia los valores como se muestra a continuación:
<PATH>: Esta es la ruta de la URL acortada obtenida previamente.
<Last4MAC>.json: Reemplaza esto con los últimos 4 dígitos de la dirección MAC de tu Computadora de Borde IoT.
curl 'https://bit.ly/<PATH>' -o ~/.node-red/flows_NCDGateway-<Last4MAC>.json -L
En este caso, dado que la URL de ejemplo obtenida para este artículo es https://bit.ly/3YuPja2 y los últimos 4 dígitos de la dirección MAC del dispositivo son EBDF, entonces, el comando a ejecutar es:
curl 'https://bit.ly/3YuPja2' -o ~/.node-red/flows_NCDGateway-EBDF.json -L
Espera hasta que la descarga termine y luego reinicia el servicio de Node-RED ejecutando el siguiente comando:
/etc/init.d/nodered restart
Espera hasta que el proceso de reinicio termine y lanza Node-RED en la Computadora de Borde IoT escribiendo su dirección IP seguida de :1880, en la barra de búsqueda de tu navegador web preferido. Es decir, si la dirección IP de tu dispositivo es 192.168.22.112, entonces tendrás que escribir 192.168.22.112:1880. Después de hacerlo, se lanzará Node-RED:
Ve al flujo Gestor de Datos y Dispositivos. Haz doble clic en el nodo ubidots_in y establece allí tu Token de Ubidots.
En el mismo flujo, ve al nodo llamado Asignar Token aquí y haz doble clic en él; allí, establece tu Token de Ubidots en el campo mostrado:
Ahora, ve al flujo Gestor OTA y busca el nodo llamado Suscribirse a variables OTA y haz doble clic en él; luego, establece tu Token de Ubidots en el campo mostrado:
3. Importar el Dashboard
La Computadora de Borde IoT NCD tiene tres modos de operación diferentes, a saber:
Datos procesados
Datos en bruto
Procesados + En bruto a Pedido
La aplicación en Node-RED presentada anteriormente, permite a los usuarios de Ubidots cambiar entre esos modos de operación, así como otras configuraciones, de manera fácil utilizando un Widget de Entrada Manual.
Primero, necesitarás crear manualmente algunas variables en Ubidots para el Sensor de Nodo NCD que deseas operar a través del dashboard. Ve a tu dispositivo en Ubidots y crea dos variables en bruto con los nombres como sigue:
OTA
Solicitud en Bruto
Si tienes más de un nodo de sensor, tendrás que hacer esto para cada uno.
Ubidots tiene un dashboard preconstruido con todos los elementos requeridos que permiten al usuario operar los parámetros OTA. Para importar dicho dashboard, ejecuta el siguiente comando en tu PC reemplazando tu Token de Ubidots en la línea X-Auth-Token:<YOUR-UBIDOTS-TOKEN>. Es decir, si tu Token de Ubidots es BBB-FFJJUkji, entonces, dicha línea debería ser X-Auth-Token:BBB-FFJJUkji
curl -X POST 'https://industrial.api.ubidots.com/api/v2.0/dashboards/_/import_models/' \ -H 'X-Auth-Token:BBFF-IONay56PteRbxIMQbk4ppZ81VFX7yHGbZe5CTfmgEwZyqhbWnVbcVC9' \ -H 'Content-Type:application/json' \ -d '[ { "__model__": "dashboard", "label": "ncd-ota", "name": "NCD OTA", "description": "", "tags": [], "context": { "size": "auto", "alignment": "center", "isDynamic": true, "displayName": "name", "__customStyle": null, "dashboardType": "one-device", "defaultDevice": "~00:13:a2:00:41:ee:32:a8", "hasBackground": false, "imageSettings": { "isUrlValue": false }, "temporalxaxis": "dynamic", "filterSettings": {}, "hideDatePicker": false, "widgetsOpacity": 1, "floatingWidgets": false, "timestampFormat": "MM/DD/YYYY HH:mm", "deviceFilterType": "device_group", "deviceFilterEntityId": "~vibration-sensors", "widgetVerticalSpacing": 10, "hideHeaderFooterWidgets": false, "widgetHorizontalSpacing": 10, "prospector_is_filters_last_value_alt": false }, "timeframe": { "endDate": "now/d", "startDate": "now-7d" }, "isEditable": true, "order": 1 }, { "__model__": "widget", "name": "Request Raw", "position": { "h": 6, "w": 6, "x": 10, "y": 8 }, "type": "manual_input", "settings": { "time": [], "dataFetch": "inherit", "dataEntities": { "devices": [], "variables": [ { "span": null, "step": 1, "type": "last_value", "label": "request-raw", "maxValue": "1", "minValue": "1", "inputLabel": "Type in 1", "aggregationMethod": "last_value" } ] } }, "uxSettings": { "fontFamily": "Open Sans", "buttonLabel": "Request Raw Packet", "__customStyle": null } }, { "__model__": "widget", "name": "Device OTA", "position": { "h": 18, "w": 10, "x": 0, "y": 0 }, "type": "manual_input", "settings": { "time": [], "dataFetch": "inherit", "dataEntities": { "devices": [], "variables": [ { "span": null, "type": "context", "label": "ota", "contextKey": "output_data_rate_101", "inputLabel": "Output Data Rate (Hz) [50, 100, 200, 400, 800, 1600, 3200, 6400, 12800, 25600]", "aggregationMethod": "last_value" }, { "span": null, "type": "context", "label": "ota", "contextKey": "sampling_duration_101", "inputLabel": "Sampling Duration [This number multiplies 50ms]", "aggregationMethod": "last_value" }, { "span": null, "type": "context", "label": "ota", "contextKey": "sampling_interval_101", "inputLabel": "Data Transmission Interval (minutes) [1, 5, 10, 15. 20, 30, 60, 120, 180]", "aggregationMethod": "last_value" }, { "span": null, "type": "context", "label": "ota", "contextKey": "mode_80", "inputLabel": "Raw or FFT (1,2) [1 = Raw, 2 = Processed+Raw on demand]", "aggregationMethod": "last_value" }, { "span": null, "type": "context", "label": "ota", "contextKey": "otaAllDevices", "inputLabel": "Global OTA", "aggregationMethod": "last_value" } ] } }, "uxSettings": { "fontFamily": "Open Sans", "buttonLabel": "Send OTA Command", "__customStyle": null } }, { "__model__": "widget", "name": "OTA Status", "position": { "h": 8, "w": 6, "x": 10, "y": 0 }, "type": "indicator", "settings": { "colors": [ { "color": "#effc2e", "range": 0, "message": "OTA request Sent" }, { "color": "#f27e07", "range": 1, "message": "OTA request received" }, { "color": "#038419", "range": "2", "message": "OTA performed" } ], "dataFetch": "inherit", "dataEntities": { "variables": [ { "span": "inherit", "color": { "a": 1, "b": 233, "g": 230, "r": 201 }, "label": "ota", "variableColor": { "a": 1, "b": 233, "g": 230, "r": 201 }, "aggregationMethod": "last_value" } ] }, "decimalPoints": null }, "uxSettings": { "dataFormat": "auto", "circleDesign": "large", "displayLabel": false, "__customStyle": null, "imageSettings": { "isUrlValue": false }, "timestampFormat": null } } ]'
Después de ejecutar el comando anterior, se creará un nuevo dashboard llamado NCD OTA en tu cuenta de Ubidots.
4. Cambiar la Configuración de la Computadora de Borde IoT desde Ubidots
Ve al dashboard recientemente importado, vas a cambiar la configuración de la Computadora de Borde IoT.
Supongamos que deseas establecer la Duración de Muestreo a 500 ms, puedes establecer ese valor directamente desde el dashboard recién creado configurando el valor de Duración de Muestreo a 10, ya que este valor se multiplica por 50 ms.
Supongamos que deseas establecer el Intervalo de Transmisión de Datos a 5 (lo que significa que el dispositivo enviará los datos cada 5 minutos), entonces puedes escribir el número "5" en el campo de Intervalo de Transmisión de Datos . Además, puedes establecer el modo de datos escribiendo ya sea 1 o 2 en el campo de En bruto o FFT.
Si deseas que la configuración anterior se aplique a todos tus Nodos de Sensor NCD presentes en el flujo de Node-RED, puedes establecer un "1" en el campo de Global OTA .
Por último, haz clic en el botón Enviar Comando OTA para establecer la configuración actual configurada para el dispositivo seleccionado.
Después de cambiar la configuración del dispositivo y recargar la ventana actual, el Widget de Indicador de Estado OTA debería mostrarse con un color naranja, lo que significa que el OTA aún no se ha actualizado y está en cola para la próxima hora.
De acuerdo con la forma en que NCD diseña sus sensores, una vez que se cambia un parámetro OTA, dichos cambios entrarán en efecto en el cuarto minuto de la próxima hora, es decir, si realizas cambios a las 11:45, esos cambios entrarán en efecto en algún momento alrededor de las 12:04; si realizas cambios a las 16:30, esos cambios entrarán en efecto a las 17:04.