• Nenhum resultado encontrado

Tabela Temporiza¸c˜oes

No documento Interfaces para sistemas de domótica (páginas 76-83)

3.3 Diagrama ER

3.3.8 Tabela Temporiza¸c˜oes

As temporiza¸c˜oes caracterizam-se por um identificador ´unico como chave prim´aria, a¸c~ao, estado da temporiza¸c~ao, data, tipo, grupo, ID do atuador, ID e MACID. A a¸c~ao corresponde ao que o utilizador pretende fazer, podendo ser apenas ligar ou desligar atuadores. O estado da temporiza¸c~ao possui o c´odigo bin´ario que vai atuar no c´odigo bin´ario dos atuadores, ou seja nos estados, dependendo da a¸c˜ao definida. A data cont´em a data e hora para quando o utilizador definiu a temporiza¸c˜ao, ou seja para quando ele quer que a a¸c˜ao seja ativada. O tipo representa o tipo de temporiza¸c˜ao escolhida, podendo ser ´unica ou recorrente. O

grupo´e o nome dado pelo utilizador ao conjunto de atuadores que foram selecionados. O ID do atuador ´e a chave estrangeira do atuador onde a a¸c˜ao vai atuar. O ID corresponde ao identificador do administrador e o MACID representa o dispositivo I/O que cont´em os atuadores que ir˜ao ser atualizados, sendo ambos chaves estrangeiras.

5

3

Este cap´ıtulo ´e referente ao desenvolvimento t´ecnico e pr´atico da proposta do sistema dom´otico, focando-se inicialmente no elemento central do sistema, o Raspberry Pi 3, todas as configura¸c˜oes e comandos que se realizaram, com o objetivo de assegurar o seu funcionamento est´avel e eficiente. Posteriormente ´e explicada a cria¸c˜ao da rede sem fios. Os subcap´ıtulos s˜ao dedicados para explicar a instala¸c˜ao do servidor e da base de dados no Raspberry Pi. Tamb´em ´e feita uma an´alise da seguran¸ca do sistema, bem como das v´arias p´aginas constituintes da interface.

4.1

Tecnologias utilizadas

O Raspberry Pi ´e um Single Board Computer (SBC) de baixo custo, criado pela Raspberry Pi Foundation no Reino Unido, para promover o ensino de ciˆencias de computa¸c˜ao b´asica nas escolas. O seu elevado ˆexito e aceita¸c˜ao no mercado, contribuiu para que a funda¸c˜ao evolu´ısse e criasse novos modelos mais potentes e melhorados com novas caracter´ısticas (Bush, 2011).

Para este projeto foi utilizado o modelo Raspberry Pi 3 com as seguintes especifica¸c˜oes (Raspberry Pi Foundation):

• Quad Core 1.2 GHz Broadcom BCM2837 64 bit CPU;

• 1 GB de RAM;

• BCM43438 WLAN e Bluetooth Low Energy (BLE);

• 40 pinos GPIO;

• 4 portas USB 2.0;

• Porta HDMI;

• Sa´ıda de ´audio anal´ogica e digital;

• Porta MicroSD;

• Porta Ethernet;

• Porta de cˆamara CSI.

Neste trabalho, o Raspberry Pi implementa um servidor web, uma base de dados e pode funcionar como um AP Wi-Fi, criando uma rede sem fios `a qual se ligam os dispositivos que constituem o sistema dom´otico. Existem diversas formas de instalar um sistema operativo no Raspberry Pi, pelo que a op¸c˜ao selecionada n˜ao ´e ´unica. O sistema operativo escolhido foi o Raspbian, uma vez que ´e o recomendado pela Raspberry Pi Foundation. O processo de instala¸c˜ao consiste em descarregar do site oficial uma imagem que deve ser gravada num cart˜ao MicroSD a inserir na porta para o efeito.

Para a implementa¸c˜ao de uma interface de utilizador multiplataforma foi necess´ario escolher e instalar ferramentas e tecnologias que permitam a sua elabora¸c˜ao. A linguagem utilizada para a constru¸c˜ao da interface foi o HTML5, linguagem popular para apresenta¸c˜ao de conte´udo e tamb´em j´a conhecida e usada em trabalhos anteriores.

Figura 4.1 – Raspberry Pi 3 (Pimoroni).

Nalgumas p´aginas utilizou-se o JavaScript de modo que os scripts possam ser executados do lado do cliente sem necessidade de passar pelo servidor, alterando o conte´udo da p´agina exibida. Para criar uma interface flex´ıvel e com capacidade de se adaptar a diferentes tamanhos de ecr˜as, seja de um LCD, telem´ovel ou tablet, instalou-se o Bootstrap, uma biblioteca para HTML, CSS e JavaScript. O CSS foi utilizado para adicionar estilo, como cores e espa¸camentos, ao documento HTML, editando a forma como os elementos do conte´udo s˜ao apresentados. Instalaram-se tamb´em as bibliotecas JQuery que permitem utilizar a extens˜ao DataTables, uma ferramenta bastante ´util para adicionar controlos de intera¸c˜ao avan¸cados `as tabelas HTML, como por exemplo inser¸c˜ao de uma caixa de pesquisa, pagina¸c˜ao e ordena¸c˜ao das v´arias colunas constituintes da tabela.

O formato padr˜ao utilizado para transmiss˜ao de dados entre as entidades do sistema foi o JSON (JavaScript Object Notation), o qual tem sido muito usado em servidores request/response e estrutura¸c˜ao de dados em plataformas est´aticas, devido `a sua f´acil leitura e manipula¸c˜ao por humanos e computadores. O JSON ´e um formato de texto

independente da linguagem, onde os dados s˜ao representados por um par key/value. A key deve ser uma string, respons´avel por identificar o respetivo valor, que pode ser do tipo primitivo (strings, n´umeros, booleans e null ) ou estruturado (objetos e arrays) (JSON Organization).

Sempre que um alarme ´e disparado, devido `a ocorrˆencia de um incˆendio por exemplo, o utilizador deve ser notificado instantaneamente pelo servidor. Para isto ser poss´ıvel, procedeu-se `a instala¸c˜ao da tecnologia Server-sent events (SSE), que permite `a interface receber notifica¸c˜oes do servidor automaticamente, atrav´es de uma liga¸c˜ao HTTP, sem necessidade da p´agina solicitar constantemente o servidor por atualiza¸c˜oes. Para gerir algumas temporiza¸c˜oes foi usado o crontab, um programa do Unix, muito ´

util para o funcionamento do sistema, uma vez que executa um script de minuto a minuto, respons´avel por percorrer todas as temporiza¸c˜oes guardadas na base de dados, e comparar a data das mesmas com a data atual do servidor. Caso a data de uma ou mais temporiza¸c˜oes seja inferior ou igual `a respetiva data do servidor, ser´a executada a a¸c˜ao de cada temporiza¸c˜ao, previamente estabelecida pelo utilizador no registo da mesma.

No documento Interfaces para sistemas de domótica (páginas 76-83)

Documentos relacionados