Una serie de artículos sobre la instalación y funcionamiento del servidor LoRaWAN Chirpstack

1. Introducción



Esta serie de artículos estará dedicada a la implementación y operación de software de código abierto: el servidor de red LoRaWAN Chirpstack. Este software fue creado por uno de los entusiastas de los Países Bajos, Orne Brocaar , y se puede utilizar para construir sus propias redes LoRaWAN; los componentes del sistema tienen licencia de la licencia MIT y se pueden utilizar para operaciones comerciales.



Al comunicarme con los clientes y consumidores de nuestros dispositivos LoRaWAN, escuché repetidamente solicitudes de ayuda para implementar mis propias redes basadas en este servidor, esto me hizo pensar que se necesita una guía generalizada para implementar y operar el servidor, que pude leer paso a paso, con su propia mano, instale a cualquiera. En este sentido, nació esta serie de artículos. ¿Qué vamos a discutir? Comencemos con lo más importante, instalando todos los componentes del servidor. Además, habrá artículos sobre el funcionamiento del servidor, sobre la integración con plataformas externas, sobre el uso de nuevas tecnologías de redes LoRaWAN como Multicast y FUOTA. Y entonces, comencemos ... parte uno.



2.Con qué trabajaremos



En primer lugar, describiremos en qué probaremos e implementaremos el servidor LoRaWAN.

Hardware:



  • Puerta de enlace LoRaWAN: DoMINO Indoor v.1.0 (puede usar otra, por ejemplo Vega BS xx)
  • Contador de pulsos DoMINO PULSE v.4.3 +


Software:



  • Servidor en la nube con Ubuntu 18.04


3. Descripción del servidor Chirpstack



La estructura del servidor de red LoRaWAN se muestra en la Figura 1.





Fig.1



Los componentes principales del servidor son:



Puente de puerta de enlace : un puente entre el programa Packet Forwarder instalado en la estación base (puerta de enlace) y la estructura del servidor LoRaWAN en sí;

Servidor de red : un servidor de red que procesa mensajes a nivel de red;

Servidor de aplicaciones : un servidor de aplicaciones que proporciona operación de red a nivel de usuario, se integra con plataformas externas.



Componentes auxiliares:



MQTT Broker Mosquitto - para el intercambio interno de mensajes entre componentes del servidor;

Redis  : una base de datos intermedia para almacenar datos transitorios;

PostgreSQL- Base de datos para almacenamiento permanente de datos.

Todo el software es software de código abierto.



4. Instalación del servidor



El servidor está instalado en Ubuntu 18.04 o Debian OS. Describiremos una instalación utilizando un servidor en la nube en Ubuntu 18.04. La conexión al servidor se realiza mediante SSH mediante el cliente Putty. Nota: Se supone que nuestro lector tiene la idea de trabajar con Ubuntu, SSH, Putty, tiene un SO instalado y configurado.



4.1 Instalación y configuración de software auxiliar



Para comenzar, necesitamos instalar paquetes auxiliares. Para hacer esto, ingrese el comando en la consola:



sudo apt install mosquitto mosquitto-clients redis-server redis-tools postgresql


y espere a que se complete la instalación.



A continuación, debe configurar la base de datos PostgreSQL y agregarle usuarios.

Entramos en el modo de gestión de la base de datos:



sudo -u postgres psql


Aparecerá el indicador de administración de la base de datos postgres = #

Cree usuarios con sus contraseñas (estos datos deben recordarse, puede dar otros inicios de sesión y contraseñas, pero asegúrese de recordarlos, serán necesarios para configurar el servidor de red y el servidor de aplicaciones).



Creamos un usuario para el servidor de red:



create role chirpstack_ns with login password 'dbpassword';


Creamos un usuario para el servidor de aplicaciones:



create role chirpstack_as with login password 'dbpassword';


Creemos una base de datos para el servidor de red:



create database chirpstack_ns with owner chirpstack_ns;


Cree una base de datos para el servidor de aplicaciones:



create database chirpstack_as with owner chirpstack_as;


Configuraciones adicionales



Conectarse a la base de datos:



\c chirpstack_as


Crea una extensión:



create extension pg_trgm;


Crea una extensión:



create extension hstore;


Salir de la edición de los parámetros de la base de datos:



\q


4.2 Instalación del repositorio Chirpstack



Deben instalarse los siguientes componentes: dirmngr y apt-transport-https, si no, ejecute el comando:



