Ir al contenido principal
Todas las coleccionesConecta tus dispositivos
Conectar sensores IoT UnaSense a Ubidots
Conectar sensores IoT UnaSense a Ubidots

Aprende a conectar el sensor inalámbrico de Temperatura y Humedad de UnaBiz a Ubidots.

Santiago Pachon Robayo avatar
Escrito por Santiago Pachon Robayo
Actualizado hace más de 2 meses

Siguiendo esta guía, podrás decodificar y monitorear los datos de temperatura y humedad del sensor UnaSense cuando esté configurado en Modo Temporizador, lo que significa que envía la temperatura y el nivel de humedad a la tasa designada.

Requisitos

1. Entendiendo los datos

La siguiente estructura de carga útil es un ejemplo de los datos que se envían de Sigfox a Ubidots específicamente para un sensor UnaSense.

{"device_id": "21O561D""data": "018b0925092f2035202c", }

Ahora, aquí está cómo se está decodificando el data de acuerdo con la documentación para obtener los valores de temperatura y humedad. Es importante tener en cuenta el modo en el que está configurado el sensor, en este caso, dado que el modo es Temporizador, la decodificación es la siguiente:

Datos de muestra del sensor Sigfox: 018b0925092f2035202c

  • 0x01 - Modo Byte #0

  • 0x8b - Intervalo Byte #1

  • 0x0925 - Temperatura 1/2 Bytes #(2 - 3)

  • 0x092f - Temperatura 2/2 Bytes #(4 - 5)

  • 0x2035 - Humedad 1/2 Bytes #(6 - 7)

  • 0x202c - Humedad 2/2 Bytes #(8 - 9)

Bytes en Total: 10

NOTA: Como puedes notar, la temperatura y la humedad tienen dos partes de 2 bytes cada una. Esto significa que en total, la temperatura tiene 4 bytes (lo mismo con la humedad) y estos datos necesitan ser procesados de la siguiente manera:

Temperatura = (Temperatura 1/2 + Temperatura 2/2) / 2
Humedad = (Humedad 1/2 + Humedad 2/2) / 2

Después de calcular el promedio, tanto la Temperatura como la Humedad deben ser multiplicadas por 0.1, lo que se puede traducir en dividir el valor por 100.


2. Función de decodificación en el Plugin de Sigfox

Paso 1: Ve al plugin de Sigfox y abre la opción de Decodificador.

Paso 2: Encuentra la sección de función de decodificación. Aquí es donde comenzaremos a decodificar los datos que provienen del UnaSense.

Paso 3: Copia y pega el código a continuación en el editor de código reemplazando la función decode_data():

def decode_data(hex_array):payload = {}temperature = (int(hex_array[2:4].hex(), 16) + int(hex_array[4:6].hex(), 16))/2humidity = (int(hex_array[6:8].hex(), 16) + int(hex_array[8:10].hex(), 16))/2payload["temperature"] = temperature/100payload["humidity"] = humidity/100return payload

Guarda el código haciendo clic en el botón "GUARDAR & HACER VIVO".

3. Prueba de la función

Después de seguir los pasos anteriores, tu decodificador debería verse como la imagen a continuación, y para probar la función, por favor ingresa la carga útil de prueba JSON dentro de las llaves y haz clic en "EJECUCIÓN DE PRUEBA".

image.png

El resultado de la EJECUCIÓN DE PRUEBA se puede ver en la consola y debería devolver como salida un código HTTP 201 indicando que los datos fueron decodificados con éxito. Además, en la sección de registro debería devolver los valores de temperatura y humedad.

image.png

Otros usuarios también encontraron útil...

¿Ha quedado contestada tu pregunta?