Notice: Function _load_textdomain_just_in_time was called incorrectly. Translation loading for the all-in-one-seo-pack domain was triggered too early. This is usually an indicator for some code in the plugin or theme running too early. Translations should be loaded at the init action or later. Please see Debugging in WordPress for more information. (This message was added in version 6.7.0.) in /var/www/html/wp-includes/functions.php on line 6121 Notice: Function _load_textdomain_just_in_time was called incorrectly. Translation loading for the wpforms-lite domain was triggered too early. This is usually an indicator for some code in the plugin or theme running too early. Translations should be loaded at the init action or later. Please see Debugging in WordPress for more information. (This message was added in version 6.7.0.) in /var/www/html/wp-includes/functions.php on line 6121 Notice: Function _load_textdomain_just_in_time was called incorrectly. Translation loading for the astra domain was triggered too early. This is usually an indicator for some code in the plugin or theme running too early. Translations should be loaded at the init action or later. Please see Debugging in WordPress for more information. (This message was added in version 6.7.0.) in /var/www/html/wp-includes/functions.php on line 6121 ACESSO AO NETWORK SERVER (IMT) - Smart Campus Mauá

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 dContato.

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 devAddnwkSkey 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-Activatione 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.

 
Scroll to Top