ACESSO AO NETWORK SERVER (IMT)
Introdução
Com o intuito de habilitar uma conexão segura ao servidor e receber o dado referente a cada sensor na aplicação em campo, o Centro de Pesquisas do Instituto Mauá de Tecnologia disponibilizou um acesso ao Network Server. O Network Server trata-se de um servidor para Internet das Coisas (IoT – Internet of Things), com o propósito de habilitar o usuário final a receber o dado enviado pelo end-node assim que este é enviado ao servidor. Bem como permitir a recuperação de dados de histórico dentro de um determinado período de tempo.
O servidor, ao receber os dados duplamente criptografados, armazena os valores em um banco de dados também de maneira criptografada com uma chave da aplicação denominada appSKey
(application Session key). A outra chave de criptografia se dá pela chave do servidor, denominada nwkSkey
(network Session key). Enquanto a primeira é utilizada pela aplicação para decriptografar os dados do banco de dados no momento da recuperação destes, a segunda chave também funciona como uma segurança da integridade do pacote de dados enviado (MIC – Message Integrity Code). A esses recursos de decriptografia não serão abordados no escopo deste documento. Para saber mais consulte documentação disponível em LoRa Alliance.
Dicionário de Seção
- End-nodes: Dispositivos de aplicação embarcados com sensor, microcontrolador e transmissor rádio frequência padrão LoRa
- Gateway: Dispositivo conectado a uma antena, que se comunica com os end-nodes, bem como conectado ao Network Server via protocolo tcp/IP.
- Json: Sigla para JavaScript Object Notation. Estrutura de objetos para envio de informações indexadas.
- MQTT: Sigla para Message Queueing Telemetry Transport.
- MQTT broker: Serviço que gerencia usuários, senhas, tópicos e aplicações de uma comunicação do tipo MQTT.
- MQTT client: Conecta-se ao servidor MQTT broker para receber e/ou enviar dados.
- MQTT server: Servidor MQTT propriamente dito, instanciado em networkserver.maua.br
- Network Server: Servidor LoRaWAN que gerencia gateways, end-nodes e aplicações.
- Node-RED: Servidor para criação de aplicação. Pode ser instalado localmente ou em nuvem.
- Password: Senha de usuário correspondente ao cadastro do usuário no Network Server.
- **Publish: Ação de publicar em um determinado Topic, por exemplo, para enviar dados da aplicação ao end-node.
- Sign In: Entrar em uma área restrita de cadastro para novos end-nodes no Network Server.
- Sign up: Cadastro do end-node na rede LPWAN.
- **Subscribe: Ação de se inscrever em um determinado Topic, por exemplo, para receber os dados do end-node na aplicação.
- **Topic: Endereçamento em que se está disponibilizado o acesso à aplicação por meio do MQTT broker.
- Username: Nome de usuário correspondente ao cadastro do usuário no Network Server.
**Variáveis referentes à conexão MQTT
Sign In / Sign Up
O cadastro de usuários e aplicações não é realizada através do usuário final da aplicação. É necessário que, a partir do formulário de Contato, identificando o motivo da aplicação, seja efetuada a comunicação com a Divisão de Eletrônica e Telecomunicações do Centro de Pesquisas do Instituto Mauá de Tecnologia. A partir daí, será efetuado o cadastro do usuário e a criação da aplicação, delegando-se a cada usuário o acesso à aplicação correspondente.
Após obtida a resposta pelo e-mail cadastrado no formulário, o usuário poderá administrar a própria aplicação. Para isso, deve-se acessar o website que hospeda a interface referente ao Network Server (https://networkserver.maua.br). Acessando, então, de qualquer dispositivo com conexão à Internet, uma interface gráfica que deve ser conforme a Figura 1 abaixo.
Figura 1 – Interface gráfica do Network Server
Página de login para usuários já cadastrados.
Pede-se para que sejam inseridos as variáveis referentes ao nome de usuário (Username
) e senha (Password
). Após preenchidas essas informaçõese pressionado a tecla ENTER ou clicando-se sobre o botão LOGIN
, será permitido ao usuário acessar as informações referentes somente às aplicações delegadas pelo Centro de Pesquisas.
No exemplo a seguir, Figura 2, foram inseridos Username
/Password
como PUBLIC
/public
.
Figura 2 – Dados referentes ao LOGIN
inseridos nos campos determinados.
Após ter sido realizado o LOGIN
, será mostrado o ambiente da aplicação referente ao usuário conforme a Figura 3 a seguir.
Figura 3 – Interface de ambiente de uma aplicação. Neste caso, a aplicação denominada Hidrometros
.
Nota-se que ao entrar na Área de Acesso ao Usuário, há um campo referente ao ID
da aplicação, Name
(Nome), e Description
(Descrição). No exemplo deste tutorial será abordada uma aplicação denominada Hidrometros
, referente ao ID
igual a 3
que se caracteriza por monitorar a vazão de água no Smart Campus. Essas configurações serão criadas pelo Centro de Pesquisas, conforme a solicitação e descrição da aplicação enviada anteriormente pelo usuário através de Contato.
Configuração da aplicação
Clicando-se em Hidrometros
, é possível, segundo as abas superiores Application Configuration
e Application
Users
, configurar os parâmetros como os mostrados a seguir conforme a Figura 4.
Figura 4 – Guia para a criação de end-nodes dentro da aplicacão Hidrometros
.
Detalhes da aplicação
Para configurar os parâmetros relativos ao protocolo LoRaWAN, deve-se clicar na guia Application Configuration
. É imprescindível que se configure estes parâmetros antes de se adicionar qualquer end-node, pois estas configurações serão utilizadas por todos eles. A partir deste momento será aberta a seguinte tela conforme mostrada na Figura 5.
Figura 5 – Configuração de nome e descrição de aplicação na guia Application Details
.
Em Application Details
é possível editar o nome da aplicação e também a descrição da aplicação.
Configurações de rede
As configurações do protocol LoRaWAN estão na aba Network Settings
, conforme a Figura 6.
Figura 6 – Configurações de rede referentes ao protocolo LoRaWAN entre end-node e Network Server.
À princípio, as configurações a serem setadas devem ser apenas checar o tipo de ativação por ativação por pesonalização ABP
(Activation By Personalizadtion) e a janela de recepção (Receive Window
) como RX1
. Após estas configurações, deve-se clicar em SUBMIT
para salvar as alterações realizadas.
Usuários da aplicação
Na aba Application Users
é possível criar outros usuários para a mesma aplicação, porém isto não será abordado visto que os usuários devem ser criados apenas pelo Centro de Pesquisas. Essa aba delega o direito do usuário smartcampusmaua
na aplicação Hidrometros
, por exemplo, conforme a Figura 7 a seguir.
Figura 7 – Guia Application Users
que delega permissões do usuário em uma aplicação.
Cadastro de nodes
Criação de nodes
Após configurados os parâmetros referentes ao protocolo LoRaWAN através das abas anteriores, deve-se voltar à aba Nodes
para o cadastro de cada end-node da aplicação correspondente bem como a ativação referente a cada cadastro efetuado.
A Figura 4 mostra a aba Nodes
. Ao observá-la, nota-se um ícone create node
ao lado direito da lista a ser cadastrada. Ao ser clicado, deve-se registrar nos campos determinados os dados relativos a cada um. A Figura 8 mostra exatamente os campos a serem preenchidos.
Figura 8 – Campos a serem preenchidos para o cadastro de cada end-node.
Como node-name
, podem ser utilizados somente os caractereres de letras, números e símbolos. Não serão aceitos caracteres como “espaço”. Sugere-se que haja uma padronização do tipo [Nome-da-aplicação
]-
[número-do-node
]. Por exemplo para aplicação Hidrômetros
, o primeiro end-node cadastrado deveria ser Hidrometro-01
.
O campo Description
deverá conter informações relevantes e sucintas sobre o dispositivo bem como interessante descrever onde esatará localizado. O end-node denominado Hidrometro-01
está localizado no Bloco U, portanto, uma sugestão para a descrição é “Monitoramento de vazão da caixa d'água do Bloco U
”. Abordando-se o propósito e a localização de maneira simples e objetiva.
O campo Device-EUI
(EUI – End Device Unique Identifier) refere-se ao único identificador de 16 bytes de cada end-node (o end-node também é denominado de end-device). Este deve ser recuperado através de um comando serial junto ao circuito integrado RN2903 de rádio frequência LoRa. Cada dispositivo possui um dev-EUI diferente proveniente da fábrica. É possível ainda alterá-lo para o valor desejado, porém é fortemente não recomendado. Para informações sobre como obter o dev-EUI de um dispositivo, por favor, deve-se consultar a documentação de end-nodes. Para este exemplo foi recuperado do end-node um dev-EUI igual a 0004a30b001a5ea2
(uma string hexadecimal contendo 16 bytes)
O campo application-EUI
refere-se também a um único identificador da aplicação. Por padrão, deve-se manter a string hexadecimal 1111111111111111
, contendo 16 bytes.
Para se utilizar das configurações de rede inseridas anteriormente em Application Settings
, deve-se checar o item User application Settins
. Isso siginfica que todos os end-nodes desta aplicação utilizarão as configurações abordadas em Network Settings
.
Clicando-se em SUBMIT
, após as configurações realizadas, será mostrada a aba referente a todos os end-nodes cadastrados em uma aplicação. A figura 9, a seguir, demonstra apenas a listagem de cadastro de um único end-node. Conforme aumentando-se o número de end-nodes, estes estarão em ordem alfabética de acordo com o campo Device-name
(referente ao campo anterior Node-name
).
Figura 9 – Listagem de nodes cadastrados em uma aplicação .
Ativação de nodes
Após o cadastro de end-nodes, detalhado acima, ainda é necessário ativá-los. De acordo com o tipo de ativação selecionada, o Network Server começará a receber e a gerenciar os dados dos end-nodes conectados a ele. O modelo de ativação escolhido foi o modelo ABP. Este modelo consite em ao ser recebida a informação de um end-node, o Network Server compara com os dados imputados na abaNode Activation
.
Caso correspondam os dados relativos a devAdd
, nwkSkey
e appSkey
, então uma conexão será estabelecida entre end-node e Network Server. Para gerar os parâmetros necessários, é preciso ir até a aba mencionada Node-Activation
e clicar no end-node em que se deseja ativar. A Figura 10 demontra um exemplo de como registrar estes parâmetros na aba Node-Activation
.
Figura 10 – Inserção de parâmetros para a ativação de end-node através de ativação do tipo ABP
(Activation by Personalization).
Percebe-se que é possível gerar um número randômico através do link generate
para cada campo. Entretanto, é preciso seguir alguns procedimentos segundo o protocolo LoRaWAN. O campo device Address
deve conter 8 bytes em formato hexadecimal. Entretanto, os campo Network session key
e application session key
devem possuir uma string em hexadecimal de 32 bytes cada uma. Estes campos, além de servirem para a ativação, são as chaves de dupla criptografia necessária para decriptografar e decodificar os dados armazenados no banco de dados, referente ao payload enviado pelo end-node e como parâmetro de checagem de integridade da mensagem. Para saber mais sobre esse procedimento, deve-se consultar a documentação disponível em LoRa Alliance.
Registros de atividades do end-node
Finalizado este procedimento, e inseridos os valores de ativação corretamente no código fonte do end-node correspondente, é possível, a partir de agora, receber os dados a serem transmitidos. Para uma rápida visualização, há uma aba denominada frame logs
. Nesta aba é possível visualizar os dados de uplink
e downlink
da comunicação entre end-node e Network Server. Os dados estão, por sua vez, ainda criptografados no campo frmPayload
. A Figura 11 abaixo mostra os dados deste end-node que estão chegando (uplink) ao servidor. Neste caso, somente há uplinks, visto que os dados estão sendo transmitidos pelo end-node sem o caráter de confirmação pelo servidor (unconfirmed).
Na figura a seguir também observa-se uma valor descrito como bytes:"JF0MA3x4Kw=="
. Este valor, embora não se assemelhe com o dado enviado pelo end-node ao servidor, é o dado criptografado armazenado no banco de dados e codificado mostrado em em base64 . Somente com os valores de ativação de cada end-node será possível recuperá-lo de maneira decriptografada e decodificada.

Figura 11 – Guia Frame logs para visualização de dados de uplink e downlink.
Recuperação de dados do node para aplicação
Em relação à Figura 11 acima, a aba demonstrada serve apenas como um debug para que se saiba se o dado esta chegando ao servidor bem como mostrar outras informaçõs referentes ao envio. A recuperação das informações estão descritas nos documentos Acesso ao MQTT broker (Network Server), para a recuperação destes dados exatamente no momento em que são enviados; no documento Acesso à REST API (Network Server), para recuperação de dados de histórico. Esses dois métodos estão em acordo com a mais recente tendência de retorno de informações no formato JSON (JavaScript Object Notation). Bem como ainda em Exemplo de Aplicação MQTT broker (Node-RED) e Exemplo de Aplicação REST API (Node-RED), são demonstradas aplicações em Node-RED, utilizando-se ambos os métodos.