ChirpStack

ChirpStack es una plataforma que permite la conexión de dispositivos mediante el protocolo LoRaWAN. Esta plataforma implementa varios servicios, entre los que se encuentra un servidor de red, servidor de aplicación y un puente entre el gateway y el servidor de red, desplegando la arquitectura requerida por LoRaWAN.

A continuación se mostrarán algunas de las características de esta plataforma.

Características

Entre las principales características de ChirpStack, se encuentran las siguientes:

  1. Soporta dispositivos Clase A, para comunicaciones bidireccionales, donde cada trasmisión de uplink es seguida por dos ventanas de downlink.

  2. Soporta dispositivos Clase B, que permiten una mayor cantidad de espacios de tiempo para recepción.

  3. Soporta dispositivos Clase C, que cuenta con ventanas de tiempo de recepción casi continuas, solo cerradas cuando se produce una transmisión.

  4. El servidor de aplicación permite visualizar los mensajes enviados por cada gateway y dispositivo. Muestra la metadata de transmisión y recepción, junto con el payload en un formato legible.

  5. Permite la configuración y reconfiguración de los canales para adaptarse a las necesidades de los gateways.

  6. Soporta la creación de múltiples organizaciones las cuales tienen usuarios administradores asignados. Así mismo, al integrarse a un broker de autenticación, las organizaciones solo podrán ver su propia data.

  7. Todos los componentes de ChirpStack proveen APIs REST para la integración con servicios externos. Por defecto, los datos de aplicación son publicados al broker de MQTT, no obstante, la integración se encuentra disponible para diferentes proveedores de base de datos y plataformas de visualización.

Acerca del proyecto ChirpStack

ChirpStack LoRaWAN Network Server provee del conjunto de componentes requeridos para redes LoRaWAN. En conjunto forma una solución lista para usar una interfaz web amigable al usuario para la administración de de dispositivos y APIs para integración. Todos sus componentes se encuentran licenciados mediante la licencia MIT.

Arquitectura de ChirpStack

Arquitectura
Figure 1. Arquitectura de ChirpStack, extraída de https://www.chirpstack.io/project/architecture/

LoRaWAN cuenta con una arquitectura que incluye los dispositivos finales, los gateways, servidor de red, servidor de unión y servidor de aplicación. ChirpStack ofrece la implementación de los componentes de red de esta arquitectura, los cuales incluyen los tres servidores, además de una interfaz entre el gateway y el servidor de red.

Dispositivos finales

Estos dispositivos son elementos que se encuentran en los extremos de la red y se encargan de recolectar información a través de sus sensores y enviarlos al servidor de aplicación pasando a través de la arquitectura de LoRaWAN. Estos dispositivos envían estos datos mediante paquetes a través de la modulación LoRa, los cuales son recibidos por los gateways.

Gateway de LoRa

El gateway es el encargado de convertir los paquetes de radio recibidos de los dispositivos finales en paquetes de IP, los cuales son transmitidos a través de una red cableada o inalámbrica hacia el servidor de red (en este caso implementado por ChirpStack). El software que se ejecuta en el gateway, encargado de recibir y enviar los paquetes se denomina Packet forwarder. Algunas implementaciones comunes de este software son Semtech UDP Packet Forwarder y Semtech Basic Station Packet Forwarder.

Interfaz para Gateway de ChirpStack (ChirpStack Gateway Bridge)

Este elemento se encuentra entre el Packet Forwarder y el Broker de MQTT. Se encarga de transformar el formato del Packet Forwarder (como el caso de Semtech UDP Packet) en el formato utilizado por los componentes de ChirpStack.

Servidor de red de ChirpStack

Es el servidor de red de LoRaWAN, encargado de administrar el estado de la red. Tiene conocimiento de las activaciones de los dispositivos en la red y es capaz de manejar las peticiones de unión cuando los dispositivos desean unirse a la red.

Así mismo, cuando los datos son recibidos de múltiples gateways, el servidor de red es el encargado de filtrar los duplicados y enviarlos como un solo payload al servidor de aplicación.

Servidor de aplicación de ChirpStack

Es el servidor de aplicación de LoRaWAN, compatible con el servidor de red de ChirpStack. Provee de una interfaz web y APIs para la administración de usuarios, organizaciones, aplicaciones, gateways y dispositivos.

Los datos recibidos son finalmente reenviados de acuerdo a las integraciones configuradas.

Aplicación final

La aplicación final recibe los dato del dispositivo a través de una de las integraciones configuradas. El propósito de esta aplicación puede ser analítica, alerta, visualización de datos, ejecución de eventos, entre otros.