Ir al contenido principal
Todas las coleccionesConecta tus dispositivos
Conectar el rastreador Seeed Studio SenseCAP T1000-x LoRaWAN a Ubidots [Helium LNS]
Conectar el rastreador Seeed Studio SenseCAP T1000-x LoRaWAN a Ubidots [Helium LNS]

Este artículo ilustrará el proceso de conectar el rastreador T1000-x a Ubidots a través de Helium LNS.

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

Requisitos

  • Una cuenta activa de Ubidots

  • Una cuenta activa en la consola de Helium con algunos DC

  • Un teléfono celular que soporte Google Play Store o AppStore, así como Bluetooth.

1. Instalar la aplicación SenseCAP Mate y configurar el rastreador

Escanea el siguiente código QR. Te llevará a la página oficial de descarga de la aplicación SenseCAP Mate de Seeed Studio.

Una vez instalada, activa el Bluetooth en tu celular y lanza la aplicación. Si no tienes una cuenta, tendrás que registrarte para usar la aplicación.

Después de eso, presiona y mantén presionado el botón del rastreador durante al menos 3 segundos o hasta que el LED comience a parpadear. Luego, de la lista de dispositivos, selecciona Tracker T1000

Toca tu dispositivo:

Ve a la pestaña de configuración y luego a la pestaña de LoRa. Allí selecciona como plataforma Helium y selecciona el plan de frecuencia de acuerdo a tus requisitos. Además, asegúrate de copiar el Device EUI, APP EUI y APP Key ya que los necesitarás en pasos posteriores. Una vez terminado, toca el botón Enviar para guardar la configuración.

2. Registrar el rastreador en Helium LNS

Inicia sesión en tu consola de Helium, luego ve a la sección “Dispositivos” y haz clic en el botón “Agregar dispositivo”

Completa los campos requeridos como el nombre del dispositivo, las credenciales de LoRaWAN, etc. Luego haz clic en el botón Guardar dispositivo.

3. Crear la función decodificadora en Helium

El siguiente paso es configurar la función que decodificará los bytes en bruto en una forma legible por humanos. Dirígete a la pestaña Función en el panel del lado izquierdo. Luego haz clic en el botón Agregar nueva función y dale un nombre:

Seeed Studio proporciona un decodificador específicamente para este dispositivo en el siguiente repositorio. Pega ese decodificador en el campo de texto y luego guarda los cambios.

4. Crear la integración a Ubidots

Ve a la sección de Integraciones, luego haz clic en Agregar integración y busca la integración de Ubidots:

Haz clic en +Agregar integración

Ingresa tu token de Ubidots en el campo respectivo, luego haz clic en el botón Continuar y espera el mensaje de confirmación emergente. Después de eso, nombra tu integración y haz clic en el botón Agregar integración:

Después de realizar este paso, se creará un nuevo plugin de Helium en tu cuenta de Ubidots.

5. Crear el flujo para conectar la integración a Ubidots

Dirígete a la sección de Flujos, luego, desde el menú desplegable en la esquina superior izquierda, arrastra y suelta el dispositivo, la función decodificadora y la integración en el área en blanco, luego une los puntos como se muestra en el GIF a continuación:

En este ejemplo, tanto el dispositivo como la función decodificadora se llaman "sensecap-lorawan-tracker", y la integración se llama "enviar datos a ubidots".

6. Crear un JSON compatible con Ubidots y visualizar los datos

Dado que el objeto JSON devuelto por el decodificador de Seeed Studio no es compatible con el esquema de Ubidots, se necesita una transformación después de extraer los datos de interés.
Dirígete a la sección del decodificador de tu plugin de Helium, elimina todo el código allí y reemplázalo con el siguiente:

#Set to true in order to enable hotspot informationHOTSPOT_INFO_ENABLE = Falsedef format_payload(args):    messages = args.get("decoded", {}).get("payload", {}).get("data", {}).get("messages", [])    ubidots_payload = {}    error = assert_error(messages[0][0])    if error is not None:        return error    if HOTSPOT_INFO_ENABLE:        hotspot_info = args.get('hotspots', None)        ubidots_payload['SNR'] = hotspot_info[0].get('snr') if hotspot_info is not None else None        ubidots_payload['RSSI'] = hotspot_info[0].get('rssi') if hotspot_info is not None else None        ubidots_payload["port"] = args.get("port", None)        ubidots_payload['Frame Counter'] = args.get('fcnt', None)    for msg in messages:        for sensor in msg:            message_type = sensor.get("type", None)            value = sensor.get("measurementValue")            if message_type == "Latitude" or message_type == "Longitude":                position = ubidots_payload.setdefault("position", {})                position.update({message_type.lower(): value})                continue            elif message_type == "Timestamp":                ubidots_payload["timestamp"] = value                continue            ubidots_payload[message_type] = value    print(ubidots_payload)    return ubidots_payload    def assert_error(data : dict):    if "error" in data:        return {"ERROR" : { "value" :  data["errorCode"], "context" : { "status" : data["error"]}}}    return None

Si todo está correctamente conectado, deberías ver esto en un dispositivo recién creado en Ubidots

¿Ha quedado contestada tu pregunta?