Escola Superior de Tecnologia de Tomar Tiago Alexandre Martins Fernandes sistema integrado de segurança e gestão de energia (sisge)


Manipulação e armazenamento da informação



Baixar 9.55 Mb.
Página23/26
Encontro30.10.2016
Tamanho9.55 Mb.
1   ...   18   19   20   21   22   23   24   25   26

Manipulação e armazenamento da informação


De modo a manipular a informação enviada pelas unidades periféricas para o broker MQTT, a aplicação Node-Red foi utilizada para ligar as várias dimensões do sistema (unidades periféricas, base de dados e aplicação).

O Node-Red é uma aplicação de livre utilização para criação e implementação de aplicações. Foi criada com o objetivo principal de facilitar a interação entre os vários elementos da Internet of Things, ao facilitar a ligação entre dispositivos físicos e aplicações.

Esta aplicação é acedida através de página web e contém nós (nodes) que podem, de uma maneira simples, ser ligados através de um método de programação visual Drag and Drop. Estão organizados por fluxos. Cada nó dispõe de diferentes funções, desde o simples nó de debug que serve para testar o fluxo, até nós para comunicação direta com as GPIO do Raspberry Pi.

A escolha desta aplicação deve-se sobretudo à simplicidade que apresenta para realizar tarefas complexas através de lógica simples. Devido à sua programação em modo visual, os fluxos de nós criados tornam-se simples de interpretar.

Foi inicialmente concebido para trabalhar exclusivamente com o protocolo MQTT. No entanto, devido à sua capacidade de interação com os vários elementos ligados ao sistema (hardware/software), foram desenvolvidas novas funcionalidades.

O Node-Red corre sobre a aplicação base Node.js. Esta utiliza uma linguagem de programação Javascript que corre sobre uma “Máquina Virtual”. Para instalar o Node-Red foram executados os seguintes comandos através de uma ligação SSH:



Este conjunto de comandos descarrega e instala a aplicação Node-Red, assim como as suas dependências. Para iniciar o Node-Red o seguinte comando foi executado:



Ao aceder à pagina web do Node-Red, através do endereço local http://raspberrypi:1880/, é apresentada uma página como demonstrado na Figura 44.





  1. Página inicial do Node-Red com lista de nós à esquerda, área de desenho do fluxo no centro e painel de informação à direita.

