Baixe o app para aproveitar ainda mais
Prévia do material em texto
Mecanismo de Supervisão para Sistemas Domóticos André Filipe Costa Maciel e Silva Dissertação para Obtenção do Grau de Mestre em Engenharia Electrotécnica e Computadores Orientadores: Prof. Renato Jorge Caleira Nunes Prof. Paulo Rogério Barreiros D’Almeida Pereira Júri Presidente: Prof. Nuno Cavaco Gomes Horta Orientador: Prof. Renato Jorge Caleira Nunes Vogal: Prof. Alberto Manuel Ramos da Cunha Abril 2014 ii iii Agradecimentos À minha família, em especial aos meus pais e namorada, por todo o apoio que me deram e paciência que tiveram ao longo deste meu percurso universitário. Um especial agradecimento ao Professor Renato Nunes, por todo o apoio e orientação que demonstrou, principalmente nas longas reuniões que tivemos. iv v Resumo A domótica veio trazer variados benefícios à nossa interacção com as habitações, melhorando o nosso conforto, segurança e permitindo um controlo dos gastos energéticos. Estas e outras vantagens fazem com que a procura por sistemas domóticos tenha aumentado. Mas o facto de os sistemas actuais serem, ou fáceis de instalar e configurar, mas possuírem muitas limitações funcionais, ou oferecerem uma elevada funcionalidade mas serem difíceis de configurar, cria problemas em escolher o sistema mais adequado. Torna-se assim necessário desenvolver um sistema que consiga realizar as mais exigentes tarefas, mas que seja fácil de configurar, podendo ser programado por qualquer utilizador. Esta dissertação tem como objectivo a criação de um software de gestão domótica, que tem por base o sistema DomoBus. Este software servirá para testar a funcionalidade do sistema DomoBus e a sua possível implementação em ambientes reais. Foram definidos três cenários de utilização e foi testado o funcionamento do nosso software. Conseguiu-se apurar que o sistema é bastante flexível e poderoso, pois oferece todas as ferramentas base para se poder configurar a maior parte dos cenários. O software mostrou também poder ser operado por uma pessoa não especializada, pois é fácil de configurar e operar. No entanto foram identificadas algumas limitações, em particular, a dificuldade que surge ao configurar cenários mais complexos. Esses cenários são perfeitamente suportados pelo sistema mas exigem um esforço maior por parte do utilizador. No entanto considera-se que futuras versões do software poderão colmatar estes aspectos oferecendo, por exemplo, padrões pré-definidos de configuração. Palavras-chave: Domótica, Automação Residencial, Supervisão, Configuração, DomoBus. vi vii Abstract Home automation has brought many benefits to our interaction with homes, improving comfort, safety and allowing greater energy efficiency. These and other advantages increase the demand for home automation systems. But the fact that current systems are, or easy to install and configure, but have many functional limitations, or offering high functionality but are difficult to configure, creates problems in choosing the most suitable system. So it becomes necessary to develop a system that can be powerful, accomplishing the most demanding tasks and, at the same time, be easy to configure and program by any user. This dissertation aims to develop a home automation management software, which is based on the DomoBus system. This software will allow testing the functionality of the DomoBus system and its possible application in real environments. Three usage scenarios were defined and the operation of our software was tested. We concluded that the system is very flexible and powerful, and it offers all the basic tools to manage most usage scenarios. The software also showed it can be operated by an unskilled person, as it is easy to configure and operate. However some limitations were identified regarding, in particular, the difficulty to configure complex scenarios. These scenarios are fully supported by the system but require more effort from the user to configure them. However, we believe future versions of the software may address these issues by offering, for example, predefined configuration patterns. Keywords: Domotics, Home automation, supervision, configuration, DomoBus. viii ix Índice 1. Introdução ............................................................................................................ 1 2. Edifícios Inteligentes ........................................................................................... 3 2.1. Domótica .................................................................................................... 3 2.2. Protocolos Existentes ............................................................................... 4 2.2.1. X10 ................................................................................................. 5 2.2.2. KNX ................................................................................................ 7 2.2.3. Lonworks ..................................................................................... 10 2.2.4. Resumo ....................................................................................... 11 3. Sistema DomoBus ............................................................................................. 13 3.1. Casas Superautomatizadas .................................................................... 13 3.2. Arquitectura DomoBus ........................................................................... 15 3.3. Módulo de Supervisão ............................................................................ 17 3.4. Hardware do Módulo de Supervisão ..................................................... 17 3.5. Dispositivos e Propriedades .................................................................. 18 4. Mecanismo de Supervisão ............................................................................... 21 4.1. Programações ......................................................................................... 21 4.1.1. Programa simples ...................................................................... 22 4.1.2. Programa Complexo .................................................................. 22 4.1.3. Programa Horário ...................................................................... 23 4.1.4. Sequência ................................................................................... 24 4.2. Aplicação de Supervisão ....................................................................... 25 4.3. Aplicação Programador ......................................................................... 26 4.3.1. Novos Dispositivos .................................................................... 28 4.3.2. Programa Simples ..................................................................... 29 4.3.3. Programa Complexo .................................................................. 31 4.3.4. Programa Horário ...................................................................... 33 4.3.5. Sequência ................................................................................... 34 5. Implementação .................................................................................................. 37 5.1. Aplicação Programador ......................................................................... 37 5.2. Aplicação Supervisor ............................................................................. 405.2.1. Ficheiros de texto ...................................................................... 42 5.2.1.1. Listas.txt ..................................................................... 43 5.2.1.2 Programas.txt ............................................................. 43 x 6. Exemplos de Aplicação .................................................................................... 57 6.1. Cenário Simples ...................................................................................... 58 6.2. Cenário Moderado .................................................................................. 61 6.3. Cenário Complexo .................................................................................. 65 7. Conclusão .......................................................................................................... 71 8. Bibliografia ........................................................................................................ 75 xi Lista de figuras Figura 2.1 - Exemplo de ligação usando módulos X10. .................................................................... 6 Figura 2.2 - Método de envio de bits. ................................................................................................ 7 Figura 2.3 - Modelo de ligação do sistema KNX . ............................................................................. 8 Figura 2.4 - Exemplo de uma instalação de iluminação real, com módulos KNX da Schneider Electric. ........................................................................................................................... 9 Figura 2.5 - Esquema exemplificativo de uma rede Lonworks. ......................................................... 11 Figura 3.1 - Exemplo da disposição de aparelhos e dispositivos numa sala. ................................... 14 Figura 3.2 - Representação do sistema DomoBus. ........................................................................... 16 Figura 3.3 - Modelo dos dispositivos do sistema DomoBus. ............................................................. 19 Figura 4.1 - Modelo de interacção entre a aplicação Programador e a aplicação Supervisor. ......... 25 Figura 4.2 - Menu inicial da aplicação Programador. ......................................................................... 26 Figura 5.1 - Estrutura de dados, usada na comunicação entre Programador e Supervisor. ............. 38 Figura 5.2 - Estrutura do módulo supervisor. .................................................................................... 41 Figura 6.1 - Exemplo da disposição de aparelhos e dispositivos numa sala. ................................... 57 xii xiii Lista de Tabelas Tabela 2.1 - Tabela de comparação dos vários protocolos. ............................................................... 12 Tabela 3.1 - Descrição dos dispositivos da figura 6. .......................................................................... 14 Tabela 4.1 - Condições possíveis para os programas simples. ......................................................... 22 Tabela 4.2 - Operadores possíveis para os programas complexos. .................................................. 23 Tabela 5.1 - Comandos enviados entre as aplicações Programador e Supervisor. ........................... 39 Tabela 6.1 - Representação dos dispositivos da figura 5.1. ............................................................... 58 Tabela 6.2 - Tabela XOR entre os valores dos interruptores 2 e 3. ................................................... 63 Tabela 6.3 - Tabela AND entre os valores das condições 1 e 2. ....................................................... 67 xiv 1 1. Introdução Existe um crescente interesse na automação doméstica, o que leva a um aumento na procura e instalação de sistemas domóticos por parte dos proprietários de habitações e de pequenos espaços comerciais. Este aumento leva à procura de soluções tecnológicas cada vez mais baratas e fáceis de utilizar. É a partir desta necessidade que surge a oportunidade de criar um novo sistema domótico. Um sistema que por um lado mantenha os custos reduzidos e que por outro lado seja fácil de instalar, fácil de configurar e fácil de operar. Os sistemas domóticos normalizados existentes actualmente no mercado (KNX, X10, LonWorks, etc…) além de muito dispendiosos, são normalmente difíceis de instalar e configurar. No caso dos sistemas KNX e LonWorks, por exemplo, é necessária a intervenção de técnicos especializados para a sua instalação e o uso de aplicações próprias para esse fim. O sistema X10 é uma excepção pois pode ser instalado por uma pessoa comum. No entanto, a fácil instalação é directamente comprometida pela limitação e capacidade do próprio sistema. O objectivo final é então o de criarmos um sistema que possa ser configurado pelo utilizador final, sem que este tenha que ter conhecimentos ou competências específicas, além da simples operação de um computador, ao mesmo tempo que criamos um sistema muito dinâmico, modular e robusto. O sistema DomoBus está a ser desenvolvido oferecendo um modelo abstracto dos dispositivos domóticos que é independente de qualquer tecnologia. Em particular considera-se que o sistema DomoBus pode funcionar como plataforma de integração de diferentes tecnologias (através do uso de gateways adequados). Assim há interesse em desenvolver mecanismos de supervisão poderosos para a plataforma DomoBus, que permitam gerir e definir o comportamento desejado para um sistema. Face às características de interoperabilidade do sistema DomoBus, esses mecanismos podem depois ser usados para gerir um sistema heterogéneo que use diferentes tecnologias. Esses mecanismos devem ser os mais genéricos e flexíveis possíveis, pretendendo-se que usem uma abordagem fácil de entender por qualquer pessoa, permitindo assim que, através de uma aplicação adequada, um utilizador comum possa definir como a sua habitação se comporta. Ao mesmo tempo, pretende-se seguir um modelo em que a definição e alteração das regras de funcionamento do sistema possam ser efectuadas em qualquer momento, sem necessidade de parar o sistema para o reconfigurar. Deste modo o utilizador pode alterar o sistema sempre que deseje, facilitando a adequação às suas preferências ou necessidades. Os mecanismos de supervisão serão baseados em três conceitos base: regras, sequências temporizadas de acções e agendamento de acções. As regras correspondem essencialmente á implementação de uma lógica de tipo “IF condição THEN lista-acções ELSE lista-acções”. As sequências temporizadas indicam ao sistema para aguardar um certo tempo e depois desencadear uma lista de acções. E o agendamento corresponde a programações horárias, permitindo ligar ou desligar equipamentos a determinada hora de 2 determinado dia, ou então repetir essas actuações que podem verificar-se, por exemplo, em vários dias da semana ou vários dias do mês. Ao longo desta dissertação, começamos por explicar e comparar o nosso sistema com os principais protocolos de domótica que serão seus concorrentes, isto no capítulo 2. No capítulo 3, explica-se o que é e como funciona o sistema DomoBus. Começa-se por definir o conceito de casa superautomatizada, apresentando para o efeito um exemplo, que será usado ao longo dos restantes capítulos. Se seguida define-se o que é o sistema DomoBus e em que consiste o módulo de supervisão. Finalmente explica-se em que consistem os dispositivos e propriedades. No capítulo 4, ainda sobre o sistema DomoBus, explica-se em que consiste o Mecanismo de Supervisão, objectivo desta dissertação. Começamos por explicar em que consistem as programações, explicitando os diferentes tipos de programaçõesque podem ser usadas neste sistema. Finalmente explica-se o que é, e como funciona a aplicação de supervisão, em particular o funcionamento da aplicação Programador, aplicação que será usada pelo utilizador para parametrizar o sistema. No capítulo 5, explica-se todo o funcionamento do Mecanismo de supervisão, expõe-se em detalhe as diferentes aplicações, a aplicação Programador e aplicação Supervisor. Explica-se também a função e funcionamento dos ficheiros de texto. No capítulo 6 apresentam-se três exemplos de funcionamento com a aplicação de supervisão criada ao abrigo desta dissertação de mestrado. Começamos por um exemplo fácil, passamos por um intermédio e terminamos com um exemplo complexo que usa as propriedades horárias do sistema. Finalmente, no capítulo 7, apresentam-se as conclusões da presente dissertação. 3 2. Edifícios Inteligentes Com uma crescente consciencialização por parte da sociedade para a necessidade da poupança energética, seja para reduzir os custos do funcionamento dos edifícios ou para proteger o meio ambiente, tornou-se necessário habilitar os edifícios, quer comerciais (escritórios, lojas, centros comerciais) quer habitacionais, de capacidades gestoras do consumo e do seu funcionamento, procurando aumentar a eficiência no uso da energia. Ao mesmo tempo que a tecnologia vai evoluindo, e novas soluções são desenvolvidas existe também uma cada vez maior procura de sistemas que melhorem os níveis de conforto e de segurança das habitações e edifícios. Por outras palavras, é hoje possível controlar activamente os gastos de uma habitação, protegendo assim o meio ambiente ao evitar gastos energéticos desnecessários, ao mesmo tempo que se fortalece a relação entre as casas e os seus habitantes. 2.1. Domótica O termo “Domótica” resulta da junção da palavra “Domus”, termo latim que significa Casa, com “Telemática”, que significa a junção entre electrónica e informática. No dicionário a palavra domótica significa: “Conjunto das técnicas e dos estudos tendentes a integrar no habitat todos os automatismos em matéria de segurança, de gestão de energia, de comunicação, etc.” In, Dicionário Priberam da Língua Portuguesa (http://www.priberam.pt) Trata-se de um conceito de automação que procura encontrar soluções que dêem resposta à necessidade do homem de querer despender o mínimo de esforço nas actividades diárias e rotineiras. Assim a domótica, para além de introduzir conforto e melhoria de vida aos seus utilizadores, introduz ainda novos conceitos, tais como comunicação e segurança. Obviamente que este melhoramento de vida e comodidade apenas se consegue associando tecnologia. Mas é importante garantir que a utilização dessa tecnologia seja fácil para o utilizador comum. A domótica consegue ir ao encontro dessa linha de raciocínio, dando cada vez maiores passos para melhorar a vida do ser humano. 4 A domótica utiliza e associa as vantagens dos meios electrónicos e informáticos, de forma a obter uma utilização e uma gestão integrada dos diversos equipamentos de um edifício, seja ele residencial ou comercial. A utilização de um sistema domótico pode ser feita activa ou passivamente. No funcionamento passivo, um elemento reage só quando lhe é transmitida uma ordem, dada directamente pelo utilizador, podendo ser utilizados todos os recursos disponíveis, botões de pressão, painéis tácteis, telecomandos, ordens vocais, etc. No funcionamento activo, mais avançado e com mais inteligência, o sistema não só interpreta parâmetros, como reage às circunstâncias (informação transmitida pelos sensores). Por exemplo, pode detectar que uma janela se encontra aberta e avisar o utilizador, ou pode detectar a temperatura e manter uma temperatura constante na divisão, ligando e desligando o aquecimento sempre que necessário. Hoje é possível controlar remotamente os sistemas domóticos, podendo utilizar o telemóvel ou a internet, para aceder às funções vitais da casa (ou comércio), para ligar ou desligar o sistema de rega do quintal, ou para ligar o aquecimento momentos antes de se chegar a casa. Podemos também utilizar estes sistemas como sistemas anti furto, garantindo assim a segurança do lar ou da empresa. 2.2. Protocolos Existentes A variedade de protocolos normalizados direccionados para a domótica é grande. No mercado, os sistemas mais usuais utilizam o protocolo X10 por ser mais económico, mas este tem a grande desvantagem de ser pouco robusto e ter muitas limitações. Sistemas que utilizam este protocolo são facilmente encontrados, quer por utilizarem a rede eléctrica como meio de comunicação, quer por não necessitarem de instaladores experientes, nem da instalação de mais cablagem porque a instalação eléctrica existente é aproveitada. Estes sistemas são aconselhados quando apenas se necessita de um controlo simples e pouco exigente. Um protocolo normalizado muito utilizado em sistemas domésticos é o KNX. Este protocolo oferece muita robustez e flexibilidade. Contudo seus os produtos possuem um elevado custo. O protocolo KNX permite a utilização de vários meios físicos de comunicação, mas o mais utilizado é o par entrançado onde todos os dispositivos estão ligados a um Bus. Notar que esta solução de par entrançado obriga à existência de uma fonte de alimentação para o barramento, o que acaba por encarecer ainda mais a instalação deste sistema. O KNX é um protocolo aberto e por esta razão, existem no mercado diversos fabricantes que têm produtos que utilizam este protocolo, o que acaba por ser uma vantagem, garantindo a continuidade na existência destes sistemas. 5 Existe ainda o protocolo Lonworks que apesar de estar desenhado para cobrir todos os requisitos da maior parte das aplicações de controlo, só tem tido êxito na sua implementação em edifícios administrativos, hotéis e indústrias. Devido ao seu custo, os dispositivos LonWorks não têm tido grande implementação nas casas, sobretudo porque existem outras tecnologias com prestações iguais e mais baratas. 2.2.1. X10 A tecnologia X10 foi inventada e patenteada no final da década de 70 por uma empresa chamada PICO Electronics. Esta empresa pretendia desenvolver uma tecnologia de controlo remoto, que usasse a rede eléctrica já existente, ou seja as linhas de baixa tensão (230V na europa, 110V nos EUA) para enviar os sinais de controlo. A empresa já tinha tentado e desistido 9 vezes, até que à décima tentativa conseguiu obter sucesso, assim vem o nome (X10) [26]. A tecnologia X10 usa a rede de distribuição de energia eléctrica como meio de comunicação entre os vários dispositivos. Este é um aspecto chave desta tecnologia e a sua maior vantagem face a outras soluções pois permite o seu uso em qualquer casa, sem necessidade de passar cabos adicionais, ao mesmo tempo que reduz o custo da instalação. Este método de comando abriu todo um novo mundo relativo ao controlo remoto de dispositivos, podendo controlar praticamente qualquer aparelho que esteja ligado à rede eléctrica sem que seja necessário passar nova cablagem tornando-se assim muito menos dispendioso. Este é o factor chave para que esta tecnologia se tenha tornado um sucesso comercial. O baixo custo e principalmente a fácil instalação, uma vez que a instalação pode ser feita por qualquer electricista sem conhecimentos de automação ou informática, ou até mesmo pelos próprios utilizadores, fez com que actualmente seja um dos sistemas mais utilizados no mundo em relação ao mercado habitacional, sendo líder no mercado norte-americano. Os dispositivos podem ser ligados directamente nas tomadas e ser usados para ligar ou desligar equipamentos, ligar ou desligar lâmpadas ou regular a sua intensidade luminosa. Basicamente, o sistema X10 consiste na transmissão de sinais codificados através da rede eléctrica de 50Hz ou 60Hz.Usam-se dispositivos transmissores para enviar o sinal através da rede, e dispositivos receptores que captam esses sinais, como se pode ver na figura 2.1. 6 Figura 2.1 – Exemplo de ligação usando módulos X10. O envio de informação através da rede eléctrica é feito através do uso de impulsos na frequência de 120kHz. Esses impulsos têm a duração de 1 ms e ocorrem em sincronismo com a passagem por zero da onda sinusoidal da rede eléctrica. Esta particularidade é usada pelos receptores para saberem quando devem escutar a linha. O valor binário 1 corresponde à presença do sinal de 120kHz e o valor binário 0 corresponde à ausência desse sinal. No caso de instalações eléctricas trifásicas, os impulsos de 120kHz são enviadas 3 vezes em cada ciclo da rede eléctrica, em momentos que coincidem com a passagem por zero de cada uma das fases da rede. Assim, usando dispositivos chamados de acopladores é possível, dentro de um mesmo edifício, os dispositivos comunicarem entre si independentemente de estarem na mesma fase ou não. Como o meio de distribuição de energia é muito ruidoso electricamente, foi adoptada a política de nunca enviar um bit isolado, sendo sempre enviado o bit e o seu complemento. Na prática, quando se quer enviar o bit 1, é enviado um impulso (1), seguida de ausência de sinal (0). Quando se quer enviar o bit 0, é feito o inverso, primeiro uma ausência de sinal (0), e depois enviada um impulso (1). Pode-se verificar este método na figura 2.2. Assim reduz-se a probabilidade do ruido eléctrico interferir no envio de sinais, pois o ruído podia ser confundido com um sinal não enviado [1]. 7 Figura 2.2 – Método de envio de bits. A transmissão completa de uma mensagem X10 necessita então de onze ciclos de corrente. A mensagem divide-se em três campos de informação: 1. Dois ciclos representam o Código de Início – Sequência de 4 bits, sempre 1110, que identifica o início da mensagem. 2. Quatro ciclos representam o Código de Casa (letras de A-Z) – Conjunto de 4 bits que identifica a casa onde o sistema está instalado. Evita-se assim problemas de interferências nos comandos entre casas vizinhas. 3. Cinco ciclos representam o Código do dispositivo (1-16) ou o Código de Função (acender a luz, apagar a luz, variar a luz, etc...) – Conjunto de 4 + 1 bits que identificam o dispositivo ou a função a ser executada, mais um bit extra que identifica se a mensagem se refere a um dispositivo ou a uma função. Para aumentar a fiabilidade do sistema, esta mensagem, (Código de inicio, código de casa e código de dispositivo ou função) é transmitida sempre duas vezes, separadas por três ciclos completos de corrente. Há uma excepção, nas funções de variação de intensidade, em que é transmitido de forma contínua, sem separação entre mensagens. Como principais vantagens do X10 apontam-se a sua simplicidade, a facilidade de instalação e uso, e o custo acessível. Como principais desvantagens refere-se o baixo ritmo de comunicação, a baixa fiabilidade do protocolo e um número limitado de funções que essencialmente se restringem ao controlo de iluminação e à capacidade de ligar ou desligar dispositivos. 2.2.2. KNX O sistema KNX, abreviatura para Konnex, resultou da fusão dos maiores sistemas europeus que utilizavam a tecnologia de bus, incluindo o bem-sucedido sistema EIB (European Installation Bus). 8 Esta fusão resultou da necessidade de enfrentar a concorrência vinda dos Estados Unidos, com os sistemas X10 e Lonworks. O sistema KNX tornou-se então o único sistema normalizado globalmente para a automação residencial e não residencial, passando a estar definido pelas principais normas internacionais. Assim criou-se um sistema claramente definido onde todos os produtos KNX mesmo de diferentes fabricantes podem interagir e funcionar em conjunto. Assim garante-se a uniformização, a interoperabilidade e um fácil funcionamento em rede com todos os dispositivos, tanto os dispositivos actuais quer os futuros. Este é um protocolo já enraizado no mercado onde constam mais de 170 fabricantes e se estimam mais de 10 milhões de sistemas já instalados [17]. O KNX interliga todos os componentes de uma instalação eléctrica de maneira a formarem uma rede e assim garantir a transparência e fiabilidade na transferência de informação ao longo da rede. Neste sistema todos os dispositivos comunicam através de um cabo de BUS, sendo possível interligar todos os subsistemas dentro de um edifício usando a mesma rede. Na figura 2.3 pode-se observar um exemplo da forma de ligação do sistema KNX. As aplicações deste sistema abrangem a iluminação, estores, sistemas de segurança, gestão de energia, aquecimento, ventilação e ar-condicionado, sistemas de monitorização e sinalização, controlo remoto, controlo de áudio/vídeo, electrodomésticos, etc [14]. Trata-se de um sistema bastante abrangente e completo podendo todas estas funções ser controladas, monitorizadas e sinalizadas através de um sistema único sem necessidade de uma unidade de controlo central, uma das vantagens do KNX. Figura 2.3 – Modelo de ligação do sistema KNX. 9 Todos os sensores (botões pressão, interruptores, detectores de movimento) encontram-se ligados aos actuadores (controladores de estores e persianas, controladores de lâmpadas) através de um cabo de dados, alimentado a 30V, em oposição ao que acontece num sistema convencional, onde interruptores e lâmpadas, por exemplo, se encontram ligados directamente pela rede eléctrica de 230V. O cabo de bus pode interligar até 50.000 dispositivos, embora o bus necessite ser dividido em segmentos, interligados por “line-couplers”. Além do cabo de bus, a tecnologia KNX já permite a utilização de redes IP/Ethernet, radiofrequência e da própria rede eléctrica para a comunicação entre dispositivos. Os actuadores são os dispositivos que ligam ao circuito de potência, e portanto que irão alimentar os dispositivos finais (lâmpadas, tomadas, estores), como podemos ver no exemplo da figura 2.4. Figura 2.4 – Exemplo de uma instalação de iluminação real, com módulos KNX da Schneider Electric [16]. A comunicação entre dispositivos é feita usando “mensagens”. Os sensores enviam comandos aos actuadores que os “escutam” e executam a função programada. Essa função pode ir de um simples comando on/off, até sequências logicas, passando por funções de controlo ou regulação. Em termos de instalação e configuração, existem duas modalidades [14]: S-Mode (system mode) – Este modo de configuração é destinado a ser implementado por técnicos especializados e permite realizar as funções mais complexas permitidas pelo 10 sistema. A instalação através deste modo é feita usando um software especializado, designado de ETS (Engineering Tool Software). E-Mode (Easy Mode) – Este modo de configuração é destinado a utilizadores sem grandes conhecimentos do sistema KNX. Este modo oferece menos funções, em comparação com sistemas configurados atraves do S-Mode. Os componentes do sistema que usam este modo de configuração, já vêm pré-programados, bastando configurar um pequeno conjunto de parâmetros para colocar o sistema a funcionar. Uma das desvantagens do sistema KNX é precisamente a necessidade de recorrer a técnicos especializados para parametrizar os sistemas e implementar estas funções. Quanto maior a dimensão das instalações do KNX, maior será a complexidade da sua programação. 2.2.3. Lonworks Passemos agora ao protocolo Lonworks, que na realidade não é um protocolo mas sim uma tecnologia, visto que inclui tanto o hardware como o software para a operação de uma rede de controlo, que será denominada Local Operating Network (LON). Trata-se de uma tecnologia livre para controlo distribuído, projectada para implementar a interoperabilidade de redes de controlo. O protocoloutilizado é denominado LonTalk e foi projectado para aplicações que envolvam funções de leitura de sensores, controlo, monitorização e identificação. São permitidos seis meios de transmissão dos sinais: rede eléctrica, par entrançado, cabo coaxial, infravermelhos, radiofrequência e fibra óptica. O principal constituinte de uma rede Lonworks é um circuito integrado chamado Neuron Chip, que actua como um nó da rede, incluindo o hardware que possibilita a comunicação e o protocolo LonTalk. Uma rede Lonworks é composta por [12]: Módulos de controlo Lonworks que incluem o Neuron Chip, e firmware associado. Transceivers que permitem a conexão aos vários meios físicos de comunicação. Routers que interligam as diferentes sub-redes e/ou meios de transmissão. Interfaces de rede onde se podem ligar outros elementos baseados no protocolo LonTalk, tais como computadores, controladores lógicos programáveis (PLC) etc. Ferramentas de instalação, configuração e diagnóstico tanto dos nós como das redes de controlo. 11 Ferramentas de desenvolvimento de aplicações, compilador Neuron C. etc. A figura 2.5 mostra um exemplo de uma rede de controlo Lonworks típica. Figura 2.5 – Esquema exemplificativo de uma rede Lonworks. O sistema Lonworks é programável, podendo ser a qualquer momento adicionadas novas funções, ou alteradas as existentes, bastando para isso programar e compilar novos programas e de seguida carregá-los no Neuron Chip respectivo. Esta é uma das características que faz deste sistema um dos mais completos no mercado, e é por isso que são bastante usados nas áreas industrial e comercial, onde os requisitos de automação são maiores que os possibilitados por outros sistemas domóticos. O facto de ser um sistema bastante robusto e muito programável também o torna dispendioso, outra das razões porque é mais utilizado nas áreas industrial e comercial, tendo pouca expressão na área habitacional. 2.2.4. Resumo Para finalizar este capítulo, apresenta-se uma comparação entre os 3 protocolos/sistemas domóticos descritos anteriormente. 12 Na Tabela 2.1 encontram-se representadas as principais características destes protocolos, com as vantagens e desvantagens, bem como os meios de transmissão e finalmente uma comparação do custo dos vários sistemas. Tabela 2.1 – Tabela de comparação dos vários protocolos. Protocolo Meios de Transmissão Vantagens Desvantagens Preço X10 - Rede eléctrica - Radiofrequência - Facilidade de instalação - Preço - Reduzidas Funcionalidades - Reduzido número de dispositivos permitido Reduzido KNX - Par Entrançado - Rede Ethernet - Radiofrequência - Rede Eléctrica - Elevado número de funções - Instalação Complexa - Preço Médio LonWorks - Rede Eléctrica - Par Entrançado - Cabo Coaxial - Infravermelhos - Radiofrequência - Fibra Óptica - Muito configurável - Elevado número de Funções - Instalação Complexa - Preço Alto Após observação da tabela anterior não se pode dizer que um protocolo seja melhor que o outro. Um protocolo será tanto melhor quanto mais se aproximar das necessidades do seu utilizador. Assim podemos concluir que não existe um protocolo ou sistema perfeito. O nosso sistema DomoBus que será descrito no próximo capítulo procurará assim conjugar o melhor que cada protocolo terá para oferecer: muito configurável, elevado número de dispositivos aceites, baixo preço, facilidade de configuração. 13 3. Sistema DomoBus Neste capítulo faz-se a descrição da tecnologia DomoBus, começando por introduzir as razões que motivaram o desenvolvimento de uma nova tecnologia de automação residencial. Para isso apresenta-se o conceito de casa Superautomatizada e em seguida, descreve-se a tecnologia, a sua arquitectura, as diferenças e semelhanças com as restantes tecnologias e o seu modo de funcionamento. Finalmente introduz-se o mecanismo de supervisão, o coração por detrás do funcionamento do nosso sistema. 3.1. Casas Superautomatizadas O conceito de casa Superautomatizada [8] surge com a evolução da tecnologia presente nas nossas casas, nos dias de hoje. Antigamente numa divisão, digamos, numa sala de estar, podíamos encontrar uma lâmpada no tecto, um interruptor, uma televisão, talvez um vídeo (VHS), mas pouco mais. Hoje em dia nas casas modernas, temos na mesma sala, vários interruptores para vários pontos de luz, televisão, leitor de DVD, estores eléctricos, ar condicionado, sensores de movimento, sensores de temperatura e muitos mais dispositivos. Ora quando se pretende controlar todos estes dispositivos de uma forma automática, é aqui que nos damos conta do enorme desafio que a automatização dessa divisão e consequentemente dessa casa representam. É assim que nasce o conceito de casa Superautomatizada. Vejamos um exemplo de uma divisão, digamos novamente uma sala. Na figura 3.1 encontra-se uma representação dessa sala e na tabela 3.1 os dispositivos nela contida. 14 Figura 3.1 – Exemplo da disposição de aparelhos e dispositivos numa sala. Tabela 3.1 – Descrição dos dispositivos da figura 6. # DISPOSITIVO 1 - Interruptor 1 2 - Interruptor 2 3 - Interruptor 3 4 - Lâmpada 1 5 - Lâmpada 2 6 - Detector de Movimentos 7 - Botão de Estore 1 8 - Botão de Estore 2 9 - Estore 1 10 - Estore 2 11 - Termostato 12 - Ar Condicionado 13 - Televisor 15 Podíamos adicionar muitos mais dispositivos mas por questões de simplicidade vamos restringir o exemplo a estes. Temos presente nesta divisão três interruptores genéricos, cuja função é apenas ligar/desligar, existe um sensor de movimento, um sensor de temperatura, designado como termostato, existem 2 estores eléctricos e respectivos botões, duas lâmpadas no tecto e finalmente uma unidade de ar condicionado e uma televisão LCD. Vendo este exemplo podemos imaginar a complexidade que será automatizar esta divisão, para que se possam efectuar tarefas complexas, ou até controlo à distância. Estamos a falar de funções, que podem ser tão simples como colocar o interruptor 1 a acender e apagar a lâmpada 1. Podemos também fazer o interruptor 2 e o interruptor 3 trabalharem em conjunto para acender e apagar a lâmpada 2 de modo complementar, ou seja, quando um acende a seguir o outro apaga, ou quando um apaga, a seguir o outro acende. Mas tarefas mais complexas podem ser exigidas, imagine-se a possibilidade do utilizador do sistema poder sair do emprego a caminho de casa num inverno rigoroso e pelo caminho poder dar ordem ao ar condicionado para começar a aquecer a divisão, para quando chegar poder desfrutar do conforto. Ou então poder-se programar o sistema para que quando as luzes estiverem ligadas mas o detector de movimentos não detecte ninguém na divisão, as luzes se apaguem, mas isto apenas passado algum tempo, evitando que as luzes estejam sempre a acender e a apagar, sempre que a pessoa se ausenta temporariamente. Podemos imaginar inúmeros cenários diferentes, que seriam possíveis se esta divisão possuísse um sistema automatizado. Na próxima secção demonstra-se como automatizar esta e outras divisões, usando o sistema DomoBus. 3.2. Arquitectura DomoBus O sistema DomoBus é um sistema que aborda a domótica a dois níveis distintos. Contempla uma camada de interacção de baixo nível, que está associada à leitura de sensores e ao comando de actuadores, e uma camada de alto nível que consiste na gestão e supervisão do sistema domótico. O sistema DomoBus está organizado como se demonstra na figura 3.2, no topo temos presente o módulo de supervisão, é ele que gere os módulos de controlo, ao coordenar os comandos enviados e recebidos dos dispositivos físicos (sensores e actuadores) [8]. Embora a figura ilustre apenas um módulo de supervisão, num sistema com umadimensão significativa podem existir múltiplos módulos, interligados por uma rede TCP/IP. Os módulos de controlo fazem a ponte entre o módulo de supervisão e os dispositivos físicos. Estes módulos não estão ainda concluídos, existindo alguns protótipos em fase de desenvolvimento. De salientar que os módulos de supervisão se podem ligar a dispositivos de outras tecnologias (X10, KNX, etc) através de adaptadores adequados. 16 Figura 3.2 – Representação do sistema DomoBus. O nível de gestão e supervisão do sistema, onde são definidas a localização e configuração de dispositivos, segue uma abordagem genérica independente da tecnologia utilizada. Um elemento chave desta abordagem é o modelo que é seguido para os dispositivos domóticos [6]. Neste modelo, um dispositivo domótico é uma entidade genérica, descrita por um conjunto de propriedades, existindo um conjunto base de operações para ler ou alterar essas propriedades, ou para os próprios dispositivos notificarem o supervisor sempre que ocorre uma alteração nos seus valores. A solução DomoBus inclui uma linguagem de especificação baseada em XML, como pode ser visto em [11], que permite descrever a constituição de qualquer sistema, explicitando que dispositivos existem e quais as suas características. Essa linguagem permite também descrever a estrutura de qualquer habitação e identificar a localização de cada dispositivo. Permite ainda a definição de cenários, que correspondem a uma lista de acções a serem executadas sobre diversos dispositivos. Futuramente a linguagem será expandida para permitir especificar o comportamento e as programações desejadas para o sistema (que está directamente relacionado com o trabalho desta dissertação). Esta componente de alto nível pretende ser o mais genérica e flexível possível, podendo ser usada para supervisionar partes de um sistema que use outra tecnologia, dando assim suporte à integração de sistemas heterogéneos, permitindo explorar o que cada tecnologia específica possa ter de melhor em cada contexto de utilização. 17 3.3. Módulo de Supervisão É o módulo de supervisão que terá a tarefa de controlar todo o sistema domótico. É nele que corre o software de controlo, denominado Supervisor, criado no âmbito desta dissertação e que inclui a Biblioteca de Supervisão. A Biblioteca de Supervisão é constituída por uma biblioteca de funções em linguagem C, que permite gerir em tempo real uma dada divisão, uma casa, um escritório ou até mesmo um edifício inteiro. A escolha da linguagem C teve como objectivo facilitar a portabilidade para diferentes plataformas hardware, mesmo de reduzida capacidade de memória e processamento. Essas funções permitem a criação de programas que fazem interagir os diversos dispositivos presentes no sistema. Um exemplo de uma programação será por exemplo, ordenar ao sistema que, ao pressionar um determinado botão, deverá acender uma determinada lâmpada (sem que essa lâmpada tenha que estar fisicamente ligada a esse botão, ao contrário das instalações eléctricas convencionais). Este sistema permite outros tipos de programação muito mais complexos, como veremos mais à frente. Permite também programações horárias, pois incorpora um módulo de gestão do tempo. Com estes programas e com a gestão do tempo é possível fazer quase tudo com este sistema, relativamente á automatização residencial. Num sistema podem existir vários módulos de supervisão, criando assim um sistema descentralizado, em que diferentes módulos poderão estar localizados e a controlar, diferentes zonas da residência, diferentes pisos, ou diferentes edifícios, mas podendo interagir entre si, permitindo por exemplo, controlar a partir do edifício A, um dispositivo do edifício B. No contexto da presente dissertação foi testado um sistema com apenas um módulo de supervisão. Em relação à capacidade de processamento, o módulo de supervisão não precisa de grande poder de processamento, podendo ser constituído por um “Single Board Computer”, (SBC). Dada a constante evolução deste tipo de equipamento, tomou-se a opção de recorrer a um SBC que disponha do sistema operativo Linux e capacidade de ligação em rede, suportando TCP/IP. Existe um grande número de SBCs que satisfazem estes requisitos. No entanto destaca-se em particular o modelo Raspberry Pi [2, 23], que tem um custo na ordem de 30 euros e possui capacidades mais do que suficientes para controlar a maioria das instalações que usam o sistema DomoBus. 3.4. Hardware do Módulo de Supervisão Um Raspberry Pi é um pequeno mas poderoso computador [23]. Resume-se a apenas uma pequena placa que contém todos os elementos centrais de um PC, com o tamanho próximo de um cartão de 18 crédito e que pesa 45g. Torna-se assim perfeito para ser usado em automação residencial, onde pode ser colocado dentro de uma caixa de derivação dentro da própria parede. Ainda para mais, o seu preço reduzido, cerca de 30 euros, ajuda a atingir o objectivo de tornar o sistema o menos dispendioso possível. Para interacção com o exterior vem equipado com duas portas USB, conector para um cartão SD, e uma ficha RJ45 para ligação à rede. Essa Ligação pode ser reforçada através de dispositivos Wi-Fi ligados a uma das portas USB. Tem ainda saídas para vídeo, áudio e HDMI, o que pode ser útil para implementar interfaces sofisticadas com o utilizador. O Raspberry Pi vem preparado para correr Linux e a sua distribuição é feita sem restrições, tem também uma larga variedade de drivers disponíveis. Outras vantagens do Raspberry Pi são o seu baixo consumo, apenas 3,5W e não fazer barulho pois o processador não necessita de ventoinha e não existem outros componentes em movimento. Face a todas estas características, em especial o tamanho e preço, neste momento é a escolha de eleição para implementar o módulo de supervisão. 3.5. Dispositivos e Propriedades Todos os mecanismos eléctricos presentes numa habitação e que estejam ligados tanto à rede eléctrica como ao sistema domótico, são definidos como dispositivos no sistema domobus. O sistema DomoBus permite representar genericamente cada dispositivo, essa representação é simples, mas ao mesmo tempo poderosa o suficiente para descrever as capacidades essenciais de um dispositivo, independentemente da sua tecnologia. Assim o sistema DomoBus propõe uma solução (detalhada em [6]), em que cada dispositivo é caracterizado por um conjunto de propriedades, tendo cada propriedade um valor. Por exemplo um termostato pode ter apenas uma propriedade, Temperatura, que contém o valor actual da temperatura da divisão, medida pelo dispositivo. No caso de uma lâmpada, ela pode possuir duas propriedades: Ligado/Desligado e Luminosidade. A primeira propriedade indica se a lâmpada está ligada ou desligada e a segunda propriedade indica a sua intensidade (numa escala de 0 a 100, por exemplo). O uso de duas propriedades permite desligar a lâmpada sem alterar a intensidade previamente definida. Deste modo, quando se voltar a ligar a lâmpada, esta pode assumir o valor de intensidade anterior. Os dispositivos mencionados são simples mas é fácil descrever dispositivos mais complexos como, por exemplo, um televisor. Neste caso, e considerando apenas as funções mais óbvias e úteis, faz sentido considerar quatro propriedades: Ligado/Desligado, Canal, Volume e ModoSilencioso (mute). No entanto, seria muito simples adicionar mais propriedades para representar, por exemplo, o brilho, a cor ou agudos e graves. Os exemplos anteriores ilustram a abordagem seguida pelo DomoBus, que se detalha em seguida. 19 Figura 3.3 – Modelo dos dispositivos do sistema DomoBus. A entidade Tipo Dispositivo abstrai dispositivos de um dado tipo, tais como lâmpadas de intensidade ajustável, sensores de temperatura, ar-condicionado, interruptores comuns, tomadasde energia, motores de estores, electroválvulas, detectores de fumo, sensores de presença, aparelhagem de alta- fidelidade, TV, DVD, etc. Convém notar que é possível, a qualquer momento, adicionar novos tipos de dispositivos, desde que seja possível descrever as suas características usando propriedades tal como descrito anteriormente. A caracterização de um Tipo Dispositivo é efectuada usando uma ou mais Propriedade (ver figura 3.3). A mesma Propriedade pode ser usada por qualquer número de Tipo Dispositivo. Esta particularidade é útil pois permite partilhar propriedades que são comuns a múltiplos dispositivos como, por exemplo, Ligado/Desligado. Na figura 3.3 estão representados os principais atributos da classe Propriedades. O atributo Nome contém a designação da propriedade. Para cada tipo de propriedade é possível definir um modo de acesso que pode assumir os valores, só-leitura, só-escrita ou leitura-escrita. Para exemplificar o uso deste atributo, refere-se que a propriedade temperatura de um termostato faz todo o sentido que seja só-leitura, enquanto a propriedade intensidade-luminosa de uma lâmpada regulável é de leitura- escrita. Neste último caso, é possível ler o valor da propriedade para conhecer a intensidade actual da lâmpada em questão e é possível escrever nessa propriedade para alterar a sua intensidade. 20 Todas as interacções com os dispositivos físicos são realizadas exclusivamente lendo ou escrevendo valores em propriedades. Outro atributo de Propriedade é Tipo de Valor, que permite distinguir três tipos de valores: Escalar, Enumerado e Vector. O tipo Escalar identifica um valor que pode variar entre um valor mínimo e um valor máximo. Esse valor pode representar uma determinada unidade (por exemplo, graus Celsius, Watt, Lux), pode corresponder a uma percentagem (escala entre 0 e 100) ou simplesmente não possuir unidades. Como nalguns casos uma propriedade pode ter apenas um pequeno número de valores. Por exemplo, a propriedade Ligado/Desligado pode assumir apenas os valores 0 (desligado) e 1 (ligado). Ou relativamente ao estado de funcionamento de um ar-condicionado, podem-se considerar quatro possibilidades: desligado (0), ventilar (1), arrefecer (2) e aquecer (3). Para estes casos, e outros semelhantes, foi criado o tipo Enumerado. Uma propriedade pode também ser do tipo Vector. Este tipo é usado em propriedades que contêm uma lista de caracteres (representando um texto ou outro tipo de informação), por exemplo, o código de um alarme. Até ao momento foi ilustrado como definir os tipos base de dispositivos, cada um caracterizado por um conjunto de propriedades. O passo seguinte consiste na definição dos dispositivos concretos existentes numa habitação. É esse o objectivo da classe Dispositivo. Por exemplo, um dispositivo designado Lampada_Quarto pode ser criado, sendo explicitado que é do tipo Lampada_Regulada definido anteriormente. Deste modo, torna-se imediatamente conhecido quais as propriedades que possui. Neste caso terá as propriedades Ligado/Desligado e Luminosidade. O dispositivo específico será associado com tantas propriedades, quantas as que foram definidas aquando da criação do Tipo Dispositivo. O modelo apresentado é pois muito flexível e eficaz. Após a definição dos tipos de dispositivos existentes, torna-se simples adicionar os dispositivos concretos que se pretendem instalar numa dada habitação. 21 4. Mecanismo de Supervisão No capítulo anterior foram descritos os aspectos essenciais da arquitectura e modelo seguido no DomoBus. Finalizou-se o capítulo descrevendo os dispositivos e suas propriedades. Neste capítulo explica-se como o sistema utiliza estes dispositivos e a suas propriedades para criar a tão desejada automação residencial. 4.1. Programações O sistema DomoBus propõe uma abordagem baseada no conceito de cenário, segundo [6]. A referência a cenário será substituída daqui em diante por programa ou programação, de modo a uma mais fácil compreensão do sistema. O conceito de programa consiste basicamente no uso de cláusulas do tipo: IF condição THEN lista-acções ELSE lista-acções O termo condição pode ser uma expressão tão complexa quanto se queira, a qual pode envolver o tempo ou o valor de qualquer propriedade de um dispositivo. O valor da propriedade de um dispositivo é avaliado e se a condição for verdadeira então activará a lista-acções. As acções, de activação, consistem na atribuição de um valor a uma propriedade de um dispositivo. Na secção 4.3 serão apresentados alguns exemplos. Esta forma de especificar o comportamento de uma habitação é simples mas eficaz. É fácil de compreender por uma pessoa comum e simplifica o processo de manter o comportamento desejado, uma vez que, tipicamente, os cenários são entidades independentes e não interagem ou dependem uns dos outros. Para além do que foi definido, os cenários podem também possuir uma lista de acções de desactivação. Esta lista contém acções que são executadas quando uma condição de activação de um cenário deixa de se verificar. Ou seja, havendo uma lista de acções de activação, e uma lista de acções de desactivação, quando a condição passa a verdadeira, serão executadas as acções de activação, quando a condição passa a falsa, são executadas as condições de desactivação. As programações possíveis são de vários tipos, existem programações simples, programações complexas, programações horárias e ainda a utilização de sequências. 22 4.1.1. Programa simples Sempre que a programação exige apenas o teste de uma propriedade de um dispositivo, é designada de programa simples. As condições possíveis encontram-se na tabela seguinte. Tabela 4.1 – Condições possíveis para os programas simples. Condição Descrição = Igual a ≠ Diferente de < Menor que ≤ Menor ou Igual a > Maior que ≥ Maior ou igual a DO Agir Sempre Assim se o valor de uma propriedade fizer activar a condição escolhida, seguir-se-á a execução das acções programadas. A condição “DO” implica que as acções serão executadas sempre que o valor da propriedade muda. Exemplo: IF on/off_botão=1 THEN lâmpada_on/off=1 Se a propriedade on/off do botão for igual ao valor 1, então a propriedade on/off da lâmpada será colocada a 1. Ou seja, se o botão for pressionado a lâmpada será acesa. 4.1.2. Programa Complexo Quando a programação exige uma interacção entre várias condições, é designada programa complexo. Os programas complexos utilizam várias condições que são avaliadas utilizando operadores entre elas. Os operadores são os indicados na tabela 4.2. 23 Tabela 4.2 – Operadores possíveis para os programas complexos. OPERADOR Descrição EQUAL Igual (A == B) NOT Negação (! 𝑨) AND E Lógico (𝑨&&𝑩) OR OU Lógico (𝑨||𝑩) XOR OU Exclusivo (𝑨⨁𝑩) XNOR Equivalente (𝑨⨁𝑩̅̅ ̅̅ ̅̅ ̅) O modo de funcionamento é em tudo semelhante ao dos programas simples, ou seja, quando a condição geral passa a verdadeira, as acções são executadas. Exemplo: IF (on/off_botão_1=1) OR (on/off_botão_2=1) THEN lâmpada_on/off=1 Se a propriedade on/off do botao_1 tiver o valor 1, OU a propriedade on/off do botao_2 tiver o valor 1, a lâmpada acenderá. Ou seja, esta programação permitirá acender a lâmpada, qualquer que seja o botão pressionado. 4.1.3. Programa Horário Os programas horários, como o nome indica, utilizam a informação dada pelo relógio para activar ou desactivar determinadas acções. A condição aqui é representada por um horário: ano, mês, dia, horas, minutos e segundos. Quando o horário é atingido, as acções são desencadeadas. Os programas horários são classificados consoante o seu nível de repetição: Evento Único – Quando ocorre apenas uma vez. Diário – Quando ocorre diariamente, sendo definido apenasas horas, minutos e segundos. Semanal – Quando ocorre no mesmo dia (de semana) todas as semanas. Mensal, Dia do mês – Quando ocorre no mesmo dia todos os meses. Mensal, Dia da semana – Quando ocorre todos os meses num mesmo dia da semana. (p.ex. todas as primeiras 5ªf de cada mês). Anual – Quando ocorre anualmente no mesmo dia, mês, horas, minutos e segundos. 24 Exemplo: IF time=1394493000 (Evento Único) THEN on/off_lampada=1 Se o tempo for igual ao tempo programado, a lâmpada será acesa. Aqui o tempo está representado em segundos, pois é o formato utilizado pelo sistema DomoBus, sendo que 1394493000 corresponderá a 2014/02/10 23:10:00. 4.1.4. Sequência Uma sequência é um formato de programação que utiliza pausas dadas em segundos, até activar as acções definidas. Ou seja, imaginando que queremos activar um determinado dispositivo durante 10 segundos, e de seguida desactivá-lo. Então programa-se uma sequência com período de 10 segundos, em que no final dos 10 segundos será desactivado o dispositivo. Sendo necessário antes criar um programa que active o dispositivo e active a sequência, isto porque as sequências funcionam juntamente com as programações, sejam simples, complexas ou horárias. Assim será um dos programas a activar a sequência desejada. Exemplo: Sequencia_1: WAIT 10s THEN lâmpada=0 IF on/off_botão=1 THEN (lâmpada=1; START sequencia_1) A lâmpada é acesa e a sequencia_1 é activada. 10 Segundos depois, a lâmpada será apagada. Com este tipo de programações, torna-se fácil e bastante intuitivo qualquer utilizador conseguir colocar em funcionamento todas as configurações de automação que deseje no seu sistema. Esta fórmula, que conjuga a abstracção dos dispositivos físicos com os dispositivos virtuais, com a ampla variedade de programações, permite assim fazer-se quase tudo com este sistema. As possibilidades de automação dependem na sua maioria da imaginação do utilizador, ou quanto muito da sua familiaridade com o sistema. 25 4.2. Aplicação de Supervisão Quando esta tese teve inicio, a biblioteca que implementa os mecanismos de suporte à supervisão era apenas uma colecção de funções em linguagem C, que implementam o essencial dos programas descritos (simples e complexos), os programas horários e as sequências. Foi então necessário criar toda a infra-estrutura exterior a essa biblioteca, de modo a criar um software real que conseguisse efectivamente fazer a automação de uma habitação. A aplicação de supervisão, foi então o software criado no âmbito desta tese, de maneira a conseguir testar o bom funcionamento da biblioteca de funções do DomoBus. Este software consistiu num programa em linguagem C que fornece as ferramentas necessárias para que seja possível interagir com o DomoBus, tanto a nível de criar os programas necessários ao seu funcionamento, como a nível da adição de novos dispositivos e propriedades. A aplicação de supervisão permite também a passagem de comandos do DomoBus para os dispositivos a controlar. O software está dividido em duas aplicações, Programador e Supervisor, que interagem entre si, como pode ser visto na figura 4.1. Cada uma estará instalada num computador diferente e entre elas comunicarão através da rede TCP/IP. O Supervisor é o cérebro do sistema, pois contém a biblioteca DomoBus, e é ele que toma todas as decisões e faz todo o processamento. Na secção 5.2, explica-se em detalhe, como funciona. Em seguida vamos focar-nos na aplicação Programador, visto ser ela que interage com o utilizador, e ser ela e apenas ela que o utilizador de facto utiliza. Figura 4.1 – Modelo de interacção entre a aplicação Programador e a aplicação Supervisor. 26 4.3. Aplicação Programador Como foi dito e pode ser visto na figura 4.1, é com a aplicação programador que o utilizador interage. É através dela que o utilizador irá adicionar novos tipos de dispositivos e propriedades às instâncias concretas dos dispositivos de um dado sistema. Será também através desta aplicação que o utilizador irá criar as programações que depois permitirão ao sistema funcionar e controlar os dispositivos, fazendo aquilo que o utilizador pretende. Nesta secção iremos explicar em detalhe como o utilizador deverá utilizar a aplicação Programador para adicionar os dispositivos e criar as programações. Esta secção permite ilustrar as potencialidades do Programador, e perceber como se configura um sistema. Figura 4.2 – Menu inicial da aplicação Programador. O utilizador ao iniciar o programa encontrará um menu, e será a partir desse menu que passará todo o controlo do sistema. O menu pode ser visto na figura 4.2. Futuramente seria ideal desenvolver um interface gráfico para esta aplicação, de modo a torna-la mais fácil e agradável de usar. De momento, não foi essa a nossa prioridade, a prioridade centrou-se mais no funcionamento e teste do programa. De relembrar que esta aplicação serve apenas para configurar o sistema, assim ela é meramente uma ferramenta para se conseguir parametrizar todo o sistema e assim poder efectuar todos os testes necessários para se poder validar o sistema. 27 Podem ser feitos 8 tipos de operações com o Programador: Criar algo NOVO – quer seja adicionar um novo dispositivo, uma nova propriedade, ou criar uma nova programação. Sempre que seja escolhida uma das operações NOVO, será criado e adicionado à memória do sistema, um novo elemento. Podemos criar Novos (as): - Propriedades - Tipos de Dispositivos - Dispositivos - Programas Simples - Programas Complexos - Programas Horários - Sequências Adicionar Acções – Este tipo de operação adiciona uma acção a um determinado programa, esta pode ser uma acção de activação ou desactivação. Podemos adicionar acções a: - Programas Simples - Programas Complexos - Programas Horários - Sequências Adicionar Condições – Esta operação é exclusiva dos programas complexos, e tal como o nome indica, adiciona uma nova condição a um programa complexo. Adicionar Operadores – Esta operação é também exclusiva dos programas complexos, ela adiciona um novo operador a um programa complexo. Adicionar Período – Esta operação é exclusiva dos programas horários, ela cria e adiciona um novo período horário, a um programa horário. Adicionar item – Esta operação é exclusiva das sequências, ela irá adicionar um novo item a uma sequência. Listar elementos – Esta operação faz com que sejam impressos no ecrã todos os elementos pertencentes ao grupo e instalados no sistema. Ou seja, se for pedido para listar os dispositivos, todos os dispositivos que existirem no sistema serão impressos no ecrã. 28 Podemos Listar: - Propriedades - Tipos de dispositivos - Dispositivos - Programas Simples - Programas Complexos - Programas Horários - Sequências Eliminar elemento – Esta operação apaga um elemento de um determinado grupo. Podemos Eliminar: - Programas Simples - Programas Complexos Nota: à data da conclusão desta dissertação as funções do DomoBus apenas permitiam eliminar programas simples e programas complexos. De Futuro espera-se que seja possível eliminar qualquer um dos tipos de programa (sequências incluídas) e também acções de activação e desactivação. Nas secções seguintes faz-se uma descrição detalhada das principais operações que podem ser desenvolvidas no Programador. 4.3.1. Novos Dispositivos O procedimento para a adição de novos dispositivos segue a ordem dada de seguida: Propriedade → Tipo de Dispositivo → Dispositivo Para configurar o sistema é primeiramente necessário definir os dispositivos do sistema. Para isso, a primeira coisa a fazer é definir as propriedades. Como foi dito antes, existem 3 tipos diferentes de propriedades,escalar, enumerados e arrays. Ao adicionar uma nova propriedade teremos que escolher qual o tipo dessa propriedade, bem como o nome e o modo de acesso à propriedade (só leitura, só escrita e leitura-escrita), seguindo sempre o modelo explicado na secção 3.5. Depois de adicionadas as propriedades precisamos de adicionar os tipos de dispositivos. Para isso teremos que definir o nome, e seleccionar todas as propriedades associadas a esse tipo de dispositivo. 29 Finalizado este passo podemos então adicionar os dispositivos que compõem o sistema, sendo necessário, o nome do dispositivo, bem como o seu ID. O ID será o número identificador do dispositivo. Neste momento o ID é apenas um número, mas numa próxima versão o ID poderá servir para endereçar o dispositivo dentro da rede, de modo a permitir uma comunicação real com ele. Depois de inserir o ID, serão listados os diversos tipos de dispositivos existentes e teremos de seleccionar o mais indicado. Segue-se um resumo de todas as operações necessárias para adicionar dispositivos: 1- Adicionar Propriedades 1.1- Escolher o nome 1.2- Escolher modo de acesso 1.3- Escolher Tipo de valor 2- Adicionar Tipos de Dispositivos 2.1- Escolher o nome 2.2- Escolher as propriedades 3- Adicionar Dispositivo 3.1- Escolher o nome 3.2- Definir o ID do dispositivo 3.3- Escolher o Tipo de dispositivo associado 4.3.2. Programa Simples Para podermos configurar um programa simples é necessário ter em mente, qual o dispositivo activador, e qual o activado. Ou seja, teremos uma propriedade de um dispositivo que estará a ser monitorizada. Quando o valor dessa propriedade atingir o valor definido, irá provocar a activação de outra propriedade, de outro ou do mesmo dispositivo. Assim no menu inicial depois de escolhermos criar um novo programa simples, teremos que escolher o nome do programa e de seguida identificamos qual o dispositivo e a propriedade que irão ser avaliados. Depois escolhemos a condição a implementar (Igual a, Diferente de, Menor que, Menor ou Igual a, Maior que, Maior ou igual a, Agir sempre) e finalmente o valor a usar na comparação. Depois de criado o programa, há que adicionar as acções a serem executadas. Quando a condição que foi definida passar a verdadeira, irá desencadear as acções de activação. Quando a condição passar a falsa, serão desencadeadas as acções de desactivação. Assim, para adicionar uma acção é necessário escolher qual o programa onde será adicionada essa 30 acção, depois escolhemos o dispositivo e a propriedade desse dispositivo que serão activadas, finalmente adicionamos a mensagem de activação ou desactivação conforme o tipo de acção. Antes de prosseguir convém explicar o conceito das mensagens de acção. As mensagens de acção servem numa primeira fase para interagir directamente com os dispositivos. Elas contêm a informação relativa ao número do dispositivo, a sua localização na rede, a propriedade a ser alterada, e o valor a inserir na propriedade. Neste momento essa mensagem é inserida pelo utilizador, mas numa próxima versão do software poderá ser gerada automaticamente, visto que neste momento as mensagens não têm qualquer utilidade prática pois não existe uma ligação verdadeira aos dispositivos. Outra coisa de salientar em relação às mensagens é o facto de existirem mensagens internas e mensagens externas ao sistema. As mensagens externas são as mensagens de que falámos em cima, são as mensagens que informam os dispositivos da alteração de propriedades, ou seja, mandam ligar ou desligar, subir ou descer, aquecer ou arrefecer, etc. As mensagens internas, são mensagens internas do programa, são mensagens que são usadas por exemplo para chamar funções dentro do programa. Podem ser usadas para alterar o valor de propriedades de dispositivos, ou podem ser usadas para invocar sequências por exemplo, como veremos mais à frente. As mensagens internas obedecem a um formato específico e, de momento, necessitam ser definidas em formato binário. Este formato permite usar constates hexadecimais, as quais necessitam ser precedidas por “\x”. Vejamos um exemplo: \x0F\x36\x00\x00\x00\x41\x02\x00 será o comando que colocará o valor 2 na propriedade número 1 do dispositivo 54. Vejamos então por partes: \x0F é 15 em valor decimal, que corresponde ao comando SPV (Set Property Value) do DomoBus. Este é o comando usado para definir o valor de uma propriedade. \x36\x00\x00\x00 representa um inteiro de 32 bits correspondendo ao valor 54 em decimal, identificando assim, o dispositivo 54; \x41 corresponde ao valor 65 em decimal. Este valor corresponde à soma 64+1, ou seja o valor de 64 indica que se trata de uma propriedade do tipo escalar e o valor 1 é o número da propriedade. Para os 3 tipos de propriedades existentes, o valor a somar ao número da propriedade será, 0 se for uma propriedade do tipo escalar, 64 se for do tipo enumerado e 128 se for um vector. Finalmente o valor \x02\x00 corresponde ao valor 2 em decimal, e corresponde ao valor que se quer colocar na propriedade. Em suma, sempre que haja necessidade de usar este tipo de comandos, é necessário fazer a conversão dos valores decimais para valores hexadecimais. Pretendia-se automatizar a forma como se criavam este tipo de mensagens internas. A ideia era criar um sistema automático que a partir do numero do dispositivo, numero da propriedade e valor a ser inserido cria-se automaticamente a mensagem a ser enviada dentro do sistema. Mas no final acabou por não haver tempo para uma tarefa que era algo complexa e trabalhosa. Acabamos por trabalhar 31 com os comandos a serem criados manualmente com as constantes hexadecimais. Fica aqui para um trabalho futuro, melhorar este aspecto. Resumo dos procedimentos para a criação de um programa simples: 1- Criar Programa simples 1.1- Escolher o nome 1.2- Escolher dispositivo activador 1.3- Escolher a propriedade a ser monitorizada 1.4- Escolher condição a implementar 1.5- Escolher valor de comparação 2- Adicionar Acção de activação 2.1- Escolher programa onde adicionar a acção 2.2- Escolher dispositivo a activar 2.3- Escolher propriedade a activar 2.4- Escrever mensagem de activação 3- Adicionar Acção de desactivação 3.1- Escolher programa onde adicionar a acção 3.2- Escolher dispositivo a desactivar 3.3- Escolher propriedade a desactivar 3.4- Escrever mensagem de desactivação 4.3.3. Programa Complexo À semelhança dos programas simples, nos programas complexos também haverá dispositivos e propriedades activadoras, a única diferença é que teremos vários dispositivos e propriedades activadoras. Cada condição define um dispositivo activador, com a devida propriedade. Cada condição pode ser vista como um programa simples, semelhante aos vistos na secção anterior. Assim quando queremos comparar o resultado entre duas condições, teremos que criar um operador, um operador pode também comparar o resultado de dois operadores, ou de uma condição e um operador. Em resumo, começamos por criar o programa complexo onde precisamos apenas de escolher o nome. De seguida adicionamos as condições ao programa, começamos por escolher qual o programa onde vamos adicionar, depois escolhemos o nome para a condição, depois o dispositivo e propriedade activadores, por fim a condição (Igual a, Diferente de, Menor que, Menor ou Igual a, Maior que, Maior ou igual a, Agir sempre) e o valor, tudo semelhante aos programas simples. De 32 salientar que as condições podem ser criadas em qualquer momento, haja operadores já criados ou não, no entanto é necessário que as condições estejam criadas para que possam ser adicionadas aos operadores. Para adicionar um operador, teremos que escolher qual o programa onde será acrescentado, depois escolhemos o 1º operador, é necessárioidentificar primeiro se se trata de uma condição ou de um operador, depois faremos o mesmo para o 2º operador e finalmente escolhemos o operador logico a ser implementado entre os dois operadores (EQUAL, NOT, AND, OR, XOR, XNOR). No final basta adicionar as acções tal como faríamos num programa simples, os procedimentos são os mesmos. Resumo dos procedimentos para adição de um programa complexo: 1- Criar Programa complexo 1.1- Escolher o nome 2- Adicionar Condição 2.1- Escolher programa onde adicionar a condição 2.2- Escolher o nome 2.3- Escolher o dispositivo a programar 2.4- Escolher a propriedade a programar 2.5- Escolher a condição a implementar 2.6- Escolher valor para a condição 3- Adicionar operador 2.1- Escolher programa onde adicionar o operador 2.2- Escolher 1º operador 2.3- Escolher 2º operador 2.4- Escolher operador lógico 4- Adicionar Acção de activação 4.1- Escolher programa onde adicionar a acção 4.2- Escolher dispositivo a activar 4.3- Escolher propriedade a activar 4.4- Escrever mensagem de activação 5- Adicionar Acção de desactivação 5.1- Escolher programa onde adicionar a acção 5.2- Escolher dispositivo a desactivar 5.3- Escolher propriedade a desactivar 5.4- Escrever mensagem de desactivação 33 4.3.4. Programa Horário Para criar um programa horário é necessário escolher o nome e o ID pelo qual será conhecido e identificado. Depois definimos o tipo de repetição que será efectuada (Evento Único, Diário, Semanal, Mensal - Dia do mês, Mensal - Dia da semana, Anual). Se o tipo de repetição for semanal, teremos que escolher o dia da semana a repetir. Se for um evento único teremos que definir a data de início e a data de final, em que teremos que definir o ano, mês e dia, bem como as horas, minutos e segundos. Para os outros casos, em que o evento não ocorre apenas uma vez, teremos que escolher o período de repetição, em que o valor 1 irá repetir todos os dias, ou todos os meses, ou todos os anos, em que o valor 2 irá repetir de 2 em 2 dias, ou de 2 em dois meses, e em que o valor 3 irá repetir de 3 em 3 dias ou 3 em 3 meses, e por ai adiante. Finalmente definimos a data de início e de final do período, em ano, mês e dias. Ou seja de que data até que data é que o programa horário estará activo. Nos programas que exigem repetição (todos excepto os eventos únicos), teremos que adicionar períodos ao programa. Serão estes períodos que irão fazer activar as acções ou desactivar as acções. Assim, definindo um período entre as 13:00:00 e as 14:00:00, quando forem 13:00:00 as acções de activação serão desencadeadas e, quando forem 14:00:00, serão desencadeadas as acções de desactivação. Para adicionar um novo período, teremos que escolher o programa onde adicionar o período, de seguida escolhemos a data de início (horas, minutos e segundos) e depois a data de fim, (horas, minutos e segundos). Finalmente adicionamos as acções. Teremos que escolher o programa onde adicionar a acção e depois definir a mensagem de activação ou desactivação consoante for o caso. 1- Criar Programa horário 1.1- Escolher o nome 1.2- Definir o ID do programa 1.3- Escolher o tipo de repetição (*) 1.4- Escolher os dias de semana a programar (**) 1.5- Escolher data de início (ano/mês/dia – h/m/s) e data de final (ano/mês/dia – h/m/s) 1.6- Escolher período de repetição 1.7- Escolher data de início do período (ano/mês/dia) e data de final do período (ano/mês/dia) (*)- Só será necessário escolher os dias de semana, se o tipo de repetição for do tipo semanal (**)- No caso do tipo de ser um evento único 34 2- Adicionar período ao programa horário (condicional) 2.1- Escolher programa onde adicionar o período 2.2- Escolher data de início (horas/minutos/segundos) 2.3- Escolher data de final (horas/minutos/segundos) 3- Adicionar Acção de activação 3.1- Escolher programa onde adicionar a acção 3.2- Escrever mensagem de activação 4- Adicionar Acção de desactivação 4.1- Escolher programa onde adicionar a acção 4.2- Escrever mensagem de desactivação 4.3.5. Sequência As sequências são invocadas por outros programas sempre que se quer impor algum tipo de restrição temporal, ou seja, quando queremos impor uma pausa, dada em segundos, a algum tipo de dispositivo. Por exemplo se quisermos que uma lâmpada ligue ou desligue algum tempo depois de se pressionar um botão, se tivermos um detector de movimento e quisermos evitar que a luz se acenda e apague demasiadas vezes, por exemplo sempre que nos ausentemos da divisão. Assim programa- se um tempo mínimo em que a luz tem que estar ligada mesmo que não haja movimento a ser detectado na divisão. Cada sequência poderá ter vários itens, cada item tem um tempo de pausa diferente e desencadeia acções diferentes. Assim quando uma sequência for chamada, começa a contabilizar o tempo e a activar as acções conforme os tempos dos respectivos itens forem atingidos. Por exemplo, considere- se uma sequência com 3 itens, um com 10 segundos, outro com 5 segundos e outro com 35 segundos, assim 10 segundos depois da sequência ter sido activada ela irá desencadear as acções do primeiro item, 5 segundos depois são activadas as acções do segundo item e, finalmente, 35 segundos depois são activadas as acções do terceiro e último item. Nesta versão do software ainda não está perfeitamente implementada a forma de chamar as sequências. Assim, para invocar uma sequência é necessário introduzir manualmente, em hexadecimal, as mensagens de activação ou desactivação da sequência. Por exemplo, para invocar a sequência numero 3, deve ser usada o código binário: \x15\x03\x00\x00\x00 consoante foi explicado na secção 4.3.2, em que \x15 corresponde ao valor decimal 21 correspondente ao comando Start Sequence e \x03\x00\x00\x00 que corresponde ao valor 3 decimal e que indica o ID da sequência a ser desencadeada. 35 Então para adicionar uma nova sequência ao sistema, começamos por criar a sequência, onde teremos que escolher um ID pelo qual passará a ser conhecida. Seguidamente adicionamos os itens: escolhemos a sequência onde iremos adicionar o item e definimos o tempo a esperar em segundos. Finalmente adicionamos as acções, escolhendo qual a sequência e qual o item onde adicionar. Para finalizar, escrevemos a acção a executar. Segue-se um resumo dos procedimentos: 1- Criar Sequencia 1.1- Escolher ID da sequência 2- Adicionar Item á sequencia 2.1- Escolher sequencia onde adicionar 2.2- Definir tempo a esperar (segundos) 3- Adicionar Acção ao item 3.1- Escolher sequencia onde adicionar 3.2- Escolher item onde adicionar 3.3- Escrever acção a executar 36 37 5. Implementação O software que foi criado no âmbito desta tese de mestrado consiste fundamentalmente em duas aplicações distintas, a aplicação de supervisão, chamada Supervisor e a aplicação de programação chamada Programador. O Programador, como o nome indica servirá para configurar todas as funções desejadas para a automação, quer seja a criação dos programas que irão comandar as variadas funções, quer seja a adição de novos dispositivos e propriedades ao sistema. O Supervisor será uma espécie de cérebro do software, sendo dele que partem todas as ordens relativas à gestão dos diferentes dispositivos presentes no sistema. É ele que recebe a informação de estado dos dispositivos e desencadeia o envio de comandos para realizar acções. É também ele que faz a gestão do tempo, activando ou desactivando os diferentes dispositivos conforme as ordens presentes nas programações horárias, como veremos mais à frente. Nesta primeira versão do mecanismo de supervisão, a comunicação com os dispositivos não está totalmente implementada, a transferência de ordens entre o Supervisor
Compartilhar