sudo apt install apt-transport-https dirmngr


Instale la clave para el nuevo repositorio:



sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 1CE2AFD36DBCCA00


Agregue el repositorio a la lista:



sudo echo "deb https://artifacts.chirpstack.io/packages/3.x/deb stable main" | sudo tee /etc/apt/sources.list.d/chirpstack.list


Actualicemos el caché de apt:



sudo apt update


Esto completa la configuración preliminar.



4.3 Instalación del puente de puerta de enlace



Instale el paquete:



sudo apt install chirpstack-gateway-bridge


Inicie Gateway Bridge:



sudo systemctl start chirpstack-gateway-bridge


Ponemos la aplicación Gateway Bridge al inicio:



sudo systemctl enable chirpstack-gateway-bridge


Para verificar si se inició e instaló correctamente, puede verificar el registro usando el comando:



sudo journalctl -f -n 100 -u chirpstack-gateway-bridge


Salga del registro Ctrl + Z.



No debe haber errores en el registro.



4.4 Instalación y configuración del servidor de red



Instale el paquete:



sudo apt install chirpstack-network-server


Para que el servidor funcione correctamente, necesitamos configurarlo, el archivo de configuración es el archivo:



/etc/chirpstack-network-server/chirpstack-network-server.toml


Antes de usar el servidor de red, es necesario editarlo para nuestras tareas, para esto ingresamos a la carpeta con el archivo:



/etc/chirpstack-network-server/


Y en esta carpeta, ejecute el comando para crear un nuevo archivo de configuración



chirpstack-network-server configfile > chirpstack-network-server.toml


Comencemos a realizar cambios en el archivo de configuración.



Abra el archivo para editarlo en un editor conveniente (nano, vim).



Discutiremos en detalle el elemento en profundidad de la configuración del servidor de red en las próximas partes del ciclo, ahora solo realizaremos configuraciones básicas para proporcionar la base para la funcionalidad.



Configuramos la conexión del servidor de red a la base de datos:



dsn="postgres://chirpstack_ns:dbpassword@localhost/chirpstack_ns?sslmode=disable"


¡Aquí es donde necesitamos el nombre de la base de datos, el nombre de usuario y la contraseña del párrafo anterior!



También editamos el parámetro del plan de frecuencias:



name="RU864"


Guardamos el archivo de configuración, salimos a la consola del terminal.



Iniciamos el servidor de red:



sudo systemctl start chirpstack-network-server


Ponemos el servidor de red en inicio:



sudo systemctl enable chirpstack-network-server


Verificamos el registro del servidor de red, no debería haber errores:



sudo journalctl -f -n 100 -u chirpstack-network-server


El servidor está configurado y funcionando.



4.5 Instalación y configuración del servidor de aplicaciones



Instale el paquete:



sudo apt install chirpstack-application-server


Por analogía con el servidor de red, configuramos el archivo de configuración del servidor de aplicaciones.



Vaya a la carpeta de configuración:



/etc/chirpstack-application-server/


Actualizamos el archivo de configuración:



chirpstack-application-server configfile > chirpstack-application-server.toml


Aquí también tendremos que editar la conexión a la base de datos y un punto muy importante necesitamos crear la clave secreta jwt_secret , para ello ejecutamos el comando:



openssl rand -base64 32


y anote la clave resultante.



Abra el archivo de configuración para editar y cambie las cadenas de conexión de la base de datos a las nuestras:



dsn="postgres://chirpstack_as:dbpassword@localhost/chirpstack_as?sslmode=disable"


Instale la clave secreta copiada:



jwt_secret=”UwX3TeStLtm/7tkW7hsqfbpcvo5k+BOEh/l8uDHCcKU=”


Guardamos el archivo de configuración. Salimos a la consola del terminal.



Iniciamos el servidor de aplicaciones:



sudo systemctl start chirpstack-application-server


Configure el servidor de aplicaciones para que se inicie:



sudo systemctl enable chirpstack-application-server


Comprobando el funcionamiento del servidor de aplicaciones:



sudo journalctl -f -n 100 -u chirpstack-application-server


No debe haber errores.



¡Felicitaciones, LoRaWAN Chirpstack Server está instalado y listo para usar!



En la siguiente parte de esta serie de artículos, entraré en detalles sobre cómo trabajar con la interfaz web del servidor LoRaWAN Chirpstack.



Saludos cordiales,

Director de DoMINO GROUP,

Andrey Golovatenko



All Articles