Ir al contenido principal
Todas las coleccionesConecta tus dispositivos
Conectar un Sens'it a Ubidots usando Sigfox sobre HTTP
Conectar un Sens'it a Ubidots usando Sigfox sobre HTTP

Recoge datos utilizando un dispositivo Sens'it versión 2.1 y envíalos a tu cuenta de Ubidots.

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


Sens'it es un dispositivo multisensor proporcionado por Sigfox como una solución IoT simple pero completa, permitiendo acercarse al mundo IoT de una manera amigable e intuitiva, todo a través de la red Sigfox. Este dispositivo compacto pero potente permite monitorear algunas variables ambientales y verificar el estado de las cosas, proporcionando múltiples aplicaciones, tanto en el hogar como en la industria. Además, las posibilidades aumentan gracias a su bajo consumo de energía.

Sens'it 2 y Sens'it 3. Imagen tomada del sitio web Sens'it para desarrolladores.


Sens'it se puede configurar en seis modos diferentes:

  • Temperatura y Humedad (LED parpadea en verde).

  • Luz (LED parpadea en amarillo).

  • Detección de apertura de puerta (LED parpadea en azul claro).

  • Detección de vibración (LED parpadea en azul claro).

  • Imán (LED parpadea en púrpura).

  • Botón (LED secundario parpadea en blanco)


Siguiendo esta guía de cerca, podrás recopilar datos utilizando un dispositivo Sens'it versión 2.1, funcionando en modo "Temperatura y Humedad" o "Luz". Si deseas aprender más sobre los dispositivos Sens'it, te recomendamos visitar el sitio web oficial de Sens'it.

Requisitos

  1. Dispositivo Sens’it (Ya transmitiendo datos al Backend de Sigfox).

1. Configuración del dispositivo


Antes de comenzar, debes configurar tu dispositivo Sens’it con las configuraciones correctas para poder transmitir datos adecuadamente. Por favor, verifica las siguientes configuraciones para asegurar el correcto funcionamiento:

  • Instalar el entorno SDK para tu dispositivo Sens'it.

  • Verificar que la versión de tu dispositivo esté actualizada.

  • Verificar si la Zona Sigfox configurada para el dispositivo es la correcta para el lugar donde se va a desplegar. Si no, la zona debe ser configurada.

  • Verificar si el modo de trabajo de tu dispositivo es "Temperatura y Humedad" (LED parpadea en verde).

Para realizar todas estas configuraciones, debes consultar esta documentación de Sigfox: Sens’it para desarrolladores.


2. Entendiendo la estructura del Payload de Sens’it


NOTA: Todas las imágenes utilizadas en este paso fueron tomadas de la documentación oficial de Sens’it. Este paso asume que el dispositivo Sens'it ya está configurado y actualmente está transmitiendo datos a tu backend de Sigfox.

Por favor recuerda que esta guía explica cómo gestionar y transmitir datos para el modo “Temperatura y Humedad” o “Luz” del dispositivo Sens’it v2.1. Si deseas usar un modo diferente, consulta el documento oficial de estructura de payload, que se puede encontrar en Sigfox Build.


Para enviar datos desde el Backend de Sigfox a Ubidots, debemos gestionar mensajes de uplink. Para hacer esto, primero profundicemos en la estructura del payload gestionado por el dispositivo para aclarar cómo manejarlo.

En el caso de los mensajes de uplink, el payload de Sens'it contiene solo 4 bytes de valores de modo:

Ten en cuenta que todos los datos enviados desde el servidor del dispositivo al backend de Sigfox se gestionan en un marco hexadecimal. Para manejar los datos recibidos, debemos decodificarlos siguiendo la estructura de payload proporcionada por el proveedor de Sens'it.

La información contenida en el payload de Sens'it cambia según el modo de trabajo del dispositivo. Esta sección explica cómo debería verse el payload para nuestros dos casos de uso: "Temperatura y humedad" y "Luz", y cómo obtener los valores finales de las respectivas variables de interés a partir de los datos decodificados.


2.1. MODO TEMPERATURA Y HUMEDAD

Para el modo "Temperatura y Humedad”, los cuatro bytes del payload de Sens'it deberían verse así:

  • Byte 1: Igual para todos los modos.

  • Byte 2: Igual para todos los modos.

  • Byte 3: Depende del modo.

  • Byte 4: Depende del modo.

Sin embargo, nos centraremos en extraer y decodificar la información específica sobre los valores de temperatura y humedad.

