Ir al contenido principal

Conectar sensores IoT UnaMotion a Ubidots

Aprende a conectar el sensor de movimiento PIR de UnaBiz a Ubidots.

Escrito por Santiago Pachon Robayo

Siguiendo esta guía, podrás decodificar los datos del sensor UnaMotion para contar y detectar el movimiento humano dentro de su alcance de monitoreo.

La funcionalidad del UnaMotion depende de su configuración de Modo, puede ser:

  • Modo temporizador: Contar el número de movimientos humanos durante un período de tiempo.

  • Modo de evento: Detectar movimiento humano.

Requisitos

1. Entendiendo los datos

Así es como se están decodificando los datos según la documentación para contar el número de movimientos o detectar movimiento. Es importante tener en cuenta que la decodificación depende del modo en el que el sensor está configurado.
​

1.1. Datos del modo temporizador

La siguiente estructura de carga útil es un ejemplo de los datos enviados desde Sigfox a Ubidots específicamente para un sensor UnaMotion configurado para el Modo Temporizador.
​

{"device_id": "41DAD4""data": "018b05050707050605060102", }

Datos de muestra del sensor Sigfox: 018b05050707050605060102
​

  • 0x01 - Modo Byte #0

  • 0x8b - Intervalo Byte #1

  • 0x05 - Movimiento 1/10 Byte #2

  • 0x05 - Movimiento 2/10 Byte #3

  • 0x07 - Movimiento 3/10 Byte #4

  • 0x07 - Movimiento 4/10 Byte #5

  • 0x05 - Movimiento 5/10 Byte #6

  • 0x06 - Movimiento 6/10 Byte #7

  • 0x05 - Movimiento 7/10 Byte #8

  • 0x06 - Movimiento 8/10 Byte #9

  • 0x01 - Movimiento 9/10 Byte #10

  • 0x02 - Movimiento 10/10 Byte #11
    ​

Bytes en total: 12
​

1.2. Datos del modo de evento

La siguiente estructura de carga útil es un ejemplo de los datos enviados desde Sigfox a Ubidots específicamente para un sensor UnaMotion configurado para el Modo de Evento.
​

{"device_id": "41DAD4""data": "0201", }

Datos de muestra del sensor Sigfox: 0201
​

  • 0x02 - Modo Byte #0

  • 0x01 - Estado Byte #1

Bytes en total: 2
​
​NOTA: El byte de estado representa una forma de detectar movimiento, puede ser:
​

  • 0x00 : No se detectó movimiento

  • 0x01: Movimiento detectado

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.

image.png

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


​

image.png

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 = {}    status = hex_array[0]      if status == 0 or status == 4:        voltage = (int(hex_array[1:3].hex(), 16))/1000        payload["voltage"] = voltage    elif status == 1:        payload["motion_count"] = int(hex_array[2:12].hex(), 16)    elif status == 2:        payload["state"] = int(hex_array[1:2].hex(),16)    return payload

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

Otros usuarios también encontraron útil...

¿Ha quedado contestada tu pregunta?