• Nenhum resultado encontrado

Ambientes Inteligentes

N/A
N/A
Protected

Academic year: 2021

Share "Ambientes Inteligentes"

Copied!
5
0
0

Texto

(1)

Ambientes Inteligentes

Temas de projectos

Versão 1.3

Neste documento apresentam-se diversos temas de projectos. São apresentadas apenas descrições simplificadas. Para esclarecimento de dúvidas e detalhes adicionais deverá ser contactado o Prof. Renato Nunes. Informação sobre o DomoBus pode ser obtida em http://domobus.net.

São permitidos outros temas para os projectos, no domínio da domótica, das redes de sensores sem fios e dos sistemas inteligentes de mobilidade, aceitando-se sugestões.

• CommAPI (Communication Application Programming Interface) – Biblioteca de comunicação de suporte à interacção entre aplicações DomoBus.

Código que será incluído em todas as aplicações DomoBus que correm em ambiente PC (Windows ou Linux) que tratará das comunicações. Essas comunicações serão suportadas através de datagramas UDP, usando uma interface de sockets. Estes detalhes serão escondidos das aplicações pelo código a desenvolver que deverá tratar de todas as inicializações e oferecer funções para o envio e para a recepção de mensagens. Uma vez que a comunicação UDP não é fiável será implementado um mecanismo de confirmação e retransmissão de mensagens. O envio e a recepção de mensagens deverão poder ser síncronos ou assíncronos. No caso do envio síncrono a função fica bloqueada até ser recebida confirmação ou ocorrer timeout. Se o envio for síncrono a função termina e posteriormente, em caso de erro, a aplicação será notificada disso. No caso da recepção síncrona a aplicação fica bloqueada a aguardar a chegada de uma mensagem. Em alternativa, a recepção pode ocorrer através usando um mecanismo de “callback” (aplicação indica função que será chamada quando é recebida uma mensagem).

