Integración de Lora con Sofia2

Para llevar a cabo la comunicación entre un dispositivo Lora y Sofia2 hemos utilizado un kit de Multitech formado por un nodo de pruebas que simula las transmisiones de un dispositivo con tecnología Lora y un gateway, necesario para que estos dispositivos puedan comunicarse con la red y enviar así los datos que tomen.

Kit
Kit Multiconnect utilizado.

Es necesario configurar tanto el gateway como el nodo de pruebas antes de integrar estos dispositivos en Sofia2. En esta breve guía se recogen los pasos a seguir para ambas configuraciones y todo lo necesario en Sofia2 para poder recibir y almacenar los datos enviados por Lora.

Configuración de la tecnología Lora

  • Configuración del gateway

    Es necesario hacer una configuración inicial para poder usar el gateway sin problemas de conexión. La primera vez que accedemos a él lo haremos por comunicación serie usando Putty u otra herramienta similar. Las credenciales necesarias para acceder por terminal son admin/admin, y con el comando ifconfig podemos obtener su dirección IP. Una vez conocida esta IP, accedemos a ella mediante un navegador y nos encontramos con una página de Multitech donde podemos acceder usando de nuevo las mismas credenciales que antes.

    Acceso web al gateway
    Acceso web al gateway

    Nada más iniciar sesión, y solo la primera vez que lo hacemos, nos encontramos con un asistente que nos va solicitando en varios pasos modificar la contraseña, seleccionar la zona horaria y configurar la IP. Cuando nos sale esta última ventana debemos configurarla como IP estática, seleccionar el gateway correspondiente y añadir los servidores DNS.

    Una vez terminada la configuración de la IP, configuramos la parte de Lora. Para ello basta con acceder a Setup -> Lora. Aparece una pantalla como la que se muestra en la siguiente imagen donde hay muchos campos configurables de los cuales solo necesitamos modificar Name y Passphrases.

    Web
    Pantalla de configuración de Lora.
  • Configuración de Node-Red

    Una vez activada la aplicación de Node-Red podemos acceder a ella desde el menú “App” de la web. Por defecto viene diseñado un programa que simplemente recibe los datos del tester de Lora y los muestra por pantalla, pero debemos modificarlo para que la información se envíe a Sofia2.  En la imagen se muestra el diagrama de flujos final, en el que ha añadido la función “Sofia2 API WEB encoder”, encargada de dar el formato deseado y añadir una cabecera al mensaje a enviar y una salida HTTP (envío).

    Node-Red
    Configuración de Node-Red
  • Configuración del nodo de pruebas

    Configurar los parámetros del nodo de pruebas es realmente sencillo. Solamente hay que conectar el mDot vía USB a nuestro ordenador y conectarlo al nodo de pruebas con el cable de programación que viene en el mismo kit, de la forma que se muestra en la figura. Una vez hecho esto seleccionamos la opción “Configuration” en el mDot Box y accedemos al dispositivo utilizando la comunicación serie de Putty a velocidad 115200 baudios.

    Tester
    Tester de Lora utilizado

    Solamente es necesario configurar dos parámetros y para ello se utilizan los siguientes comandos AT:

    AT+NI=1,<Name>

    AT+NK=1,<Passphrase>

    AT&W para guardar los cambios realizados Y finalmente AT+Exit para salir del modo configuración.

    Los campos <Name> y <Passphrase> tienen que ser los mismos valores que los fijados anteriormente en el Gateway.

    Configuración del tester
    Configuración del tester

    Para comprobar si la configuración de ambos dispositivo ha sido correcta, podemos hacer una prueba con Node-Red.

Sofia2

Una vez configurada toda la parte de los dispositivos, solamente queda desarrollar la parte necesaria en Sofia2. Necesitamos dos nuevas ontologías, un API rest y un Script de reglas para tratar los datos. En este apartado se explica brevemente cómo crear cada uno de ellos.

  • Definir las nuevas ontologías

    Lo primero que debemos hacer es crear una nueva ontología que recibirá los datos que envía el nodo de pruebas. En esta ontología se insertarán los datos “en crudo” (data RAW) tal y como los envía el dispositivo, sin aplicar ningún filtrado previo.

    ontologia
    Ejemplo de ontología con datos sin tratar.

    Estos datos suelen contener tramas con codificaciones en hexadecimal, formatos no deseados o información que debe ser tratada antes de trabajar con ella. Por ello es necesario crear un Script de reglas y una nueva ontología donde se insertarán los datos ya tratados y con el formato requerido por la base de datos para su correcto almacenamiento.

  • Api Rest

    Una vez definidas las ontologías, crearemos una API REST de tipo POST a la ontología de datos sin tratar para que los datos puedan ser insertados en ella.

    Para ello debemos entrar en API MANAGER -> APIs donde encontramos la opción “Crear API”. Una vez aquí, escribimos un nombre para nuestra API, seleccionamos la opción “Publicar ontología como API REST” y la ontología deseada. Es conveniente desactivar el número máximo de peticiones por minuto para asegurarnos de que no perdemos información. Por último, seleccionamos la operación “POST” y creamos nuestra API.

     API
    Pantalla de creación de API

     La URL que aparece en el campo “EndPoint base” es la que se debe insertar en Node-RED.

  • Script de reglas

    Una vez comprobado que los datos enviados directamente desde el dispositivo se insertan de forma correcta en la ontología deseada, debemos crear un Script para tratarlos, extraer toda la información posible y dotarlos del formato correspondiente. Para ello simplemente entramos en Reglas->Wizard creación de reglas y seleccionamos la opción “Generar regla script ontología”. Con este tipo de reglas, cada vez que el dispositivo envíe nuevos datos a la ontología se ejecutará este script en el que se tratarán los datos para luego insertarlos en la ontología final.

  • Representación de resultados

    Utilizando las herramientas de visualización de Sofia2 podemos representar de manera rápida y sencilla los datos que estamos almacenando.  Para ello entramos en visualización ->Mis Gadgets-> Crear gadgets, desde donde podemos seleccionar el tipo de herramienta que más nos conviene en función de los datos. Atendiendo a los datos que se obtienen del tester de Lora, dos tipos de visualizaciones interesantes podrían ser la representación de coordenadas en un mapa y los valores de la relación señal a ruido (SNR) a lo largo del tiempo.

    Mapa
    Representación de coordenadas en un mapa

    SNR
    Representación del parámetro SNR
Integración de Lora con Sofia2

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s