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



Baixar 0,94 Mb.
Página4/4
Encontro29.10.2016
Tamanho0,94 Mb.
1   2   3   4

  1. Diagrama geral descritivo dos dispositivos utilizados.
  1. Unidade Central – Raspberry Pi 2




1.1.Sistema Operativo


O 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:


  1. https://www.raspberrypi.org/downloads/raspbian/

    Descarregar uma imagem com o sistema operativo, disponível em:

  2. Descompactar a imagem de dentro do ficheiro Zip.


  3. https://www.sdcard.org/downloads/formatter_4/eula_windows/index.html

    Descarregar o software SD Formater em:



  4. Descompactar e executar o software SD Formater.

  5. Formatar o cartão microSD com o SD Formater.


  6. http://sourceforge.net/projects/win32diskimager/

    Descarregar o software Win32 Disk Imager rem:



  7. Instalar e executar o programa Win32 Disk Imager.

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



1.2.MQTT


Para instalar o servidor de MQTT Mosquitto no Raspberry Pi 2 devem ser executados através de uma ligação SSH os seguintes comandos:

Este 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:

Numa 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:



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

1.3.Instalação node RED


Para instalar o Node-Red no Raspberry Pi devem ser 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:



O acesso à pagina web do Node-Red é feito através do endereço local http://raspberrypi:1880/.

Para instalar o nó que permite a ligação a bases de dados MySQL o seguinte código deve ser executado:

Depois disto o Node Red deve ser reiniciado através do comando:





1.3.1.Importação código Node RED


Para importar os fluxos desenvolvidos, depois de instalado o Node Red e o nó MySQL, deverão ser seguidos os seguintes passos:

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

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



1.4.Base de dados - MySQL


Para instalar a base de dados MySQL deve ser executado os seguintes passos:

Durante 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:

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



1.5.Interface gráfica - Dashing


A 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:

Para importar a aplicação desenvolvida, a pasta sisge fornecida juntamente com este documento deve ser copiada para a pasta de rede disponível em:



ou diretamente através de ftp para a pasta



A aplicação é iniciada ao ser executado o seguinte comando:



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


  1. Unidades periféricas – Arduino e NodeMCU




1.6.Preparação IDE desenvolvimento


Depois 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:


  1. http://arduino.esp8266.com/stable/package_esp8266com_index.json

    Abrir o IDE Arduino e ir a File > Preferences e adicionar ao campo Additional Board Manager URLs o seguinte URL:



  2. Carregar Ok e abrir o meno Tools > Board: > Board Manager.

  3. Procurar por “esp8266” e instalar a biblioteca. Aguardar que termine a instalação e de seguida reiniciar o IDE.

  4. Instalar a biblioteca PubSubClient para utilização com o MQTT indo a Sketch > Include Library > Manage Libraries

  5. Pesquisar a biblioteca PubSubClient selecionar e instalar a mesma.



1.7.Programação dos microcontroladores

Para programar os microcontroladores os seguintes passos devem ser efetuados:



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

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



1.7.1.Meios de comunicação


Para 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:

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:



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:



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




1.8.Definição das constantes



http://raspberrypi:1880/services/rest/sendOptions?_nome_da_opcao_=_valor_
A 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.
1   2   3   4


©bemvin.org 2016
enviar mensagem

    Página principal