DOCUMENTAÇÃO DE APLICAÇÃO
Criação de Ambiente para Aplicação (Node-RED)
INSTALAÇÃO NODE-RED
Para que o usuários de aplicação possam reproduzir uma aplicação em Node-RED, este documento aborda como se proceder passo a passo em termos de instalação e segurança necessária para se criar um servidor local de aplicação. A partir daí de qualquer lugar dentro de uma mesma rede é possível acessar esta aplicação.
Acesso ao Network Server
O Network Server é um servidor voltado para Internet das Coisas (IoT – Internet of Things) e caracteriza-se por gerenciar os dados enviados por um end-node (dispositivo embarcado com transmissor de rádio frequência referente ao protocolo LoRaWAN) e disponibilizar estes dados ao usuário final de uma aplicação que se utiliza deste servidor. Este serviço encontra-se em uma plataforma de nuvem hospedada em um datacenter localizado no Instituto Mauá de Tecnologia, campus São Caetano do Sul. A esta documentação propõe-se permitir que o usuário realize o acesso ao servidor para cadastrar e ativar os end-nodes referentes à respectiva aplicação. Por fim, sugerir meios para que os dados armazenados no banco de dados possam ser recuperados e/ou transmitidos à aplicação no momento do envio de um pacote de informação pelo end-node ao servidor
Integração com ThingSpeak (MathWorks)
Thingspeak é uma plataforma online para se integrar ferramentas matemáticas de alto nível como Matlab e Simulink, por exemplo, junto ao recebimentos de dados online para uma aplicação, por exemplo. Dentre as diversas maneiras de se integrar os dados com esta plataforma, esta documentação explorará a conexão via MQTT broker partindo de uma aplicação em que será efetuado um subscribe no servidor MQTT do NetworkServer e a parir disto, será executado um publish no MQTT broker do ThingSpeak
Exemplo de Aplicação MQTT broker (Node-RED)
A aplicação demonstrada nesta documentação é baseada em Node-RED. Após instanciada, seja localmente ou em nuvem, é possível que um cliente MQTT Node-RED se conecte ao servidor MQTT do Network Server. Todos os passos para este procedimento até a exibição do valor instantâneamete enviado pelo node da aplicação em um dashboard são demonstrados segundo esta documentação
Acesso ao MQTT broker (Network Server)
O Network Server executa um comando de publish (publicação) do dado recebido pelo end-node (dispositivo embarcado com transmissor de rádio frequência referente ao protocolo LoRaWAN) da aplicação em um sub-servidor denominado MQTT (Message Queueing Telemetry Transport) broker. O recebimento do dado pelo usuário na aplicação é realizado através de um comando de subscribe (inscrição) neste mesmo sub-servidor de acordo com as características de endereçamento de IP (Internet Protocol), porta, nome de usuário e senha corretamente inscritos em um tipo de endereçamento denominado tópico. O tópico se trata do “local” em que uma mensagem transmitida é disponibilizada. Logo, o acesso ao dado do end-node no momento enviado é restrito somente a quem possui o direito sobre a determinada aplicação. Diferentemente da utilização de REST API (Representational State Transfer Application Programming Interface) , não há possibilidade de requisição de dados armazenados no banco de dados. O dado estará disponível apenas no momento em que o end-node enviá-lo ao servidor e para quem realizou um subscribe (inscrição) no tópico mencionado neste mesmo sub-servidor e de maneira autenticada, através de parâmetros de nome de usuário e senha, como citado anteriormente. Caracterizando-se por um dado volátil, portanto, é necessário que se esteja conectado para recebê-lo. Também é importante lembrar que a conexão é de caráter permanente e auto reconectável. Por padrão, no protocolo MQTT não se faz uma requisição de conexão intermitente, isto é, temporária. E, sim deve-se permanecer conectado até quando se desejar. Para um exemplo de aplicação com este recurso deve-se consultar a documentação Exemplo de Aplicação MQTT broker (Node-RED)(saiba +).
Acesso à REST API (Network Server)
A recuperação dos dados enviados através dos end-nodes por cada aplicação é importante em relação ao histórico de dados disponível. Além de ser um backup dos dados caso uma conexão MQTT broker não seja estabelecida pela aplicação, o acesso à REST API permite que o usuário realize um backup de tempos em tempos para o próprio banco de dados. A saber que o banco de dados do Network Server apenas garante o armazenamento dos dados referentes aos últimos 7 dias.
Para que o processo descrito ocorra com segurança entre as camadas servidor e aplicação, foi desenvolvida uma REST API (Representational State Transfer Application Programming Interface) em que através de uma requisição HTTP (HyperText Transfer Protocol) do tipo GET, são retornados os últimos valores inseridos no banco de dados de maneira decrescente. Isto é, do mais atual ao mais antigo, de acordo com o parâmetro de quantidade de logs, inserido no momento da requisição. Esta documentação especifica os detalhes de protocolo deste tipo de requisição e o método de retorno. Para um exemplo de aplicação com este recurso deve-se consultar a documentação Exemplo de Aplicação REST API (Node-RED).
Exemplo de Aplicação REST API (Node-RED)
A aplicação demonstrada nesta documentação é baseada em Node-RED. Após instanciada, seja localmente ou em nuvem, é possível se utilizar de uma requisição http para que se recupere os dados decriptografados e decodificados do banco de dados exatamente como foi enviado anteriormente pelo node ao servidor. Este procedimento é voltado para a recuperação dos dados e não para o monitoramento em tempo real. Para maiores detalhes sobre este tipo de requisição consulte ACESSO À REST-API (NETWORK SERVER). Todos os passos para este procedimento até a exibição de valor recuperado do banco de dados em um dashboard são demonstrados segundo esta documentação