O código de comunicação incluirá uma cache de mapeamento de endereços DomoBus em pares IP-porto e existirá um serviço de directório – AppDir – onde as aplicações se registam indicando o seu endereço DomoBus e o IP e porto que usam para comunicar. (Nota: a CommAPI descrita em http://domobus.net não está actualizada face à implementação a realizar).

• Biblioteca de carregamento da especificação XML de um sistema DomoBus Desenvolver uma biblioteca portável e que possa correr em sistemas embebidos (sugere-se que seja escrita em linguagem C). A biblioteca dever permitir ler a especificação XML de um sistema DomoBus e criar em memória as estruturas de dados necessárias com toda a informação lida. Assume-se que a especificação foi validada previamente podendo o “parsing” ser simplificado para detectar apenas erros graves.

O código a desenvolver deverá oferecer um conjunto flexível de funções para permitir efectuar os mais variados tipos de pesquisas sobre a informação carregada em memória. Incluir também a possibilidade de, dinamicamente, adicionar elementos, modificar ou removê-los.

(2)

A solução a desenvolver deverá ser facilmente extensível ou adaptável caso a actual especificação XML seja modificada (por exemplo, adição de novos nós ou alteração de atributos).

• Simulação de um ambiente inteligente em contexto doméstico

Desenvolvimento de uma aplicação que permite definir perfis para utilizadores e que simula o comportamento de uma habitação quando esses utilizadores entram em determinadas divisões ou se deslocam de uma divisão para outra.

O perfil de cada utilizador deverá conter as suas preferências em termos de valores de temperatura e iluminação, por exemplo, e outra informação a nível de entretenimento (preferências musicais, canais de TV, volume sonoro, acesso a informação online). Equacionar também outros aspectos como privacidade e valoração dada à economia de energia (um utilizador pode valorizar mais a economia e preferir abrir janelas ou subir estores e poupar no ar-condicionado e na iluminação ou, pelo contrário, valorizar o conforto mesmo que isso implique maior gasto energético). Idealmente o perfil de um utilizador deve ser flexível e poder ser expandido.

Com o objectivo de ajudar a resolver conflitos entre as preferências de diferentes utilizadores, podem ser contemplados aspectos como um nível de privilégio associado a cada utilizador e o grau de importância que cada utilizador dá a uma dada preferência.

Os perfis dos utilizadores serão registados usando um ficheiro XML.

Para validar a operacionalização dos perfis, a aplicação a desenvolver incluirá uma componente de simulação de uma habitação, sendo capaz de carregar a especificação XML de um sistema DomoBus. Deverá em seguida ser possível explicitar a localização de um ou mais utilizadores, devendo a aplicação reagir face às preferências dos utilizadores e face aos dispositivos existentes, indicando que actuações seriam desencadeadas.

• Simulador de dispositivos DomoBus

Aplicação que carrega a especificação XML de um sistema DomoBus e simula os respectivos dispositivos. Pode receber mensagens de consulta (GET) ou alteração (SET), actualizando o estado do dispositivo. Permite também que o utilizador defina, interactivamente, novos valores para as propriedades dos dispositivos. A aplicação pode enviar mensagens de notificação (NOTIFY) [previamente designado REPORT] para uma aplicação pré-definida, sempre que ocorre uma alteração de estado (devido a mensagens recebidas ou por intervenção do utilizador).

A comunicação com outras aplicações deve ser baseada na CommAPI (conjunto de funções de suporte à comunicação).

• Supervisor DomoBus

Código que gere o estado actual de um conjunto (ou de todos) os dispositivos de um sistema e que, de acordo com regras definidas, desencadeia acções.

O código a desenvolver deverá poder ser integrado em diferentes aplicações permitindo, por exemplo, que um gateway desempenhe funções de supervisão. Para efeitos de teste o código será integrado numa aplicação exclusivamente de supervisão para gerir o comportamento de uma habitação.

O código de supervisão gere uma lista com o estado actualizado das propriedades de um conjunto de dispositivos. Permite definir testes e condições.

(3)

Um teste corresponde a uma estrutura de dados que fica associada a uma propriedade de um dispositivo. Um teste inclui um operador de comparação (=, >, >=, <, etc…) e um valor a usar nessa comparação. Uma condição consiste numa expressão lógica envolvendo qualquer número de testes, conjugados através de operadores booleanos (AND, OR, NOT, XOR). Uma condição permite testar propriedades de diferentes dispositivos.

A um teste e a uma condição podem ser associadas listas de acções. Uma acção explicita um dispositivo e uma propriedade e o valor a atribuir-lhe. As listas de acções são desencadeadas quando uma condição ou um teste se tornam verdadeiros. Deverão também ser contempladas listas e acções de desactivação as quais são executadas quando uma condição ou um teste deixam de ser verdadeiros.

O comportamento de um supervisor será definido por um conjunto de testes, condições e acções (de activação e desactivação), que podem ser adicionadas e removidas em qualquer momento (usando mensagens específicas ou lendo informação de um ficheiro).

• Aplicação de configuração de um sistema DomoBus

Aplicação que permite a um utilizador comum definir e alterar o comportamento de um sistema domótico DomoBus. Esse comportamento será baseado no modelo explicado no ponto anterior em que podem ser definidos testes ou condições mais complexas que, quando se tornam verdadeiras, desencadeiam uma ou mais acções. Toda a informação será registada num ficheiro usando XML.

Permitir também a definição de macros: conjuntos de acções que podem ser desencadeadas a partir de um único estímulo.

Podem ser estudadas outras formas de definir com a casa se comporta perante certas situações.

• Aplicação de concepção de sistemas DomoBus

Aplicação que permite a um utilizador importar as descrições de módulos DomoBus, definir a estrutura física da habitação, explicitar que dispositivos domóticos irão existir e onde estão localizados. Deverá também permitir explicitar as condições de notificação dos vários dispositivos. São as condições de notificação que originam que os dispositivos enviem informação de estado para um supervisor, podendo dar origem a que múltiplas acções sejam desencadeadas, afectando o estado de múltiplos dispositivos.

• Interface móvel de acesso ao sistema DomoBus

Desenvolver uma aplicação para um dispositivo móvel, por exemplo um PDA ou Smartphone com Windows Mobile, que permita monitorizar e comandar um sistema DomoBus. Em alternativa ao uso de Windows Mobile pode ser equacionado o uso de Android ou outro tipo de sistema operativo.

O dispositivo móvel comunicará usando, por exemplo, Wi-Fi, e será capaz de carregar a especificação XML de um sistema DomoBus. Desse modo pode oferecer uma interface que permita navegar pela estrutura física da habitação, aceder a dispositivos e às suas propriedades para conhecer o seu valor ou para o alterar, despoletando acções.

Incluir sistema de favoritos em que o utilizador pode explicitar dispositivos que usa com mais frequência, podendo acedê-los de um modo mais rápido.

(4)

Em alternativa ao uso de uma aplicação local pode ser equacionada a possibilidade de ser usado um “browser” e desenvolver uma aplicação Web (recorrendo, por exemplo, à tecnologia Ajax para conseguir um nível adequado de interactividade).

• Gateway DomoBus – X10

Desenvolvimento de um gateway entre o DomoBus e a tecnologia X10. A comunicação com os dispositivos X10 será efectuada usando um controlador CM11 (já existe algum código disponível assim como uma interface USB com driver). Este gateway será configurado usando um ficheiro XML que explicita que dispositivos X10 existem, qual o seu tipo e quais os seus endereços, e que explicita a correspondência com dispositivos DomoBus virtuais (dispositivos simulados pelo gateway que correspondem aos dispositivos X10 reais). Deste modo as mensagens DomoBus enviadas para o gateway podem ser convertidas em mensagens X10 e as ocorrências nos dispositivos X10 podem ser traduzidas em alterações de estado usando o modelo DomoBus.

• Gateway DomoBus - Messenger

Desenvolvimento de um gateway entre o DomoBus e o Messenger ou outros clientes de “Instant Messaging”. O objectivo é permitir a uma pessoa em qualquer ponto e usando um computador com um cliente de “instant messaging” comunicar com a habitação e ser notificado de alarmes ou outras ocorrências. Os avisos e alarmes deverão poder ser específicos por utilizador, embora possam existir alarmes globais. A interacção entre os utilizadores e a casa poderá usar menus ou uma interacção que se aproxime de linguagem falada.

• Aplicação de supervisão que gere o sistema em função das pessoas presentes na habitação e respectiva localização.

Assume-se que é possível saber que pessoas estão presentes na habitação e qual a sua localização (esta vertente será simulada). Em função dessa informação e considerando perfis associados a cada pessoa (preferências em termos de iluminação, temperatura, privacidade, poupança energética, etc), o sistema efectuará a gestão da habitação acendendo as luzes quando um pessoa se desloca para um divisão, ligando o ar-condicionado, desligando as luzes quando já não há ninguém numa divisão, etc.

• Comando remoto universal para o DomoBus

Desenvolver um dispositivo, com base numa placa de microcontrolador já existente, que permita aprender sinais gerados por comandos remotos de infravermelhos e que consiga emitir comandos infravermelhos para comandar equipamentos como televisores, Hi-Fi, ar-condicionado, etc. Na programação do microcontrolador será usada a linguagem C.

Nota: São possíveis outros trabalhos de “baixo nível” (programação em C para microcontroladores) e o uso de placas que suportam Linux embebido.

• Simulador de um controlador DomoBus

Os controladores DomoBus, de baixo nível, são sistemas baseados em microprocessador que lêem sensores e comandam actuadores, monitorizando e intervindo no meio ambiente. O software destes controladores está todo desenvolvido em C sendo genérico. O único nível de dependência do hardware

(5)

relaciona-se com a leitura e escrita de portos, o uso de temporizadores para marcação de tempo e uso de periféricos específicos (usados, por exemplo, na comunicação). Os periféricos, portos e outros registos internos do microprocessador podem ser facilmente simulados usando variáveis. Deste modo torna-se possível testar todo o código e simplificar o processo de desenvolvimento que, numa primeira fase, pode ser efectuado sem recorrer a nenhum hardware. Quando o software explicita a leitura de um porto, na prática será lido o valor da variável que emula esse porto. Deste modo o software testado será exactamente o software que irá correr no microprocessador.

O simulador a desenvolver deve permitir consultar e alterar as variáveis que representam os periféricos do processador e, para permitir efectuar simulações complexas, deve oferecer a possibilidade de estabelecer sequências de operações sobre essas variáveis, ao longo do tempo. Uma possibilidade de implementação deste mecanismo pode recorrer a uma fila de eventos em que cada evento explicita um instante de tempo e um valor a atribuir a uma dada variável (que representa um dado periférico do processador).

Para facilitar a análise das acções realizadas pelo software pode-se também oferecer uma fila de eventos em que cada um explicita um instante de tempo e o valor atribuído pelo software a uma dada variável (que emula um recurso do processador).

Referências

Documentos relacionados

De seguida, vamos adaptar a nossa demonstrac¸ ˜ao da f ´ormula de M ¨untz, partindo de outras transformadas aritm ´eticas diferentes da transformada de M ¨obius, para dedu-

•   O  material  a  seguir  consiste  de  adaptações  e  extensões  dos  originais  gentilmente  cedidos  pelo 

Com o objetivo de compreender como se efetivou a participação das educadoras - Maria Zuíla e Silva Moraes; Minerva Diaz de Sá Barreto - na criação dos diversos

Este trabalho buscou, através de pesquisa de campo, estudar o efeito de diferentes alternativas de adubações de cobertura, quanto ao tipo de adubo e época de

17 CORTE IDH. Caso Castañeda Gutman vs.. restrição ao lançamento de uma candidatura a cargo político pode demandar o enfrentamento de temas de ordem histórica, social e política

Com melhorias nas linhas de combustível, nossa JCB JS220F possui filtros de malha maiores e mais finos, para manter a qualidade do combustível mesmo quando operan- do em

Para os materiais de ambas as espécies observa-se uma diminuição da estabilidade térmica dos filmes de nanocelulose obtidos após 10 ciclos de processamento mecânico no

Figura 4.10 – Fluxo de CO2 para as áreas de footprint de três torres localizadas em unidades experimentais submetidas a diferentes tipos de manejo pastoril Rotativo,