NOTA:
Todas las ecuaciones utilizadas para obtener los valores de temperatura y humedad están descritas en el documento de estructura de payload de Sens’it.


  • Temperatura:

Para obtener los datos de temperatura, debes seguir estos pasos:

  1. Extraer “Valor de temperatura MSB” (Bits más significativos), que corresponde a los bits 7 a 4 del byte 2 (4 bits).

  2. Extraer “Valor de temperatura LSB” (Bits menos significativos), que corresponde a los bits 5 a 0 del byte 3 (6 bits).

  3. Sumar los bits extraídos en el paso 2 (6 bits) a los bits extraídos en el paso 1 (4 bits), para obtener un conjunto de 10 bits, así:

Para obtener el valor de temperatura correspondiente, debes aplicar la siguiente operación a los 10 bits obtenidos previamente:

Temperatura = ( temperatura (10 bits) - 200 ) / 8 [°C]

  • Humedad:

Para obtener el valor de humedad, debes extraer “Valor de humedad” del byte 4, es decir, todos los bits contenidos en el byte 4 (8 bits).

Luego, aplica la siguiente operación al conjunto de 8 bits:

Humedad = humedad (8bits) / 2 [%]

Es importante mencionar que el valor de temperatura proporcionado por el dispositivo está en Celsius, y el valor de humedad es la humedad relativa. En caso de que desees cambiar las unidades de los valores obtenidos, puedes hacerlo fácilmente utilizando la función de Variables Sintéticas proporcionada por Ubidots. Además, si deseas agregar la unidad de medida a una variable específica, podrás hacerlo siguiendo esta guía: Agregar Unidades de Medida.



2.2. MODO LUZ


Para el modo "Luz”, los cuatro bytes del payload de Sens'it deberían verse así:

  • Byte 1: Igual para todos los modos.

  • Byte 2: Igual para todos los modos.

Ten en cuenta que, como los bytes 1 y 2 no dependen del modo, se verán igual que en el modo "Temperatura y Humedad".

  • Byte 3: Depende del modo.

  • Byte 4: Depende del modo.

NOTA: Todas las ecuaciones utilizadas para obtener el valor de luz están descritas en el documento de estructura de payload de Sens’it.

Para obtener el valor de luz, necesitas procesar los 6 bits del byte 3 que corresponden al campo "Valor de Luz":

Sin embargo, el cálculo para obtener el valor de luz depende del valor del campo "Máscara de Luz":

  • Máscara de Luz igual a "00": Valor de Luz = Luz (6 bits) / 96 [lux]

  • Máscara de Luz igual a "01": Valor de Luz = ( Luz (6 bits) * 8 ) / 96 [lux]

  • Máscara de Luz igual a "10": Valor de Luz = ( Luz (6 bits) * 64 ) / 96 [lux]

  • Máscara de Luz igual a "11": Valor de Luz = ( Luz (6 bits) * 1024 ) / 96 [lux]

Como puedes ver, el valor de luz se da en unidades de "lux". En caso de que desees cambiar las unidades del valor obtenido, puedes hacerlo fácilmente utilizando las siguientes funciones proporcionadas por Ubidots:


2.3. BATERÍA

Adicionalmente, puedes obtener el valor de la batería en todos los modos. Para extraer las variables de batería, sigue estos pasos:

  1. Extraer “Nivel de batería MSB” (Bit más significativo), que corresponde al bit 7 del byte 1 (1 bit).

  2. Extraer “Nivel de batería LSB” (Bits menos significativos), que corresponde a los bits 3 a 0 del byte 2 (4 bits).

  3. Sumar los bits extraídos en el paso 2 (4 bits) al bit extraído en el paso 1, para obtener un conjunto de 5 bits, así:

Luego, para encontrar el valor de la batería en voltios, necesitas aplicar la siguiente operación a los 5 bits obtenidos previamente:

Voltaje de batería = ( batería (5 bits) * 0.05 ) + 2.7 [V]

NOTA: Esta ecuación está descrita en el documento de estructura de payload de Sens’it.

Después de entender la estructura de los datos que recibiremos, estamos listos para configurar un callback en el Backend de Sigfox para enviar los datos a la nube de Ubidots, y luego, crear una UbiFunction para recibir, procesar y cargar los datos en nuestra cuenta de Ubidots.

3. Configuración de UbiFunction y callback de Backend de Sigfox


