1. Introdução
Esta série de artigos será dedicada à implantação e operação de software de código aberto: o servidor de rede LoRaWAN Chirpstack. Este software foi criado por um dos entusiastas da Holanda, Orne Brocaar , e pode ser usado para construir suas próprias redes LoRaWAN. Os componentes do sistema são licenciados pela licença MIT e podem ser usados para operação comercial.
Comunicando-se com clientes e consumidores de nossos dispositivos LoRaWAN, ouvi repetidamente pedidos de ajuda na implantação de minhas próprias redes com base neste servidor, o que me fez pensar que é necessário um guia generalizado para implantação e operação do servidor, que pude ler passo a passo, com suas próprias mãos, instale qualquer um. Nesse sentido, nasceu esta série de artigos. O que vamos discutir? Vamos começar com a coisa mais importante, instalando todos os componentes do servidor. Além disso, haverá artigos sobre a operação do servidor, sobre integração com plataformas externas, sobre o uso de novas tecnologias de redes LoRaWAN como Multicast e FUOTA. E então, vamos começar ... parte um.
2. Com o que vamos trabalhar
Em primeiro lugar, descreveremos o que iremos testar e implantar o servidor LoRaWAN.
Hardware:
- Gateway LoRaWAN: DoMINO Indoor v.1.0 (você pode usar outro, por exemplo, Vega BS xx)
- Contador de pulso DoMINO PULSE v.4.3 +
Programas:
- Cloud Server com Ubuntu 18.04
3. Descrição do servidor Chirpstack
A estrutura do servidor de rede LoRaWAN é mostrada na Figura 1.

