En este post vamos a continuar con el caso práctico dedicado a redes LoraWAN para dar de alta en TTN un gateway y una aplicación (sensor). Además, veremos cómo decodificar los datos e integrarlos con Node-Red. Una vez los datos en Node-Red imaginación al poder. Así que vamos manos a la obra y vamos a ver la segunda parte.
En la entrada anterior lo dejábamos con la configuración y alta del gateway en TTN. Ahora vamos a dar de alta la aplicación y ver que datos y como los podemos extraer. En primero lugar como ya comentamos disponemos de un sensor Tabs de Browan que es capaz d medir la temperatura y la humedad relativa en un espacio interior. Este sensor viene con una pila de 3,6V y con unas características que hacen que si no hay cambios de temperatura o humedad se envíe un mensaje cada 60 minutos. Si por el contrario hay cambios de +/- 2ºC o si la humedad relativa cambia en +/-5% se envía un mensaje inmediatamente. Este tipo de sensor viene pre-configurado con los datos para funcionar en una red LoraWAN. Es decir el proveedor nos proporcionará los datos de AppEUI,DevEUI y AppKEY.
Paso a seguir para dar de alta la aplicación o sensor en TTN el servidor LoraWAN
Vamos a ver los pasos en detalle:
- Obviamente el sensor debe de estar dentro del rango de cobertura del gateway LoraWAN
- En este tipo de sensor es importante o recomendable que se pueda ver los mensajes de Join que realiza el sensor. En nuestro caso este tipo de mensaje se puede ver en el gateway de Dragino. Si no disponemos de un gateway o el sensor no tiene interfaz para interactuar con él debemos ir a ver los mensajes en TTN.
- Es recomendable configurar el sensor o aplicación antes en TTN que encenderlos. Ya que cuando arranca el sensor lo primero que hace es enviar los mensajes de Join.
- Así que lo primero que haremos es con los datos proporcionados por el proveedor del sensor ir a TTN y configurarlo. Para ello iremos a nuestra console y pincharemos en applications
- Nos aparecerá el listado de aplicaciones configuradas en caso de tener alguna. En nuestro caso iremos a add application.
Rellenaremos el campo de Application ID con un nombre que queramos, le daremos una descripción y dejaremos el resto de los campos como indica TTN. Pulsaremos en add application
En esta pantalla nos aparecerá la información de la aplicación recién creada. Lo primero que debemos hacer es cambiar el App EUI para ello iremos a manage euis y borraremos el que nos ha generado automáticamente TTN y añadiremos el que nos han proporcionado con el sensor
Una vez realizado el cambio iremos a la pantalla anterior y daremos de alta un dispositivo. Para ello pulsaremos en register device. Añadiremos el Device_ID que es un nombre significativo para nosotros. El Device EUI y el App KEY que nos han proporcionado con el sensor y comprobaremos que el App EUI es el que también nos han proporcionado.
Si los datos son correctos ya tendríamos configurado nuestra aplicación. Lo siguiente que deberíamos hacer es encender el sensor. En nuestro caso el sensor viene con una tira de plástico que al quitarla ya alimenta la pila al sensor
En este momento veremos que una luz azul del frontal parpadea cada cierto tiempo. Y ya deberíamos ver tanto en el gateway y en TTN que se reciben mensajes del sensor.
Dentro de la aplicación en devices en el Estatus veremos que aparece el tiempo que hace que hemos contactado con el sensor. Si el estatus es Never o está por encima de los 60 minutos indica que hay un problema de comunicación entre el sensor y TTN por lo que habría que comprobar si el gateway este operativo y recibe datos del sensor.
En nuestro caso podemos ver como en el gateway se reciben y envían mensajes del sensor en la parte del log
Tue Jan 12 12:46:12 2021 daemon.info lora_pkt_fwd[2495]: DATA_UNCONF_UP:{«DevAddr«: «XXXXXXXX«, «FCtrl«: [«ADR»: 1, «ADRACKReq«: 0, «ACK»: 0, «RFU» : «RFU», «FOptsLen«: 0], «FCnt«: 249, «FPort«: 103, «MIC»: «XXXXXXX«}
Tue Jan 12 12:46:12 2021 daemon.info lora_pkt_fwd[2495]: RXTX~ {«rxpk»:[{«tmst»:3048825475,»time»:»2021-01-12T11:46:12.504561Z»,»chan»:2,»rfch»:1,»freq»:868.500000,»stat»:1,»modu»:»LORA»,»datr»:»SF7BW125″,»codr»:»4/5″,»lsnr»:7.8,»rssi»:-30,»size»:21,»data»:»XXXXXXXXXXXXXXXXXXX«}]}
Y en TTN podemos ver como el estatus es correcto
Existen herramientas interesantes para poder ver con mas detalle la información de los mensajes del log. Una herramienta es el decodificador de mensajes LoraWAN packet decoder. En esta página si introducimos el campo DATA veremos si el App Key Device Address etc. Es correcto
Ahora que ya tenemos el sensor conectado podemos ir a la parte de data del dispositivo y veremos los mensajes recibidos. A nosotros nos interesa sobretodo el payload ya que es donde va la información de los sensores. Pero de momento esta información no es inteligible para nosotros ya que la tenemos que decodificar. Eso lo veremos en la siguiente entrada del blog la parte 3. Donde aprenderemos a obtener e integrar los datos en Node-Red. Si que antes de despedirnos queríamos contarte una serie de tips o trucos de sensor Tabs. En nuestro caso el equipo no enviaba mensajes de Join. El primer error que cometimos fue a la hora de configurar el gateway ya que no seleccionamos correctamente el plan de frecuencias por error. Solucionado esto el sensor continuaba sin enviar los mensajes. Tras leer documentación y revisar el foro de TTN descubrimos que es posible que para realizar pruebas los proveedores registren sus dispositivos en TTN y por tanto el sensor ya se haya conectado a un servidor LoraWAN por lo que ya no envía los mensajes iniciales. Para hacer que se reinicie el sensor se pueden hacer 2 cosas. Dejarlo que se descargue quitando la pila. En este caso al tener un capacitador el sensor tarda entre 2-3 días en descargarse. Como somos impacientes en nuestro caso realizamos un corto entre el + y el – de los bornes del sensor y la descarga es inmediata. En este momento ya vimos los mensajes de Join y la vinculación en TTN de forma inmediata. Así que si te ocurre lo mismo ya sabes. ¡Nos vemos en la próxima entrada!