Uma série de artigos sobre a instalação e operação do servidor LoRaWAN Chirpstack

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



All Articles