Sistema Integrado de Segurança e Gestão ...



-1083854-1348740Escola Superior de Tecnologia de TomarTiago Alexandre Martins FernandesSISTEMA INTEGRADO DE SEGURAN?A E GEST?O DE ENERGIA (SISGE)Manual de Configura??o?NDICE TOC \o "1-3" \h \z \u ?NDICE PAGEREF _Toc436856700 \h 11.Sistema Integrado de Seguran?a e Gest?o de Energia PAGEREF _Toc436856701 \h 22.Unidade Central – Raspberry Pi 2 PAGEREF _Toc436856702 \h 42.1.Sistema Operativo PAGEREF _Toc436856703 \h 42.2.MQTT PAGEREF _Toc436856704 \h 42.3.Instala??o node RED PAGEREF _Toc436856705 \h 52.3.1.Importa??o código Node RED PAGEREF _Toc436856706 \h 62.4.Base de dados - MySQL PAGEREF _Toc436856707 \h 62.5.Interface gráfica - Dashing PAGEREF _Toc436856708 \h 73.Unidades periféricas – Arduino e NodeMCU PAGEREF _Toc436856709 \h 93.1.Prepara??o IDE desenvolvimento PAGEREF _Toc436856710 \h 93.2.Programa??o dos microcontroladores PAGEREF _Toc436856711 \h 93.2.1.Meios de comunica??o PAGEREF _Toc436856712 \h 103.3.Defini??o das constantes PAGEREF _Toc436856713 \h 11Sistema Integrado de Seguran?a e Gest?o de EnergiaO Sistema Integrado de Seguran?a e Gest?o de Energia (SISGE) foi desenvolvido com o intuito de estudar quais as vantagens da utiliza??o de um sistema deste tipo. Foi dada mais relev?ncia à parte do sistema relacionada com monitoriza??o de energia, por ser aquela em que existem menos estudos desenvolvidos por parte do VITA.IPT. O sistema desenvolvido é capaz de medir os consumos com uma precis?o aceitável, nomeadamente o valor da tens?o e da corrente, a potência ativa, o fator de potência e a energia consumida. A partir do valor da energia s?o apresentados os custos diários, semanais, mensais e anuais tendo em conta o servi?o de energia contratado pelo consumidor.Em termos de seguran?a, um sensor de dete??o de presen?a foi incorporado no sistema, sendo este capaz de detetar a presen?a humana que origina a ativa??o de alarmes.Tendo em conta desenvolvimentos futuros deste sistema, foram simulados alguns cenários de produ??o de energia e dete??o de falhas de seguran?a.O sistema apresentado é composto por uma unidade central de controlo e duas unidades periféricas (Figura 1). Protótipo SISGE desenvolvido.A informa??o vinda das unidades periféricas é guardada numa base de dados que é consultada pela aplica??o SISGE. Esta é de acesso web e permite a visualiza??o do consumo em tempo quase real, assim como o estado de sensores lógicos. A página principal da aplica??o SISGE está representada na Figura 2.Página inicial da aplica??o SISGEDiagrama do SISGE Diagrama geral descritivo dos dispositivos utilizados.Unidade Central – Raspberry Pi 2Sistema OperativoO sistema operativo é instalado diretamente no cart?o microSD, a instala??o é feita ligando o cart?o microSD a um computador, sendo necessário efetuar os seguintes passo:483235274955 uma imagem com o sistema operativo, disponível em: Descompactar a imagem de dentro do ficheiro Zip.499745270510 o software SD Formater em:Descompactar e executar o software SD Formater.Formatar o cart?o microSD com o SD Formater.right307340 o software Win32 Disk Imager rem:Instalar e executar o programa Win32 Disk Imager.Abrir o Win32 Disk Imager, selecionar o ficheiro de imagem anteriormente descompactado e selecionar a unidade correspondente ao cart?o microSD. Clicar no bot?o Write para dar início ao processo de escrita no disco. Quando este processo terminar basta inserir o cat?o no Raspberry Pi e ligar o mesmo.A liga??o SSH ao Raspberry Pi pode ser efetuada com o software Putty, efetuando uma liga??o SSH ao endere?o raspberrypi na porta 22.MQTTPara instalar o servidor de MQTT Mosquitto no Raspberry Pi 2 devem ser executados através de uma liga??o SSH os seguintes comandos:wget apt-key add mosquitto-repo.gpg.keycd /etc/apt/sources.list.d/sudo wget apt-get update && sudo apt-get install mosquittowget apt-key add mosquitto-repo.gpg.keycd /etc/apt/sources.list.d/sudo wget apt-get update && sudo apt-get install mosquittoEste conjunto de comandos adicionam a chave de verifica??o de veracidade e o reportório Mosquitto à lista de fontes de pacotes de instala??o. De seguida é instalado o broker Mosquitto. Por padr?o a porta do servidor é a 1883, esta manteve-se inalterada.Para testar o correto funcionamento do broker foi efetuado um teste de subscri??o e publica??o para um tópico através da linha de comandos. Numa linha de comandos foi subscrito o tópico “sensors/temperature” com nível QoS igual a 1 ao utilizar o comando mosquitto_sub: mosquitto_sub -t sensors/temperature -q 1mosquitto_sub -t sensors/temperature -q 1Numa segunda linha de comando foi enviada uma mensagem através do comando mosquitto_pub, com o valor “32” para o canal “sensors/temperature” e com nível QoS igual a 1: mosquitto_pub -t sensors/temperature -m 32 -q 1mosquitto_pub -t sensors/temperature -m 32 -q 1Resultando na rece??o por parte do subscritor de uma mensagem com o valor “32”.Devido ao Router Ethernet restringir o acesso à rede a partir de fontes externas, optou-se por n?o configurar nenhum método de seguran?a adicional no broker. No entanto, este disp?e do comando mosquitto_passwd que permite a gest?o de utilizadores e palavras-passe para autentifica??o dos clientes do servidor.Instala??o node REDPara instalar o Node-Red no Raspberry Pi devem ser executados os seguintes comandos através de uma liga??o SSH:curl -sL | sudo bash -sudo apt-get install -y build-essential python-dev python-rpi.gpio nodejssudo npm install -g --unsafe-perm node-redsudo npm install -g node-red-node-mysqlcurl -sL | sudo bash -sudo apt-get install -y build-essential python-dev python-rpi.gpio nodejssudo npm install -g --unsafe-perm node-redsudo npm install -g node-red-node-mysqlEste 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:node-red-pi --max-old-space-size=128node-red-pi --max-old-space-size=128O acesso à pagina web do Node-Red é feito através do endere?o local instalar o nó que permite a liga??o a bases de dados MySQL o seguinte código deve ser executado:npm install node-red-node-mysqlnpm install node-red-node-mysqlDepois disto o Node Red deve ser reiniciado através do comando:sudo /etc/init.d/nodered restartsudo /etc/init.d/nodered restartImporta??o código Node REDPara importar os fluxos desenvolvidos, depois de instalado o Node Red e o nó MySQL, dever?o ser seguidos os seguintes passos:Aceder à página do Node Red e clicar no menu de op??es existente no topo direito da página, e aceder à op??o Import > Clipboard.Copiar o conteúdo do fluxo que se deseja importar e colar na janela que surgiu na página do Node Red. Confirmar clicando em Ok.O código fornecido encontra-se comentado, e está disponível no DVD anexado a este documento. Base de dados - MySQLPara instalar a base de dados MySQL deve ser executado os seguintes passos:sudo apt-get install mysql-server --fix-missingsudo apt-get install mysql-clientsudo apt-get install mysql-server --fix-missingsudo apt-get install mysql-clientDurante o processo de instala??o da base de dados será requisistado uma palavra-pass para o utilizador root da base de dados. Os seguintes passos devem ser seguidos para proceder à cria??o da base de dados:mysql -uroot -hlocalhost –p – ligar ao servidor de base de dadosCREATE DATABASE SISGE; --criar base de dadosCREATE USER dbuser@'localhost' IDENTIFIED BY 'sisge';GRANT ALL PRIVILEGES ON SISGE.* TO 'dbuser'@'localhost';FLUSH PRIVILEGES;exitmysql -udbuser -hlocalhost SISGE –pSET GLOBAL event_scheduler = ON; --ativa a execu??o de eventosmysql -uroot -hlocalhost –p – ligar ao servidor de base de dadosCREATE DATABASE SISGE; --criar base de dadosCREATE USER dbuser@'localhost' IDENTIFIED BY 'sisge';GRANT ALL PRIVILEGES ON SISGE.* TO 'dbuser'@'localhost';FLUSH PRIVILEGES;exitmysql -udbuser -hlocalhost SISGE –pSET GLOBAL event_scheduler = ON; --ativa a execu??o de eventosPara executar a gest?o da base de dados, ou seja, cria??o e manuten??o das tabelas, vistas, triggers e eventos, aconselha-se o uso do software Dbeaver. Após criar uma liga??o à base de dados utilizando o endere?o de IP do Raspberry Pi, utilizar dbuser e palavra-passe sisge, os scripts SQL disponíveis no DVD fornecido juntamente com este documento devem ser executados. Os scripts encontram-se comentados.Os servi?os e pre?os da energia devem s?o inseridos na tabela PRICES. As defini??o do servi?o, ciclo horário e potência contratada é feita na tabela OPTIONS.Interface gráfica - DashingA aplica??o Dashing executa sobre um servi?o Ruby (ruby-dev) que já se encontrava instalado no Raspberry Pi. A instala??o do Dashing no Raspberry Pi foi feita ao ser executado o seguinte comando:sudo gem install dashingsudo gem install dashingPara importar a aplica??o desenvolvida, a pasta sisge fornecida juntamente com este documento deve ser copiada para a pasta de rede disponível em:\\raspberrypi\pi\\\raspberrypi\pi\ou diretamente através de ftp para a pasta/home/pi//home/pi/A aplica??o é iniciada ao ser executado o seguinte comando:dashing start -ddashing start -dA programa??o da interface é feita em tês locais:ficheiro home.erb que contem todo o código html que invoca os widgets de todas as páginas. ? neste ficheiro que se decidem quais e como s?o dispostos os widgets (data-row/data-col), assim como a sua dimens?o (data-sizex/data-sizey).Scripts em linguagem Ruby. Estes scripts executam servi?os ao iniciar da aplica??o ou em rotinas programadas. Est?o localizados dentro da página jobs.Configura??es dos widgtes que contém três ficheiros:Script coffeescript que executa invoca??es REST e define valores dos widgets ,entre outras possibilidades;Ficheiro html que contém a estrutura do widget;Ficheiro scss que contém a programa??o javascript de configura??o dos estilos do widget. O envio de dados da interface para o Node-Red é feito através de um servi?o REST local da aplica??o, isto porque por raz?es de seguran?a da aplica??o a chamada de servi?os deste tipo n?o pode ser feita diretamente pelo WebBrowser do utilizador. Os servi?os criados para este efeito s?o iniciados pelo script nred.rb contido na pasta jobs. O ficheiro com as fun??es executadas sempre que um servi?o é chamado, encontram-se na pasta lib no ficheiro NRApp.rb. O código desenvolvido encontra-se comentado e está no DVD entregue juntamente com este documento.Unidades periféricas – Arduino e NodeMCUPrepara??o IDE desenvolvimentoDepois de efetuado o download do IDE Arduino da página e de modo a configurar o ambiente para poder compilar o código desenvolvido para o Arduino Mega e NodeMCU, os seguintes passos devem ser seguidos:left596128 o IDE Arduino e ir a File > Preferences e adicionar ao campo Additional Board Manager URLs o seguinte URL:Carregar Ok e abrir o meno Tools > Board: > Board Manager.Procurar por “esp8266” e instalar a biblioteca. Aguardar que termine a instala??o e de seguida reiniciar o IDE.Instalar a biblioteca PubSubClient para utiliza??o com o MQTT indo a Sketch > Include Library > Manage LibrariesPesquisar a biblioteca PubSubClient selecionar e instalar a mesma.Programa??o dos microcontroladoresPara programar os microcontroladores os seguintes passos devem ser efetuados:Abrir o IDE Arduino, no menu Tools > Board: Selecionar a placa de desenvolvimento que se deseja programar (Arduino ou ESP8266) e selecionar a porta de comunica??o série correspondente ao mesmo em Tools > Port.Abrir o código correspondente à placa e carregar no bot?o Upload e esperar que a compila??o e envio terminem.O código utilizado está disponível no DVD anexado a este documento. O mesmo encontra-se comentado.Meios de comunica??oPara configurar o Shield Ethernet no Arduino foi utilizada a biblioteca Ethernet.h, disponível no IDE Arduino e de livre utiliza??o. Esta biblioteca é responsável pelo controlo do circuito integrado W51000, em que foram utilizadas as seguintes fun??es:byte mac[] = { 0xDE, 0xEE, 0xBA, 0xFE, 0xFE, 0xED }; IPAddress ip(192, 168, 1, 11);EthernetClient ethClient;Ethernet.begin(mac, ip); byte mac[] = { 0xDE, 0xEE, 0xBA, 0xFE, 0xFE, 0xED }; IPAddress ip(192, 168, 1, 11);EthernetClient ethClient;Ethernet.begin(mac, ip); Em que, “mac” representa o endere?o físico que se deseja atribuir ao dispositivo a registar na rede Ethernet. A fun??o “IPAddress” define o endere?o de IP que mais tarde será atribuído ao dispositivo. Um novo cliente de Ethernet é criado através da fun??o “EthernetClient”. Este cliente será chamado sempre que se queira enviar ou receber informa??o para a rede. O registo do dispositivo na rede é feito pela fun??o “Ethernet”, que regista o endere?o “mac” e o seu respetivo endere?o de IP na rede.A liga??o de Wi-Fi integrada no microcontrolador ESP8266 permite a liga??o direta do microcontrolador ao Router.A biblioteca ESP8266WiFi.h foi utilizada para registar a placa NodeMCU na rede Wi-Fi. Foi utilizado o seguinte conjunto de fun??es presentes nesta biblioteca:WiFiClient espClient;WiFi.begin(ssid, password);WiFi.status()WiFiClient espClient;WiFi.begin(ssid, password);WiFi.status()A fun??o “WiFiClient” cria um novo cliente de Wi-Fi que será chamado sempre que se queira enviar ou receber informa??o para a rede. ? utilizada a fun??o “WiFi.begin()” para registar o dispositivo na rede identificada pelo seu SSID. Para verificar o estado da liga??o é utilizada a fun??o “WiFi.status()”.A unidade central de controlo do sistema, o computador Raspberry Pi 2, liga-se à rede Ethernet através da porta RJ45 disponível no mesmo. A atribui??o de um endere?o de IP é automática e gerida pelo Router.A biblioteca PubSubClient.h foi utilizada para registar as placas Arduino e NodeMCU no servidor Mosquitto. As fun??es de publica??o/subscri??o de tópicos funcionam em conjunto com as fun??es das bibliotecas de liga??o às redes Ethernet e Wi-Fi, é através dos seus clientes que as mensagens MQTT s?o enviadas. As seguintes fun??es da biblioteca PubSubClient.h foram utilizadas:PubSubClient client(ethClient);client.connect("Nome_Cliente")client.subscribe("subscrever/tópico");client.publish("publicar/tópico", mensagem);client.setServer(server, 1883);client.setCallback(callback);client.connected()PubSubClient client(ethClient);client.connect("Nome_Cliente")client.subscribe("subscrever/tópico");client.publish("publicar/tópico", mensagem);client.setServer(server, 1883);client.setCallback(callback);client.connected()Em que, a fun??o “PubSubClient” cria um cliente MQTT através de uma liga??o Ethernet ou Wi-Fi. A fun??o “connect()” regista o cliente no broker. A informa??o sobre o endere?o do broker é feita através da fun??o “setServer()”. A verifica??o do estado da liga??o ao broker é feita pela fun??o connected(). A subscri??o de tópicos é feita recorrendo à fun??o “subscribe()”, enquanto a publica??o de mensagens para tópicos é feita recorrendo à fun??o “publish()”. Quando uma mensagem é enviada para um tópico subscrito por um destes clientes o método “callback” é chamado para que a mensagem possa ser recebida. Este método é definido no cliente local pela fun??o “setCallback”. Defini??o das constantesleft608038 altera??o das constantes ultilizadas para calculo dos valores da tens?o, corrente, tempo de envido das leituras e estado dos atuadores pode ser feito através de um WebBrowser ao invocar o seguinte link:em que _nome_da_opcao_ é o nome da constante que queremos alterar o valor e _valor_ é o valor para o qual se pretentede alterar.Estas constantes podem ser definidas diretamente na base de dados. ................
................

In order to avoid copyright disputes, this page is only a partial summary.

Google Online Preview   Download

To fulfill the demand for quickly locating and searching documents.

It is intelligent file search solution for home and business.

Literature Lottery

Related searches