Después de entender la estructura del payload de Sens'it, probablemente notes que el paquete de datos debe ser procesado antes de enviarlo a tu cuenta de Ubidots. Esto se puede hacer gracias a la función de UbiFunctions, que nos permite transformar y analizar los datos proporcionados por el sensor.

Usar una UbiFunction es un paso intermedio y obligatorio entre la plataforma Sigfox y la plataforma Ubidots. A través de esta herramienta, podrás:

  • Captar los datos que vienen del Backend de Sigfox.

  • Convertir esos datos en código binario.

  • Extraer los bits valiosos.

  • Obtener los valores de las variables.

  • Enviar la información final a tu cuenta de Ubidots.

Además, es necesario configurar un callback en el Backend de Sigfox para poder enviar los datos del dispositivo a un sistema externo como Ubidots. Para completar con éxito este paso, debes consultar los pasos 1, 2 y 3 de la guía "UbiFunctions: Gestionar mensajes de Uplink desde el Backend de Sigfox a Ubidots," asegurándote de aplicar los cambios necesarios que se muestran a continuación.


En el paso 2, “Configuración de UbiFunctions,” debes reemplazar el código de ejemplo con el código Parser que se encuentra en el repositorio de Ubidots.


En el paso 3, “Configurando el callback de Sigfox a Ubidots,” debes llenar los campos del callback así:

  • Tipo: DATA - UPLINK

  • Canal: URL

  • Configuración de payload personalizada: Déjalo en blanco

  • Patrón de URL: Esta es la URL generada por la UbiFunction en el campo "URL de Endpoint HTTPS." Debes agregar el parámetro "device" a ella. La URL resultante debería verse así:

https://parse.ubidots.com/prv/your_ubidots_username/your_ubifunction_name/?device={device}


Por favor, ten en cuenta que "{device}" es un parámetro predeterminado para Sigfox, que será reemplazado automáticamente por el nombre de tu dispositivo gracias al backend de Sigfox.

  • Usar método HTTP: POST

  • Encabezado: Debes agregar un nuevo encabezado, llenando el campo "header" con X-Auth-Token y el campo “value” con tu Token de Ubidots.

  • Tipo de Contenido: application/json

  • Cuerpo:

{    "data": "{data}",    "time": "{time}"}



Una vez que el callback de Sigfox esté configurado, debería verse como el de abajo:

NOTA: Por favor asegúrate de agregar el parámetro "device" al final del patrón de URL, y habilitar la casilla "Enviar SNI".

4. Visualiza tus datos en Ubidots


Después de finalizar la configuración de tu UbiFunction y el callback del Backend de Sigfox, un nuevo dispositivo debería aparecer en la sección "Dispositivos" de tu cuenta de Ubidots, conteniendo los argumentos enviados por la solicitud HTTP de tu UbiFunction como variables.

Usando las diferentes herramientas y funciones proporcionadas por la plataforma Ubidots, podrás configurar un Dashboard personalizado para visualizar tanto tus datos en bruto como procesados con la ayuda de diferentes widgets.

Aquí tienes un ejemplo de cómo podría verse tu Dashboard:


Para aprender más sobre estos conceptos y características, y aprender cómo gestionar, visualizar, analizar y utilizar los datos de tu dispositivo, te recomendamos echar un vistazo a los siguientes artículos:


5. Resumen


Sens'it es una gran opción para aquellos que desean acercarse al mundo IoT de una manera fácil y divertida. La versatilidad de este dispositivo proporciona una amplia gama de posibilidades para implementar soluciones IoT, donde el límite es tu imaginación. Para aprender más sobre los dispositivos Sens’it, te recomendamos consultar el sitio web de Sens'it. Además, si deseas aprender más sobre las tecnologías de Sigfox, puedes visitar el sitio web de Sigfox.

Ubidots permite integrar dispositivos de terceros, como el Sens'it de Sigfox, con la ayuda del complemento UbiFunctions. Esta herramienta hace posible recibir y procesar datos del backend del dispositivo de terceros y enviarlos a tu cuenta de Ubidots a través de una solicitud HTTP. Después de recopilar los datos en tu cuenta de Ubidots, podrás interactuar con ellos con la ayuda de diferentes funciones y herramientas proporcionadas por Ubidots a través de una interfaz de usuario intuitiva y amigable.

Si deseas aprender más sobre las plataformas de terceros soportadas por Ubidots, puedes consultar este artículo: UbiFunctions: Procesar/Parsear datos de plataformas de terceros.


Otros usuarios también encontraron útiles estos enlaces:

¿Ha quedado contestada tu pregunta?