Nos vários fluxos desenvolvidos foram utilizados os seguintes nós:

  • http in: recebe pedidos REST do tipo POST ou GET enviados para o endereço definido (e.g. http://raspberrypi:1880/services/rest/getTemperature recebe pedido para o envio de informação da temperatura)

  • mqtt in: subscreve um determinado tópico de modo a receber as mensagens para ele enviadas, por outras palavras, cria um cliente MQTT.

  • inject: injeta manualmente ou através de temporizador uma mensagem no fluxo.

  • twitter in: Recebe mensagens enviadas para as mensagens privadas do twitter.

  • mysql: Cria uma ligação a uma base de dados mysql e executa comandos na mesma. Recebe a resposta aos comandos executados.

  • function: Permite que a mensagem que circula no fluxo seja alterada consoante as necessidades.

  • http out: Envia respostas aos pedidos efetuados por REST através do nó http in.

  • mqtt out: Efetua publicações nos tópicos determinados.

  • tweeter out: Envia mensagens para a rede social Twitter.

  • email: Envia mensagens de correio eletrónico para o endereço determinado.

  • debug: apresenta no painel debug da página do Node-Red a mensagem que é enviada do fluxo para este nó.




  1. Nós Node-Red Utilizados.

Depois de criados os fluxos, estes são colocados em funcionamento após o deploy ser concluído. O deploy é feito através do botão “Deploy” presente na página do Node-Red.

Floram desenvolvidos três fluxos no Node-Red, um fluxo para receção de dados vindos das unidades periféricas, um fluxo para envio de informação para a interface do utilizador e um fluxo para alteração do estado de sensores e atuadores.

O fluxo relativo à inserção da informação vinda das unidades periféricas está representado na Figura 46, em que, o nó sisge/energy é do tipo mqtt in e é um cliente subscritor do tópico para onde são enviadas as mensagens que contêm os dados dos consumos. O nó sisge/security é o cliente mqtt subscritor do tópico para onde é enviada uma mensagem em caso de deteção de movimento. O nó Create Inser Query é do tipo function e constrói, com base na informação recebida no nó mqtt in, o código para inserção e atualização de tabelas na base de dados. O código é executado no nó do tipo mysql que se liga à base de dados. O nó Prepare Email constrói uma mensagem a partir da informação recebida no nó mqtt in. Essa mensagem é depois enviada para um endereço de correio eletrónico. O nó Save to DB cria o código SQL para inserção do estado da deteção de movimentos na base de dados.




  1. Fluxo de receção dos consumos, mensagens de alarme e pedido de definições.

O fluxo relativo ao envio de informação para a interface do utilizador está representado na figura 47. Os nós com nome começado por get são do tipo http in e implementam entradas de serviços de protocolo REST. Consoante o serviço invocado, é criada uma query SQL nos nós do tipo function que é posteriormente executada na base de dados. A resposta obtida da base de dados é convertida em linguagem Json nos nós toArry e enviada ao requerente do serviço REST pelo nó do tipo http out de nome http.



  1. Fluxo de envio de informação para a interface do utilizador.

O fluxo de alteração em base de dados do estado de atuadores e a comunicação desse estado à interface do utilizador, está representado na figura 48. Os nós getSensorStatus e sendCommand são do tipo http in e recebem respetivamente os pedidos de envio e alteração do estado dos atuadores ligados às unidades periféricas. No caso de pedidos de envido é gerada uma query SQL no nó Select Status que é executada em base de dados e posteriormente transformada em linguagem Json e enviada para o requerente no nó Http Response. No caso dos pedidos de alteração, estes são tratados pelos nós Create Statement e enviados para as unidades periféricas através do tópico sisge/control, alterados em base de dados e comunicados à interface do utilizador pelo nó Update Widget.



  1. Fluxo de alteração do estado de atuadores e sensores e envio do estado para a interface do utilizador.

A base de dados escolhida para este projeto foi a MySQL. Esta escolha deveu-se à capacidade que este tipo de base de dados tem e às funções nativas de interação com protocolos Web. Foram criadas várias tabelas onde são guardadas as informações vindas dos sensores. Essas informações são enriquecidas com dados que localizam a informação no tempo. As tabelas criadas estão representadas na Figura 49.

A tabela “CYCLE” contém a informação relativa aos ciclos horários de faturação para Portugal Continental, retirados da página da Entidade Reguladora dos Serviços Energéticos[ERS]. Estes ciclos têm em conta as diferenças devidas ao período de horário de verão. Os preços relativos aos serviços de prestação de energia são guardados na tabela “PRICES” e têm em conta as várias potências, ciclos e tarifas.



A Tabela “ENERGYNOW” guarda a última informação dos consumos enviada pela unidade de aquisição de dados. Toda a informação dos consumos é guardada na tabela “ENERGY_HISTORY”. Na tabela “STATUS” são guardados valores correspondentes ao estado dos sensores e atuadores. As configurações da aplicação são guardadas na tabela “OPTIONS”.



  1. Tabelas criadas para armazenamento de histórico e apoio à aplicação SISGE.

Foram criadas diversas vistas para a base de dados, as mesmas podem ser consultadas no DVD e anexo a este documento. As vistas “LIVE_DASH”, “LAST5MIN”, “LAST24H” e “LIST” executam a seleção de informação dispersa em várias tabelas e reúnem-na numa só vista. Foram ainda criados eventos e triggers de base de dados para criação dos registos diários de consumo, atualização dos custos diários de consumo e atualização dos principais indicadores utilizados na interface do utilizador.


Catálogo: bitstream -> 10400.26 -> 12643
12643 -> Escola Superior de Tecnologia de Tomar Tiago Alexandre Martins Fernandes sistema integrado de segurança e gestão de energia (sisge)
10400.26 -> Fatores determinantes na mudança de auditor: o caso português
10400.26 -> Instituto Politécnico de Portalegre Escola Superior de Tecnologia e Gestão de Portalegre
10400.26 -> Instituto Superior de Gestão a tributação Específica das Sociedades Desportivas em Portugal: o caso particular do Futebol Profissional Fernanda Duarte Marques Projeto apresentado no Instituto Superior de Gestão, para obtenção do Grau de Mestre em Gestão
10400.26 -> Instituto Politécnico de Coimbra Escola Superior Agrária de Coimbra
10400.26 -> BioEnergia Acrónimo: BioEnergia
10400.26 -> Introdução 1 Capítulo I prática de Ensino Supervisionada I e II
10400.26 -> Relatório final da prática de ensino supervisionada andreia Sofia Aguiar Silva
10400.26 -> Validade e Fiabilidade da escala de Mobilidade Funcional – Idosos e Muito Idosos (emf-imi)

Baixar 9.55 Mb.

Compartilhe com seus amigos:
1   ...   18   19   20   21   22   23   24   25   26




©bemvin.org 2020
enviar mensagem

    Página principal
Prefeitura municipal
santa catarina
Universidade federal
prefeitura municipal
pregão presencial
universidade federal
outras providências
processo seletivo
catarina prefeitura
minas gerais
secretaria municipal
CÂmara municipal
ensino fundamental
ensino médio
concurso público
catarina município
reunião ordinária
Dispõe sobre
Serviço público
câmara municipal
público federal
Processo seletivo
processo licitatório
educaçÃo universidade
seletivo simplificado
Secretaria municipal
sessão ordinária
ensino superior
Universidade estadual
Relatório técnico
Conselho municipal
técnico científico
direitos humanos
científico período
pregão eletrônico
Curriculum vitae
espírito santo
Sequência didática
Quarta feira
conselho municipal
prefeito municipal
distrito federal
língua portuguesa
nossa senhora
educaçÃo secretaria
Pregão presencial
segunda feira
recursos humanos
educaçÃO ciência
Terça feira
agricultura familiar