{"id":246,"date":"2023-10-30T13:05:07","date_gmt":"2023-10-30T13:05:07","guid":{"rendered":"https:\/\/smartcampus.maua.br\/?page_id=246"},"modified":"2023-10-31T14:06:49","modified_gmt":"2023-10-31T14:06:49","slug":"acesso-ao-network-server-imt","status":"publish","type":"page","link":"https:\/\/smartcampus.maua.br\/?page_id=246","title":{"rendered":"ACESSO AO NETWORK SERVER (IMT)"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"246\" class=\"elementor elementor-246\">\n\t\t\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-48065ae5 elementor-section-full_width elementor-section-height-default elementor-section-height-default\" data-id=\"48065ae5\" data-element_type=\"section\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-b63008\" data-id=\"b63008\" data-element_type=\"column\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t<div class=\"elementor-background-overlay\"><\/div>\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-38252a72 elementor-widget elementor-widget-spacer\" data-id=\"38252a72\" data-element_type=\"widget\" data-widget_type=\"spacer.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-spacer\">\n\t\t\t<div class=\"elementor-spacer-inner\"><\/div>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-70a8ddc4 elementor-widget elementor-widget-heading\" data-id=\"70a8ddc4\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">ACESSO AO NETWORK SERVER (IMT)<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-49d1cad8 elementor-widget elementor-widget-spacer\" data-id=\"49d1cad8\" data-element_type=\"widget\" data-widget_type=\"spacer.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-spacer\">\n\t\t\t<div class=\"elementor-spacer-inner\"><\/div>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-4e8acd9c elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"4e8acd9c\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-c897239\" data-id=\"c897239\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-31b3ca84 elementor-widget elementor-widget-text-editor\" data-id=\"31b3ca84\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<h3>Introdu\u00e7\u00e3o<\/h3><p>Com o intuito de habilitar uma conex\u00e3o segura ao servidor e receber o dado referente a cada sensor na aplica\u00e7\u00e3o em campo, o Centro de Pesquisas do Instituto Mau\u00e1 de Tecnologia disponibilizou um acesso ao\u00a0<em>Network<\/em>\u00a0<em>Server<\/em>. O\u00a0<em>Network<\/em>\u00a0<em>Server<\/em>\u00a0trata-se de um servidor para\u00a0<em>Internet<\/em>\u00a0das Coisas\u00a0<em>(IoT \u2013 Internet of Things),<\/em>\u00a0com o prop\u00f3sito de habilitar o usu\u00e1rio final a receber o dado enviado pelo\u00a0<em>end-node\u00a0<\/em>assim que este \u00e9 enviado ao servidor. \u00a0Bem como permitir a recupera\u00e7\u00e3o de dados de hist\u00f3rico dentro de um determinado per\u00edodo de tempo.<\/p><p>O servidor, ao receber os dados duplamente criptografados, armazena os valores em um banco de dados tamb\u00e9m de maneira criptografada com uma chave da aplica\u00e7\u00e3o denominada\u00a0<em><code>appSKey<\/code>\u00a0(application Session key)<\/em>.\u00a0 A outra chave de criptografia se d\u00e1 pela chave do servidor, denominada\u00a0<em><code>nwkSkey<\/code>\u00a0(network Session key)<\/em>. Enquanto a primeira \u00e9 utilizada pela aplica\u00e7\u00e3o para decriptografar os dados do banco de dados no momento da recupera\u00e7\u00e3o destes, a segunda chave tamb\u00e9m funciona como uma seguran\u00e7a da integridade do pacote de dados enviado\u00a0<em>(MIC \u2013 Message Integrity Code).<\/em>\u00a0A esses recursos de decriptografia n\u00e3o ser\u00e3o abordados no escopo deste documento. Para saber mais consulte documenta\u00e7\u00e3o dispon\u00edvel em\u00a0<em><a href=\"https:\/\/www.lora-alliance.org\/\">LoRa Alliance<\/a><\/em>.<\/p><p><a name=\"dicionario-de-secao\"><\/a><\/p><h3>Dicion\u00e1rio de Se\u00e7\u00e3o<\/h3><ul><li><strong><em>End-nodes:<\/em><\/strong>\u00a0Dispositivos de aplica\u00e7\u00e3o embarcados com sensor, microcontrolador e transmissor r\u00e1dio frequ\u00eancia padr\u00e3o\u00a0<em>LoRa<\/em><\/li><li><strong><em>Gateway:<\/em><\/strong>\u00a0Dispositivo conectado a uma antena, que se comunica com os\u00a0<em>end-nodes<\/em>, bem como conectado ao\u00a0<em>Network Server<\/em>\u00a0via protocolo\u00a0<em>tcp\/IP<\/em>.<\/li><li><strong><em>Json:<\/em><\/strong>\u00a0Sigla para\u00a0<em>JavaScript Object Notation<\/em>. Estrutura de objetos para envio de informa\u00e7\u00f5es indexadas.<\/li><li><strong><em>MQTT:<\/em><\/strong>\u00a0Sigla para\u00a0<em>Message Queueing Telemetry Transport.<\/em><\/li><li><em><strong>MQTT broker:<\/strong><\/em>\u00a0Servi\u00e7o que gerencia usu\u00e1rios, senhas, t\u00f3picos e aplica\u00e7\u00f5es de uma comunica\u00e7\u00e3o do tipo\u00a0<em>MQTT<\/em>.<\/li><li><strong><em>MQTT client:\u00a0<\/em><\/strong>Conecta-se ao servidor\u00a0<em>MQTT broker<\/em>\u00a0para receber e\/ou enviar dados.<\/li><li><em><strong>MQTT server:\u00a0<\/strong><\/em>Servidor\u00a0<em>MQTT<\/em>\u00a0propriamente dito, instanciado em\u00a0<em>networkserver.maua.br<\/em><\/li><li><em><strong>Network Server:<\/strong><\/em>\u00a0Servidor\u00a0<em>LoRaWAN<\/em>\u00a0que gerencia gateways, end-nodes e aplica\u00e7\u00f5es.<\/li><li><strong>Node-RED:\u00a0<\/strong>Servidor para cria\u00e7\u00e3o de aplica\u00e7\u00e3o. Pode ser instalado localmente ou em nuvem.<\/li><li><em><strong>Password:<\/strong><\/em>\u00a0Senha de usu\u00e1rio correspondente ao cadastro do usu\u00e1rio no\u00a0<em>Network Server<\/em>.<\/li><li><strong><em>**Publish:\u00a0<\/em><\/strong>A\u00e7\u00e3o de publicar em um determinado\u00a0<em>Topic, por exemplo,<\/em>\u00a0para enviar dados da aplica\u00e7\u00e3o ao\u00a0<em>end-node<\/em>.<\/li><li><em><strong>Sign In:<\/strong><\/em>\u00a0Entrar em uma \u00e1rea restrita de cadastro para novos<em>\u00a0end-nodes<\/em>\u00a0no\u00a0<em>Network Server.<\/em><\/li><li><strong><em>Sign up:<\/em>\u00a0<\/strong>Cadastro do\u00a0<em>end-node<\/em>\u00a0na rede\u00a0<em>LPWAN.<\/em><\/li><li><strong><em>**Subscribe:\u00a0<\/em><\/strong>A\u00e7\u00e3o de se inscrever em um determinado\u00a0<em>Topic, por exemplo,\u00a0<\/em>para receber os dados do\u00a0<em>end-node<\/em>\u00a0na aplica\u00e7\u00e3o.<\/li><li><em><strong>**Topic:<\/strong><\/em>\u00a0Endere\u00e7amento em que se est\u00e1 disponibilizado o acesso \u00e0 aplica\u00e7\u00e3o por meio do\u00a0<em>MQTT<\/em>\u00a0<em>broker<\/em>.<\/li><li><em><strong>Username:<\/strong><\/em>\u00a0Nome de usu\u00e1rio correspondente ao cadastro do usu\u00e1rio no\u00a0<em>Network Server<\/em>.<\/li><\/ul><p>**Vari\u00e1veis referentes \u00e0 conex\u00e3o\u00a0<em>MQTT<\/em><\/p><p><a name=\"sign-in-sign-up\"><\/a><\/p><h3>Sign In \/ Sign Up<\/h3><p>O cadastro de usu\u00e1rios e aplica\u00e7\u00f5es n\u00e3o \u00e9 realizada atrav\u00e9s do usu\u00e1rio final da aplica\u00e7\u00e3o. \u00c9 necess\u00e1rio que, a partir do formul\u00e1rio de\u00a0\u00a0<a href=\"https:\/\/smartcampus.maua.br\/#contato\">Contato<\/a><em>,<\/em>\u00a0identificando o motivo da aplica\u00e7\u00e3o, seja efetuada a comunica\u00e7\u00e3o com a Divis\u00e3o de Eletr\u00f4nica e Telecomunica\u00e7\u00f5es do Centro de Pesquisas do Instituto Mau\u00e1 de Tecnologia.\u00a0 A partir da\u00ed, ser\u00e1 efetuado o cadastro do usu\u00e1rio e a cria\u00e7\u00e3o da aplica\u00e7\u00e3o, delegando-se a cada usu\u00e1rio o acesso \u00e0 aplica\u00e7\u00e3o correspondente.<\/p><p>Ap\u00f3s obtida a resposta pelo\u00a0<em>e-mail<\/em>\u00a0cadastrado no formul\u00e1rio, o usu\u00e1rio poder\u00e1 administrar a pr\u00f3pria aplica\u00e7\u00e3o. Para isso, deve-se acessar o\u00a0<em>website<\/em>\u00a0que hospeda a interface referente ao\u00a0<a href=\"https:\/\/networkserver.maua.br\/\"><em>Network<\/em>\u00a0<em>Server<\/em><\/a>\u00a0(<a href=\"https:\/\/networkserver.maua.br\/\"><em>https:\/\/networkserver.maua.br<\/em><\/a>). Acessando, ent\u00e3o, de qualquer dispositivo com conex\u00e3o \u00e0 Internet, uma interface gr\u00e1fica que deve ser conforme a Figura 1 abaixo.<\/p><p><img fetchpriority=\"high\" decoding=\"async\" class=\"size-medium aligncenter\" src=\"https:\/\/github.com\/SmartCampusMaua\/assets\/blob\/main\/Imagem\/Figura-1-768x251.png?raw=true\" width=\"768\" height=\"251\" \/><\/p><p style=\"text-align: center;\">Figura 1 \u2013 Interface gr\u00e1fica do\u00a0<em>Network<\/em>\u00a0<em>Server<\/em><\/p><p>P\u00e1gina de\u00a0<em>login<\/em>\u00a0para usu\u00e1rios j\u00e1 cadastrados.<\/p><p>Pede-se para que sejam inseridos as vari\u00e1veis referentes ao nome de usu\u00e1rio (<code><em>Username<\/em><\/code>) e senha (<code><em>Password<\/em><\/code>)<em>.<\/em>\u00a0Ap\u00f3s preenchidas essas informa\u00e7\u00f5ese pressionado a tecla\u00a0<em>ENTER<\/em>\u00a0ou clicando-se sobre o bot\u00e3o\u00a0<em><code>LOGIN<\/code><\/em>, ser\u00e1 permitido ao usu\u00e1rio acessar as informa\u00e7\u00f5es referentes somente \u00e0s aplica\u00e7\u00f5es delegadas pelo Centro de Pesquisas.<\/p><p>No exemplo a seguir, Figura 2, foram inseridos\u00a0<em><code>Username<\/code>\/<code>Password<\/code><\/em>\u00a0como\u00a0\u00a0<em><code>PUBLIC<\/code>\/<code>public<\/code><\/em>.<\/p><p><img decoding=\"async\" class=\"size-medium aligncenter\" src=\"https:\/\/github.com\/SmartCampusMaua\/assets\/blob\/main\/Imagem\/Figura-2-768x225.png?raw=true\" width=\"768\" height=\"225\" \/><\/p><p style=\"text-align: center;\">Figura 2 \u2013 Dados referentes ao\u00a0<code><em>LOGIN<\/em><\/code>\u00a0inseridos nos campos determinados.<\/p><p>Ap\u00f3s ter sido realizado o\u00a0<code><em>LOGIN<\/em><\/code>, ser\u00e1 mostrado o ambiente da aplica\u00e7\u00e3o referente ao usu\u00e1rio conforme a Figura 3 a seguir.<\/p><p><img decoding=\"async\" class=\"size-medium aligncenter\" src=\"https:\/\/github.com\/SmartCampusMaua\/assets\/blob\/main\/Imagem\/Figura-3-768x187.png?raw=true\" width=\"768\" height=\"187\" \/><\/p><p style=\"text-align: center;\">Figura 3 \u2013 Interface de ambiente de uma aplica\u00e7\u00e3o. Neste caso, a aplica\u00e7\u00e3o denominada\u00a0<code>Hidrometros<\/code>.<\/p><p>Nota-se que ao entrar na\u00a0<strong>\u00c1rea de Acesso ao Usu\u00e1rio<\/strong>, h\u00e1 um campo referente ao\u00a0<code><em>ID<\/em><\/code>\u00a0da aplica\u00e7\u00e3o,\u00a0<code><em>Name<\/em><\/code>\u00a0(Nome), e\u00a0<code><em>Description<\/em><\/code>\u00a0(Descri\u00e7\u00e3o). No exemplo deste tutorial ser\u00e1 abordada uma aplica\u00e7\u00e3o denominada\u00a0<code>Hidrometros<\/code>, referente ao\u00a0<code>ID<\/code>\u00a0igual a\u00a0<code>3<\/code>\u00a0que se caracteriza por monitorar a vaz\u00e3o de \u00e1gua no\u00a0<em>Smart<\/em>\u00a0<em>Campus<\/em>. Essas configura\u00e7\u00f5es ser\u00e3o criadas pelo Centro de Pesquisas, conforme a solicita\u00e7\u00e3o e descri\u00e7\u00e3o da aplica\u00e7\u00e3o enviada anteriormente pelo usu\u00e1rio atrav\u00e9s d<em>e\u00a0<a href=\"https:\/\/smartcampus.maua.br\/#contato\">Contato<\/a><\/em>.<\/p><p><a name=\"configuracao-de-aplicacao\"><\/a><\/p><h3>Configura\u00e7\u00e3o da aplica\u00e7\u00e3o<\/h3><p>Clicando-se em\u00a0<code>Hidrometros<\/code>, \u00e9 poss\u00edvel, segundo as abas superiores\u00a0<code><em>Application\u00a0<\/em><em>Configuration<\/em><\/code>\u00a0e\u00a0<code><em>Application\u00a0<\/em><\/code><em><code>Users<\/code>,<\/em>\u00a0configurar os par\u00e2metros como os mostrados a seguir conforme a Figura 4.<\/p><p><img loading=\"lazy\" decoding=\"async\" class=\"size-medium aligncenter\" src=\"https:\/\/github.com\/SmartCampusMaua\/assets\/blob\/main\/Imagem\/Figura-4-768x214.png?raw=true\" width=\"768\" height=\"214\" \/><\/p><p style=\"text-align: center;\">Figura 4 \u2013 Guia para a cria\u00e7\u00e3o de\u00a0<em>end-nodes<\/em>\u00a0dentro da aplicac\u00e3o\u00a0<code>Hidrometros<\/code>.<\/p><p><a name=\"detalhes\"><\/a><\/p><h4>Detalhes da aplica\u00e7\u00e3o<\/h4><p>Para configurar os par\u00e2metros relativos ao protocolo\u00a0<em>LoRaWAN<\/em>, deve-se clicar na guia\u00a0<em><code>Application Configuration<\/code>.<\/em>\u00a0\u00c9 imprescind\u00edvel que se configure estes par\u00e2metros antes de se adicionar qualquer\u00a0<em>end-node<\/em>, pois estas configura\u00e7\u00f5es ser\u00e3o utilizadas por todos eles. A partir deste momento ser\u00e1 aberta a seguinte tela conforme mostrada na Figura 5.<\/p><p><img loading=\"lazy\" decoding=\"async\" class=\"size-medium aligncenter\" src=\"https:\/\/github.com\/SmartCampusMaua\/assets\/blob\/main\/Imagem\/Figura-5-768x371.png?raw=true\" width=\"768\" height=\"371\" \/><\/p><p style=\"text-align: center;\">Figura 5 \u2013 Configura\u00e7\u00e3o de nome e descri\u00e7\u00e3o de aplica\u00e7\u00e3o na guia\u00a0<code>Application Details<\/code>.<\/p><p>Em\u00a0<code><em>Application Details\u00a0<\/em><\/code>\u00e9 poss\u00edvel editar o nome da aplica\u00e7\u00e3o e tamb\u00e9m a descri\u00e7\u00e3o da aplica\u00e7\u00e3o.<\/p><p><a name=\"rede\"><\/a><\/p><h4>Configura\u00e7\u00f5es de rede<\/h4><p>As configura\u00e7\u00f5es do protocol\u00a0<em>LoRaWAN<\/em>\u00a0est\u00e3o na aba<code>\u00a0Network Settings<\/code>, conforme a Figura 6.<\/p><p><img loading=\"lazy\" decoding=\"async\" class=\"size-medium aligncenter\" src=\"https:\/\/github.com\/SmartCampusMaua\/assets\/blob\/main\/Imagem\/Figura-5-768x371.png?raw=true\" width=\"768\" height=\"371\" \/><\/p><p style=\"text-align: center;\">Figura 6 \u2013 Configura\u00e7\u00f5es de rede referentes ao protocolo\u00a0<em>LoRaWAN<\/em>\u00a0entre\u00a0<em>end-node<\/em>\u00a0e\u00a0<em>Network<\/em>\u00a0<em>Server.<\/em><\/p><p>\u00c0 princ\u00edpio, as configura\u00e7\u00f5es a serem setadas devem ser apenas checar o tipo de ativa\u00e7\u00e3o por ativa\u00e7\u00e3o por pesonaliza\u00e7\u00e3o<code>\u00a0<em>ABP<\/em>\u00a0<\/code>(<em>Activation By Personalizadtion<\/em>) e a janela de recep\u00e7\u00e3o (<code><em>Receive Window<\/em><\/code>) como\u00a0<code><em>RX1<\/em><\/code>. Ap\u00f3s estas configura\u00e7\u00f5es, deve-se clicar em\u00a0<code><em>SUBMIT<\/em><\/code>\u00a0para salvar as altera\u00e7\u00f5es realizadas.<\/p><p><a name=\"usuarios\"><\/a><\/p><h3>Usu\u00e1rios da aplica\u00e7\u00e3o<\/h3><p>Na aba\u00a0<code><em>Application Users\u00a0<\/em><\/code>\u00e9 poss\u00edvel criar outros usu\u00e1rios para a mesma aplica\u00e7\u00e3o, por\u00e9m isto n\u00e3o ser\u00e1 abordado visto que os usu\u00e1rios devem ser\u00a0<strong>criados apenas pelo Centro de Pesquisas<\/strong>. Essa aba delega o direito do usu\u00e1rio<code>\u00a0<em>smartcampusmaua<\/em><\/code>\u00a0na aplica\u00e7\u00e3o\u00a0<code>Hidrometros<\/code>, por exemplo, conforme a Figura 7 a seguir.<\/p><p><img loading=\"lazy\" decoding=\"async\" class=\"size-medium aligncenter\" src=\"https:\/\/github.com\/SmartCampusMaua\/assets\/blob\/main\/Imagem\/Figura-7-768x242.png?raw=true\" width=\"768\" height=\"242\" \/><\/p><p style=\"text-align: center;\">Figura 7 \u2013 Guia\u00a0<code>Application Users<\/code>\u00a0que delega permiss\u00f5es do usu\u00e1rio em uma aplica\u00e7\u00e3o.<a name=\"cadastro-de-nodes\"><\/a><a name=\"criacao\"><\/a><\/p><h3>Cadastro de nodes<\/h3><h4>Cria\u00e7\u00e3o de nodes<\/h4><p>Ap\u00f3s configurados os par\u00e2metros referentes ao protocolo\u00a0<em>LoRaWAN<\/em>\u00a0atrav\u00e9s das abas anteriores, deve-se voltar \u00e0 aba\u00a0<code><em>Nodes<\/em><\/code>\u00a0para o cadastro de cada\u00a0<em>end-node<\/em>\u00a0da aplica\u00e7\u00e3o correspondente bem como a ativa\u00e7\u00e3o referente a cada cadastro efetuado.<\/p><p>A Figura 4 mostra a aba\u00a0<code><em>Nodes<\/em><\/code>. Ao observ\u00e1-la, nota-se um \u00edcone\u00a0<code><em>create node<\/em><\/code>\u00a0ao 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.<\/p><p><img loading=\"lazy\" decoding=\"async\" class=\"size-medium aligncenter\" src=\"https:\/\/github.com\/SmartCampusMaua\/assets\/blob\/main\/Imagem\/Figura-8-768x689.png?raw=true\" width=\"768\" height=\"689\" \/><\/p><p style=\"text-align: center;\">Figura 8 \u2013 Campos a serem preenchidos para o cadastro de cada\u00a0<em>end-node<\/em>.<\/p><p>Como\u00a0<em><code>node-name<\/code>,<\/em>\u00a0podem ser utilizados somente os caractereres de letras, n\u00fameros e s\u00edmbolos. N\u00e3o ser\u00e3o aceitos caracteres como \u201cespa\u00e7o\u201d. Sugere-se que haja uma padroniza\u00e7\u00e3o do tipo [<code>Nome-da-aplica\u00e7\u00e3o<\/code>]<code>-<\/code>[<code>n\u00famero-do-node<\/code>]. Por exemplo para aplica\u00e7\u00e3o\u00a0<code>Hidr\u00f4metros<\/code>, o primeiro\u00a0<em>end-node<\/em>\u00a0cadastrado deveria ser\u00a0<code>Hidrometro-01<\/code>.<\/p><p>O campo\u00a0<code><em>Description<\/em><\/code>\u00a0dever\u00e1 conter informa\u00e7\u00f5es relevantes e sucintas sobre o dispositivo bem como interessante descrever onde esatar\u00e1 localizado. O\u00a0<em>end-node<\/em>\u00a0denominado\u00a0<code>Hidrometro-01<\/code>\u00a0est\u00e1 localizado no Bloco U, portanto, uma sugest\u00e3o para a descri\u00e7\u00e3o \u00e9 \u201c<code>Monitoramento de vaz\u00e3o da caixa d'\u00e1gua do Bloco U<\/code>\u201d. Abordando-se o prop\u00f3sito e a localiza\u00e7\u00e3o de maneira simples e objetiva.<\/p><p>O campo\u00a0<code><em>Device-EUI<\/em><\/code>\u00a0(<em>EUI \u2013 \u00a0End Device Unique Identifier<\/em>) refere-se ao \u00fanico identificador de 16\u00a0<em>bytes<\/em>\u00a0de cada\u00a0<em>end-node<\/em>\u00a0(o\u00a0<em>end-node\u00a0<\/em>tamb\u00e9m \u00e9 denominado de\u00a0<em>end-device<\/em>). Este deve ser recuperado atrav\u00e9s de um comando serial junto ao circuito integrado<em>\u00a0RN2903<\/em>\u00a0de r\u00e1dio frequ\u00eancia\u00a0<em>LoRa<\/em>. Cada dispositivo possui um\u00a0<em>dev-EUI<\/em>\u00a0diferente proveniente da f\u00e1brica. \u00c9 poss\u00edvel ainda alter\u00e1-lo para o valor desejado, por\u00e9m \u00e9 fortemente n\u00e3o recomendado. Para informa\u00e7\u00f5es sobre como obter o\u00a0<em>dev-EUI<\/em>\u00a0de um dispositivo, por favor, deve-se consultar a documenta\u00e7\u00e3o de\u00a0<strong>end-nodes.<\/strong>\u00a0Para este exemplo foi recuperado do\u00a0<em>end-node<\/em>\u00a0um\u00a0<em>dev-EUI<\/em>\u00a0igual a\u00a0<code>0004a30b001a5ea2<\/code>\u00a0(uma\u00a0<em>string<\/em>\u00a0hexadecimal contendo 16\u00a0<em>bytes<\/em>)<\/p><p>O campo\u00a0<code><em>application-EUI<\/em>\u00a0<\/code>refere-se tamb\u00e9m a um \u00fanico identificador da aplica\u00e7\u00e3o. Por padr\u00e3o, deve-se manter a\u00a0<em>string hexadecimal\u00a0\u00a0<\/em><code>1111111111111111<\/code>, contendo 16\u00a0<em>bytes<\/em>.<\/p><p>Para se utilizar das configura\u00e7\u00f5es de rede inseridas anteriormente em<code>\u00a0<em>Application Settings<\/em><\/code>, deve-se checar o item\u00a0<code><em>User application Settins<\/em><\/code>. Isso siginfica que todos os\u00a0<em>end-nodes<\/em>\u00a0desta aplica\u00e7\u00e3o utilizar\u00e3o as configura\u00e7\u00f5es abordadas em\u00a0<em><code>Network Settings<\/code>.<\/em><\/p><p>Clicando-se em\u00a0<code><em>SUBMIT<\/em><\/code>, ap\u00f3s as configura\u00e7\u00f5es realizadas, ser\u00e1 mostrada a aba referente a todos os\u00a0<em>end-nodes<\/em>\u00a0cadastrados em uma aplica\u00e7\u00e3o. A figura 9, a seguir, demonstra apenas a listagem de cadastro de um \u00fanico\u00a0<em>end-node<\/em>. Conforme aumentando-se o n\u00famero de\u00a0<em>end-nodes<\/em>, estes estar\u00e3o em ordem alfab\u00e9tica de acordo com o campo\u00a0<code><em>Device-name<\/em><\/code>\u00a0(referente ao campo anterior\u00a0<code><em>Node-name<\/em><\/code>)<em>.<\/em><\/p><p><img loading=\"lazy\" decoding=\"async\" class=\"size-medium aligncenter\" src=\"https:\/\/github.com\/SmartCampusMaua\/assets\/blob\/main\/Imagem\/Figura-9-768x244.png?raw=true\" width=\"768\" height=\"244\" \/><\/p><p style=\"text-align: center;\">Figura 9 \u2013 Listagem de\u00a0<em>nodes<\/em>\u00a0cadastrados em uma aplica\u00e7\u00e3o .<a name=\"ativacao\"><\/a><\/p><h4>Ativa\u00e7\u00e3o de nodes<\/h4><p>Ap\u00f3s o cadastro de\u00a0<em>end-nodes,<\/em>\u00a0detalhado acima, ainda \u00e9 necess\u00e1rio ativ\u00e1-los. De acordo com o tipo de ativa\u00e7\u00e3o selecionada, o\u00a0<em>Network<\/em>\u00a0<em>Server<\/em>\u00a0come\u00e7ar\u00e1 a receber e a gerenciar os dados dos\u00a0<em>end-nodes<\/em>\u00a0conectados a ele. O modelo de ativa\u00e7\u00e3o escolhido foi o modelo\u00a0<em>ABP<\/em>. Este modelo consite em ao ser recebida a informa\u00e7\u00e3o de um\u00a0<em>end-node<\/em>, o\u00a0<em>Network<\/em>\u00a0<em>Server<\/em>\u00a0compara com os dados imputados na aba<code><em>Node\u00a0<\/em><em>Activation<\/em><\/code>.<\/p><p>Caso correspondam os dados relativos a\u00a0<code><em>devAdd<\/em><\/code>,\u00a0<code><em>nwkSkey<\/em><\/code>\u00a0e\u00a0<code><em>appSkey<\/em><\/code>, ent\u00e3o uma conex\u00e3o ser\u00e1 estabelecida entre\u00a0<em>end-node\u00a0<\/em>e<em>\u00a0Network Server<\/em>. Para gerar os par\u00e2metros necess\u00e1rios, \u00e9 preciso ir at\u00e9 a aba mencionada\u00a0<em><code>Node-Activation<\/code><\/em>e clicar no\u00a0<em>end-node<\/em>\u00a0em que se deseja ativar.\u00a0 A Figura 10 demontra um exemplo de como registrar estes par\u00e2metros na aba\u00a0<em><code>Node-Activation<\/code>.<\/em><\/p><p><img loading=\"lazy\" decoding=\"async\" class=\"size-medium aligncenter\" src=\"https:\/\/github.com\/SmartCampusMaua\/assets\/blob\/main\/Imagem\/Figura-10-768x445.png?raw=true\" width=\"768\" height=\"445\" \/><\/p><p style=\"text-align: center;\">Figura 10 \u2013 Inser\u00e7\u00e3o de par\u00e2metros para a ativa\u00e7\u00e3o de\u00a0<em>end-node<\/em>\u00a0atrav\u00e9s de ativa\u00e7\u00e3o do tipo\u00a0<em>ABP<\/em><br \/>(<em>Activation by Personalization<\/em>).<\/p><p>Percebe-se que \u00e9 poss\u00edvel gerar um n\u00famero rand\u00f4mico atrav\u00e9s do\u00a0<em>link<\/em>\u00a0<code><em>generate<\/em><\/code>\u00a0para cada campo. Entretanto, \u00e9 preciso seguir alguns procedimentos segundo o protocolo\u00a0<em>LoRaWAN<\/em>. O campo\u00a0<code><em>device Address<\/em>\u00a0<\/code>deve conter 8\u00a0<em>bytes<\/em>\u00a0em formato hexadecimal. Entretanto, os campo\u00a0<code><em>Network<\/em>\u00a0<em>session<\/em>\u00a0<em>key<\/em><\/code>\u00a0e\u00a0<code><em>application<\/em>\u00a0<em>session<\/em>\u00a0<em>key<\/em><\/code>\u00a0devem possuir uma\u00a0<em>string<\/em>\u00a0em hexadecimal de 32\u00a0<em>bytes<\/em>\u00a0cada uma. Estes campos, al\u00e9m de servirem para a ativa\u00e7\u00e3o, s\u00e3o as chaves de dupla criptografia necess\u00e1ria para decriptografar e decodificar os dados armazenados no banco de dados, referente ao\u00a0<em>payload<\/em>\u00a0enviado pelo\u00a0<em>end-node<\/em>\u00a0e como par\u00e2metro de checagem de integridade da mensagem. Para saber mais sobre esse procedimento, deve-se consultar a documenta\u00e7\u00e3o dispon\u00edvel em\u00a0<em><a href=\"https:\/\/www.lora-alliance.org\/\">LoRa Alliance<\/a><\/em>.<\/p><p><a name=\"registros\"><\/a><\/p><h4>Registros de atividades do\u00a0<em>end-node<\/em><\/h4><p>Finalizado este procedimento, e inseridos os valores de ativa\u00e7\u00e3o corretamente no c\u00f3digo fonte do\u00a0<em>end-node<\/em>\u00a0correspondente, \u00e9 poss\u00edvel, a partir de agora, receber os dados a serem transmitidos. Para uma r\u00e1pida visualiza\u00e7\u00e3o, h\u00e1 uma aba denominada\u00a0<code><em>frame<\/em>\u00a0<em>logs<\/em><\/code>.\u00a0 Nesta aba \u00e9 poss\u00edvel visualizar os dados de\u00a0<code><em>uplink<\/em><\/code>\u00a0e\u00a0<code><em>downlink<\/em><\/code>\u00a0da comunica\u00e7\u00e3o entre\u00a0<em>end-node<\/em>\u00a0e<em>\u00a0Network Server<\/em>. Os dados est\u00e3o, por sua vez, ainda criptografados no campo\u00a0<code><em>frmPayload<\/em><\/code>. A Figura 11 abaixo mostra os dados deste\u00a0<em>end-node<\/em>\u00a0que est\u00e3o chegando\u00a0<em>(uplink)<\/em>\u00a0ao servidor. Neste caso, somente h\u00e1\u00a0<em>uplinks<\/em>, visto que os dados est\u00e3o sendo transmitidos pelo\u00a0<em>end-node<\/em>\u00a0sem o car\u00e1ter de confirma\u00e7\u00e3o pelo servidor (<em>unconfirmed<\/em>).<\/p><p>Na figura a seguir tamb\u00e9m observa-se uma valor descrito como\u00a0<code><em>bytes:<\/em>\"JF0MA3x4Kw==\"<\/code>. Este valor, embora n\u00e3o se assemelhe com o dado enviado pelo\u00a0<em>end-node<\/em>\u00a0ao servidor, \u00e9 o dado criptografado armazenado no banco de dados e codificado mostrado em em\u00a0<em>base64<\/em>\u00a0. Somente com os valores de ativa\u00e7\u00e3o de cada\u00a0<em>end-node<\/em>\u00a0ser\u00e1 poss\u00edvel recuper\u00e1-lo de maneira decriptografada e decodificada.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-32654190 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"32654190\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-5ec20c8\" data-id=\"5ec20c8\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-166ff5a9 elementor-widget elementor-widget-image\" data-id=\"166ff5a9\" data-element_type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img decoding=\"async\" src=\"https:\/\/github.com\/SmartCampusMaua\/assets\/blob\/main\/Imagem\/Figura-11-768x469.png?raw=true\" title=\"\" alt=\"\" loading=\"lazy\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-15b41fe7 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"15b41fe7\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-56e4c3b1\" data-id=\"56e4c3b1\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-55ad740c elementor-widget elementor-widget-text-editor\" data-id=\"55ad740c\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Figura 11 \u2013 Guia Frame logs para visualiza\u00e7\u00e3o de dados de\u00a0<em>uplink<\/em>\u00a0e\u00a0<em>downlink<\/em>.<\/p><p><a name=\"recuperacao-de-dados\"><\/a><\/p><h3>Recupera\u00e7\u00e3o de dados do node para aplica\u00e7\u00e3o<\/h3><p>Em rela\u00e7\u00e3o \u00e0 Figura 11 acima, a aba demonstrada serve apenas como um\u00a0<em>debug<\/em>\u00a0para que se saiba se o dado esta chegando ao servidor bem como mostrar outras informa\u00e7\u00f5s referentes ao envio. A recupera\u00e7\u00e3o das informa\u00e7\u00f5es est\u00e3o descritas nos documentos\u00a0<a href=\"https:\/\/smartcampus.maua.br\/?page_id=243\">Acesso ao\u00a0<em>MQTT broker<\/em>\u00a0(<em>Network Server<\/em>)<\/a>, para a recupera\u00e7\u00e3o destes dados exatamente no momento em que s\u00e3o enviados; no documento\u00a0<a href=\"https:\/\/smartcampus.maua.br\/?page_id=246\">Acesso \u00e0\u00a0<em>REST API<\/em>\u00a0(<em>Network Server<\/em>)<\/a>, para recupera\u00e7\u00e3o de dados de hist\u00f3rico. Esses dois m\u00e9todos est\u00e3o em acordo com a mais recente tend\u00eancia de retorno de informa\u00e7\u00f5es no formato\u00a0<em>JSON (JavaScript Object Notation)<\/em>. Bem como ainda em\u00a0<a href=\"https:\/\/smartcampus.maua.br\/?page_id=252\">Exemplo de Aplica\u00e7\u00e3o\u00a0<em>MQTT<\/em>\u00a0<em>broker<\/em>\u00a0(<em>Node-RED<\/em>)<\/a>\u00a0e\u00a0<a href=\"https:\/\/smartcampus.maua.br\/?page_id=264\">Exemplo de Aplica\u00e7\u00e3o\u00a0<em>REST API<\/em>\u00a0(<em>Node-RED<\/em>)<\/a>, s\u00e3o demonstradas aplica\u00e7\u00f5es em\u00a0<em>Node-RED<\/em>, utilizando-se ambos os m\u00e9todos.<\/p><div id=\"gtx-trans\" style=\"position: absolute; left: -35px; top: -2.44444px;\"><div class=\"gtx-trans-icon\">\u00a0<\/div><\/div>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-218c8efc elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"218c8efc\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-450ce705\" data-id=\"450ce705\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap\">\n\t\t\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>ACESSO AO NETWORK SERVER (IMT) Introdu\u00e7\u00e3o Com o intuito de habilitar uma conex\u00e3o segura ao servidor e receber o dado referente a cada sensor na aplica\u00e7\u00e3o em campo, o Centro de Pesquisas do Instituto Mau\u00e1 de Tecnologia disponibilizou um acesso ao\u00a0Network\u00a0Server. O\u00a0Network\u00a0Server\u00a0trata-se de um servidor para\u00a0Internet\u00a0das Coisas\u00a0(IoT \u2013 Internet of Things),\u00a0com o prop\u00f3sito de habilitar [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"site-sidebar-layout":"no-sidebar","site-content-layout":"","ast-site-content-layout":"full-width-container","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"disabled","ast-breadcrumbs-content":"","ast-featured-img":"disabled","footer-sml-layout":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"class_list":["post-246","page","type-page","status-publish","hentry"],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/smartcampus.maua.br\/index.php?rest_route=\/wp\/v2\/pages\/246","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/smartcampus.maua.br\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/smartcampus.maua.br\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/smartcampus.maua.br\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/smartcampus.maua.br\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=246"}],"version-history":[{"count":14,"href":"https:\/\/smartcampus.maua.br\/index.php?rest_route=\/wp\/v2\/pages\/246\/revisions"}],"predecessor-version":[{"id":843,"href":"https:\/\/smartcampus.maua.br\/index.php?rest_route=\/wp\/v2\/pages\/246\/revisions\/843"}],"wp:attachment":[{"href":"https:\/\/smartcampus.maua.br\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=246"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}