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