Fig.1
Os principais componentes do servidor são:
Gateway Bridge - alguma ponte entre o programa Packet Forwarder instalado na estação base (gateway) e a própria estrutura do servidor LoRaWAN;
Servidor de rede - um servidor de rede que processa mensagens em nível de rede;
Servidor de aplicativos - um servidor de aplicativos que fornece operação de rede no nível do usuário, integrado com plataformas externas.
Componentes auxiliares:
MQTT Broker Mosquitto - para mensagens internas entre componentes do servidor;
Redis - um banco de dados intermediário para armazenar dados transitórios;
PostgreSQL- um banco de dados para armazenamento permanente de dados.
Todo o software é software de código aberto.
4. Instalação do servidor
O servidor está instalado no Ubuntu 18.04 ou sistema operacional Debian. Descreveremos a instalação usando um servidor em nuvem no Ubuntu 18.04. A conexão com o servidor é feita via SSH usando o cliente Putty. Nota: Presume-se que nosso leitor tenha uma ideia de trabalhar com Ubuntu, SSH, Putty, tenha um SO instalado e configurado.
4.1 Instalação e configuração de software auxiliar
Para começar, precisamos instalar pacotes auxiliares. Para fazer isso, digite o comando no console:
sudo apt install mosquitto mosquitto-clients redis-server redis-tools postgresql
e aguarde a conclusão da instalação.
Em seguida, você precisa configurar o banco de dados PostgreSQL e adicionar usuários a ele.
Vamos para o modo de gerenciamento de banco de dados:
sudo -u postgres psql
O prompt de gerenciamento do banco de dados aparecerá postgres = #
Crie usuários com suas senhas (você precisa se lembrar desses dados, você pode fornecer outros logins e senhas, mas lembre-se deles, eles serão necessários para configurar o servidor de rede e o servidor de aplicativos).
Criamos um usuário para o servidor de rede:
create role chirpstack_ns with login password 'dbpassword';
Criamos um usuário para o servidor de aplicativos:
create role chirpstack_as with login password 'dbpassword';
Vamos criar um banco de dados para o servidor de rede:
create database chirpstack_ns with owner chirpstack_ns;
Crie um banco de dados para o servidor de aplicativos:
create database chirpstack_as with owner chirpstack_as;
Configurações adicionais
Conecte-se ao banco de dados:
\c chirpstack_as
Crie uma extensão:
create extension pg_trgm;
Crie uma extensão:
create extension hstore;
Saia da edição dos parâmetros do banco de dados:
\q
4.2 Instalando o repositório Chirpstack
Os seguintes componentes devem ser instalados: dirmngr e apt-transport-https, caso não execute o comando:
sudo apt install apt-transport-https dirmngr
Instale a chave para o novo repositório:
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 1CE2AFD36DBCCA00
Adicione o repositório à lista:
sudo echo "deb https://artifacts.chirpstack.io/packages/3.x/deb stable main" | sudo tee /etc/apt/sources.list.d/chirpstack.list
Vamos atualizar o cache do apt:
sudo apt update
Isso completa a configuração preliminar.
4.3 Instalando o Gateway Bridge
Instale o pacote:
sudo apt install chirpstack-gateway-bridge
Inicie o Gateway Bridge:
sudo systemctl start chirpstack-gateway-bridge
Colocamos o aplicativo Gateway Bridge na inicialização:
sudo systemctl enable chirpstack-gateway-bridge
Para verificar a exatidão do lançamento e instalação, você pode verificar o log de trabalho usando o comando:
sudo journalctl -f -n 100 -u chirpstack-gateway-bridge
Saia do registro Ctrl + Z.
Não deve haver erros no log.
4.4 Instalação e configuração do servidor de rede
Instale o pacote:
sudo apt install chirpstack-network-server
Para que o servidor funcione corretamente, precisamos configurá-lo, o arquivo de configuração é o arquivo:
/etc/chirpstack-network-server/chirpstack-network-server.toml
Antes de usar o servidor de rede, você precisa editá-lo para nossas tarefas, para isso entramos na pasta com o arquivo:
/etc/chirpstack-network-server/
E nesta pasta, execute o comando para criar um novo arquivo de configuração
chirpstack-network-server configfile > chirpstack-network-server.toml
Vamos começar a fazer mudanças no arquivo de configuração.
Abra o arquivo para edição em um editor conveniente (nano, vim).
Discutiremos em detalhes o item detalhado das configurações do servidor de rede nas próximas partes do ciclo, agora faremos apenas as configurações básicas para fornecer a base para a funcionalidade.
Configuramos a conexão do servidor de rede ao banco de dados:
dsn="postgres://chirpstack_ns:dbpassword@localhost/chirpstack_ns?sslmode=disable"
É aqui que precisamos do nome do banco de dados, login e senha do parágrafo anterior!
Também editamos o parâmetro do plano de frequência:
name="RU864"
Nós salvamos o arquivo de configuração, saia para o console do terminal.
Iniciamos o servidor de rede:
sudo systemctl start chirpstack-network-server
Colocamos o servidor de rede na inicialização:
sudo systemctl enable chirpstack-network-server
Verificamos o log do servidor de rede, não deve haver erros:
sudo journalctl -f -n 100 -u chirpstack-network-server
O servidor está configurado e funcionando.
4.5 Instalação e configuração do servidor de aplicativos
Instale o pacote:
sudo apt install chirpstack-application-server
Por analogia com o servidor de rede, configuramos o arquivo de configuração do servidor de aplicativos.
Vá para a pasta de configurações:
/etc/chirpstack-application-server/
Atualizamos o arquivo de configuração:
chirpstack-application-server configfile > chirpstack-application-server.toml
Aqui também teremos que editar a conexão com o banco de dados e um ponto muito importante que precisamos criar a chave secreta jwt_secret , para isso rodamos o comando:
openssl rand -base64 32
e anote a chave resultante.
Abra o arquivo de configuração para edição e altere as strings de conexão do banco de dados para as nossas:
dsn="postgres://chirpstack_as:dbpassword@localhost/chirpstack_as?sslmode=disable"
Instale a chave secreta copiada:
jwt_secret=”UwX3TeStLtm/7tkW7hsqfbpcvo5k+BOEh/l8uDHCcKU=”
Salvamos o arquivo de configuração. Saímos para o console do terminal.
Iniciamos o servidor de aplicativos:
sudo systemctl start chirpstack-application-server
Defina o servidor de aplicativos para inicialização:
sudo systemctl enable chirpstack-application-server
Verificando o funcionamento do servidor de aplicativos:
sudo journalctl -f -n 100 -u chirpstack-application-server
Não deve haver erros.
Parabéns, o servidor LoRaWAN Chirpstack está instalado e pronto para uso!
Na próxima parte desta série de artigos, falarei em detalhes sobre como trabalhar com a interface da Web do servidor Chirpstack LoRaWAN.
Atenciosamente,
Chefe do Grupo DoMINO,
Andrey Golovatenko