Académique Documents
Professionnel Documents
Culture Documents
r
i
o
)
Temperatura do ar (controle) PT-100 EIB
Temperatura do ar (monitoramento) PT-100 VNR
Presena (movimento) Infravermelho passivo EIB
Iluminncia na rea de trabalho Luxmetro EIB
Abertura da janela (0/1) Magntico EIB
G
l
o
b
a
l
(
p
r
d
i
o
)
Temperatura do ar externa PT-100 VNR
Irradincia horizontal global Piranmetro VNR
Velocidade do vento Anemmetro VNR
Direo do vento Biruta VNR
Quadro 2 Sensores disponveis no LESO-PB. Fonte: Guillemin (2003).
63
Figura 23 Rede EIB e atuadores e sensores. Fonte: Guillemin (2003).
H dois mdulos de interface para ajuste dos parmetros do sistema em cada
escritrio. Um est relacionado iluminao artificial e ao sistema de aquecimento.
O outro est relacionado ao ajuste da posio do dispositivo de sombreamento ex-
terno.
3.3.4. Arquitetura Lgica
O sistema de automao no LESO-PB dividido em trs nveis de controle (ver
Figura 24). O primeiro nvel transforma grandezas fsicas em sinais eltricos e vice-
versa. Possui a malha de controle primria do sistema. totalmente dependente do
ambiente onde o sistema instalado. O segundo nvel possui o conhecimento, na
forma de regras difusas, que gera os parmetros de controle (setpoints) para o pri-
meiro nvel. O terceiro nvel responsvel pela adaptao de longa durao do se-
gundo nvel e leva em considerao mudanas nas caractersticas do prdio, dos
dispositivos, dos desejos dos usurios e da eficincia energtica. Os dois ltimos
nveis so facilmente ajustveis para diferentes situaes (GUILLEMIN, 2003).
64
Figura 24 Arquitetura de controle de trs nveis do LESO-PB. Fonte: Guillemin (2003).
3.3.5. Arquitetura Software
Dois computadores so responsveis pela aquisio de dados da rede. O pri-
meiro est conectado ao sistema legado VNR (PC-VNR). A cada dois segundos so
lidos dados gerados no sistema VNR e gravados em um arquivo texto. Este arquivo
usado como interface para comunicao de dados. O segundo computador est
conectado rede EIB atravs da sua porta serial. Um servidor EIB encarregado de
ler e escrever dados na rede EIB e disponibiliz-los atravs de protocolos tipo RMI
12
(GUILLEMIN, 2003).
Um terceiro computador responsvel pela execuo dos algoritmos de con-
trole e utiliza para tal tarefa quatro aplicativos principais (GUILLEMIN, 2003):
MATLAB. a parte central do sistema. Comunica-se com os outros mdu-
los do sistema via protocolo DDE, calcula as sadas dos controladores e
propaga seus valores ao servidor EIB via protocolo DDE. Tambm o soft-
ware responsvel pelos algoritmos de adaptao.
EIB Java Server. Comunica-se com o servidor EIB no PC-EIB via RMI. For-
nece dados da rede EIB atravs do protocolo DDE. Dados podem ser requi-
12
Remote Method Invocation. Chamada de mtodo remota.
65
sitados pelo cliente (cold link) ou propagados automaticamente a cada atua-
lizao de dados (hot link).
VNR Datalog Server. L a cada segundo o arquivo texto gerado no PC-
VNR. Disponibiliza os dados via protocolo DDE.
EDITIME. Servidor DDE responsvel por gerar base tempo (data e horrio)
do sistema. Envia a cada minuto o horrio e a data correntes.
3.4. Consideraes finais
Os trs trabalhos descritos resumem, de forma geral, as solues encontradas
na bibliografia para arquiteturas de software aplicadas a sistemas computacionais
em ambientes construdos. consenso a necessidade de uma camada fsica res-
ponsvel pela comunicao com dispositivos fsicos. O processamento dos dados
organizado de modo particular em cada soluo, o que implica em diferentes abor-
dagens de programao.
A arquitetura de software proposta para a Mavhome baseia-se em um modelo
de fluxo de dados, no qual a comunicao com os dispositivos fsicos ocorre atravs
de um processo visto de baixo para cima (bottom-up process). Informaes prove-
nientes de dispositivos so processadas atravs de camadas com diferentes fun-
es: comunicao, tratamento de informao e deciso. No h uma separao
clara de partes responsveis por tarefas como reconhecimento de contexto e/ou e-
xecuo de algoritmos de controle. Nenhum tipo de abstrao descrito, diferente-
mente do que ocorre na Gator Tech Smart House. Nesta ltima, abstraes como a
representao de dispositivos fsicos e de funcionalidades em forma de servios, e a
66
representao de contextos atravs de grafos interligando sensores e estados, ori-
entam o desenvolvimento de aplicativos.
A Gator Tech Smart House apresenta uma arquitetura de software com cama-
das especficas para lidar com os diferentes aspectos de um software pervasivo. Os
aplicativos so construdos a partir de um conjunto de mdulos que so abstraes
de diferentes aspectos sistema. Contextos so programados atravs de grafos em
uma camada especfica, as funcionalidades do sistema atravs servios em outra
camada, a ontologia do sistema em uma camada de conhecimento, e os dispositivos
fsicos so associados aos servios atravs de uma plataforma de sensores. As in-
formaes provenientes dos dispositivos fsicos so representadas por servios b-
sicos que interagem com outros servios responsveis por processar as informa-
es. Estes ltimos interagem com as camadas de contexto, de conhecimento e de
aplicao, executando funcionalidades programadas nestas camadas.
O ltimo trabalho, EDIFICIO, um exemplo tpico de sistema de automao do
ambiente construdo. Como em outros trabalhos da rea de automao do ambiente
construdo, no se observa preocupao com a estruturao do software usado para
automao. Em comum, esses aplicativos se comunicam com dispositivos fsicos e
processam a informao utilizando um software mais conveniente ao programador.
No raro encontrar solues nas quais a comunicao entre aplicativos ocorre a-
travs da leitura e da gravao de dados em um arquivo texto. Essa falta de preocu-
pao com a estruturao do software dificulta a expanso, a reutilizao e a manu-
teno desses sistemas. Em geral, essas solues so restritas ao ambiente de la-
boratrio e a problemas especficos.
67
4. Uma Arquitetura de Software Neuro
Reativa para Sistemas de Automao
do Ambiente Construdo
Este captulo prope e descreve uma arquitetura de software para Automao
do Ambiente Construdo baseada em unidade funcionais bsicas chamadas neur-
nios e glndulas. A primeira parte coloca os requisitos necessrios a um sistema de
Automao do Ambiente Construdo. Em seguida descrita uma proposta de Arqui-
tetura de Software para Automao do Ambiente Construdo. Por fim, so feitas
consideraes sobre a arquitetura proposta e os requisitos do sistema.
4.1. Requisitos
Nesta seo so identificadas particularidades dos ambientes construdos e
trs requisitos principais que uma arquitetura de software para automao do ambi-
ente construdo deve atender: modularidade, flexibilidade e capacidade de integra-
o das partes. O objetivo uma arquitetura de software que torne fcil o desenvol-
vimento, a manuteno e a expanso de sistemas de Automao do Ambiente
Construdo.
4.1.1. Particularidades dos Ambientes Construdos
Um sistema de automao do ambiente construdo um espao fsico, onde
um sistema computacional interage com trs entidades relevantes: usurios, senso-
res e atuadores (JANSEN et al., 2005). Os usurios interagem com o ambiente bus-
cando satisfazer suas necessidades e desejos. Os sensores capturam informaes
sobre o ambiente. Os atuadores agem sobre o ambiente, modificando-o.
68
O ambiente construdo uma entidade dinmica sujeito a variaes relaciona-
das a diversas variveis. Cabe ao projetista do sistema de automao determinar
quais variveis, contextos e comportamentos so relevantes ao sistema projetado.
Os contextos so as informaes, em geral, colhidas pelos sensores que caracteri-
zam a situao do ambiente ou da entidade em questo (DEY, 2001). Os compor-
tamentos so conjuntos de aes executadas, em geral, pelos atuadores visando a
manter o ambiente em um estado desejado (HAGRAS et al., 2003; MURPHY, 2000).
Tradicionalmente, os ambientes construdos so divididos em ambientes meno-
res, como uma casa que dividida em quartos, banheiros, sala e cozinha, onde so
desenvolvidas diferentes atividades ou tarefas (RUTISHAUSER; SCHFER, 2002).
natural que a granularidade de um sistema computacional para automao do
ambiente construdo seja baseada nessas unidades onde so desenvolvidas fun-
es especficas (HAGRAS et al., 2003). Desse modo, pode-se tratar cada uma
dessas unidades como uma entidade autnoma. Essas, por sua vez, podem se
combinar formando unidades maiores e mais complexas. possvel, assim, construir
o sistema de automao de uma casa, por exemplo, tratando-a como um conjunto
de unidades autnomas menores como quartos, banheiros, sala e cozinha. Estas
ltimas ainda podem ser dividas em partes menores como, por exemplo, a pia da
cozinha onde tarefas especficas so desenvolvidas. Cada uma dessas unidades
(gro) possui setpoints, contextos e comportamentos especficos.
4.1.2. Modularidade
A modularidade o nico atributo de software que permite que um programa
seja intelectualmente administrvel (PRESSMAN, 1995). Uma caracterstica interes-
sante, descoberta por meio da experimentao relativa soluo de problemas hu-
69
manos, que a complexidade para soluo de um problema que seja combinao
de outros problemas maior que a soma das complexidades individuais para solu-
o de cada problema combinado (PRESSMAN, 1995), isto ,
onde C(p) uma funo que define a complexidade de um problema p. Vale ressal-
tar que o aumento indiscriminado do nmero de mdulos pode gerar um novo pro-
blema associado ao gerenciamento dos mdulos (PRESSMAN, 1995).
Em aplicaes de automao do ambiente construdo, um controlador monolti-
co torna difcil a reconfigurao dinmica do ambiente ou a utilizao de partes do
sistema independentemente das outras (COEN, 1997). Sistemas modulares facilitam
a manuteno e a realocao quando comparados a sistemas monolticos
(YOUNGBLOOD; HOLDER; COOK, 2005). Vale ainda ressaltar as facilidades de
teste, de expanso e de combinao que arquiteturas modulares possuem
(MURPHY, 2000).
Uma arquitetura de software para Automao do Ambiente Construdo deve ser
modular o suficiente para permitir que mdulos possam ser combinados de maneira
particular em cada aplicao, e para facilitar testes, manutenes e expanses.
4.1.3. Flexibilidade
Flexibilidade a caracterstica relacionada inversamente ao esforo exigido pa-
ra modificao do software, isto , a facilidade de alterao do software para sua
adequao a um novo modo de operao (PRESSMAN, 1995). Dentro do contexto
da Automao do Ambiente Construdo, a flexibilidade de um sistema relaciona-se
facilidade de modificao do software para sua adaptao a uma nova soluo parti-
70
cular. O primeiro passo para tornar uma arquitetura de software flexvel a modula-
ridade. No entanto, a modularidade no garante que os mdulos tero flexibilidade
suficiente para se associarem de maneira particular de acordo com a necessidade
de cada novo problema.
Visando flexibilidade, uma arquitetura de software para Automao do Ambi-
ente Construdo deve definir uma interface de comunicao para os mdulos, facili-
tando combinaes diferentes em cada soluo particular. Cada ambiente constru-
do possui particularidades que o tornam nico, o que implica em solues nicas.
4.1.4. Capacidade de Integrao das Partes
As aplicaes de Automao do Ambiente Construdo podem contemplar v-
rios subsistemas, como iluminao, condicionamento de ar, controle de acesso, in-
cndio e segurana. Guillemin e Morel. (2001) e Kolokotsa et al. (2002) apontam a
importncia de uma abordagem integrada. importante que todas as partes do sis-
tema possam responder de forma cooperativa e coordenada aos diferentes contex-
tos de uma aplicao.
Uma arquitetura de software para Automao do Ambiente Construdo deve
possuir mecanismos que torne possvel a integrao entre as partes, isto , as par-
tes componentes devem responder de forma cooperativa e coordenada aos diferen-
tes contextos da aplicao.
4.2. Proposta
Visando a satisfazer os requisitos expostos anteriormente, proposta aqui,
uma arquitetura de software para Automao do Ambiente Construdo baseada em
unidades bsicas chamadas neurnios e glndulas, e composta por duas camadas
71
de software: camada Reativa e camada Ontolgica. Essas duas camadas possuem
interface com mais duas camadas, Fsica e de Aplicao, formando um modelo de
quatro camadas (ver Figura 25):
Fsica. a interface entre o mundo fsico e o sistema de automao. Senso-
res, atuadores e redes de campo so componentes bsicos desta camada.
Reativa. a camada responsvel por processar toda informao enviada
pelos sensores e reagir comandando os atuadores. Toda ao do sistema
o resultado da reao dos dois elementos constituintes desta camada: os
neurnios e as glndulas.
Ontolgica. a camada que guarda informaes sobre a configurao e a
estrutura da camada Reativa. formada por um conjunto de tabelas inter-
relacionadas contendo os parmetros de configurao da camada Reativa.
de Aplicao. a camada entre o sistema de Automao do Ambiente
Construdo e os aplicativos que o utilizam.
As camadas Fsica e de Aplicao so, respectivamente, camadas de interface
com o mundo fsico e com os aplicativos que se comunicam com as camadas Reati-
va e Ontolgica, ncleo da arquitetura proposta. Conjuntos de neurnios e glndu-
las, na camada Reativa, representam as malhas de controle, os contextos e os com-
portamentos do sistema de automao do ambiente construdo.
72
Figura 25 - Camadas da arquitetura proposta.
4.2.1. Camada Fsica
A camada Fsica engloba sensores, atuadores e toda a infra-estrutura de rede
de campo e hardware necessrios para a leitura de dados dos sensores e para co-
mandar aes no ambiente atravs dos atuadores. Sua funo fazer a interface
entre o mundo fsico e a camada Reativa, onde todo o processamento de controle
feito. A infra-estrutura de rede de computadores tambm compe esta camada
quando computadores interligados em rede so utilizados.
4.2.2. Camada Reativa
A camada Reativa responsvel por toda ao do sistema de automao. Ela
monitora continuamente os sensores e reage comandando os atuadores. Para atin-
gir os requisitos de modularidade, flexibilidade e capacidade de integrao entre as
73
partes, esta camada deve ser formada por elementos modulares e flexveis, e ao
mesmo tempo capazes de se integrarem com os objetivos gerais do sistema. A
questo fundamental : quais tipos de elementos podem ser utilizados para essa
tarefa?
Para solucionar esta questo, buscou-se inspirao em um sistema capaz de
executar tarefas extremamente complexas e integradas: o sistema de controle do
corpo humano. O homem capaz de executar ao mesmo tempo inmeras tarefas de
controle com objetivos diferentes: manter sua temperatura corprea, digerir, ficar
alerta a sons e movimentos, movimentar pernas e braos, dentre outras. Todo con-
trole resultado de associaes de unidades funcionalmente simples, como os neu-
rnios e as glndulas que compem os dois sistemas de controle fundamentais do
ser humano: o sistema nervoso e o sistema endcrino (GUYTON; HALL, 2006).
O sistema nervoso humano responsvel pela execuo de funes sensrio-
motoras e autnomas. Ele possui em torno de 100 bilhes de neurnios (sua clula
fundamental) que processam e se comunicam continuamente e paralelamente
(BRAGA; CARVALHO; LUDERMIR, 2007). A cada minuto milhes de bits de infor-
mao de diferentes nervos e rgos sensoriais so recebidos e processados, resul-
tando em ordens executadas pelo corpo humano (GUYTON; HALL, 2006).
Pode-se dividir o sistema nervoso em trs grandes camadas com caractersti-
cas funcionais especficas: a corda espinhal, o baixo crebro e o alto crebro. A cor-
da espinhal possui vrios centros de controle para controlar movimentos e reflexos
de rgos espalhados por todo o corpo. Os nveis superiores do crebro enviam si-
nais aos centros de controle da corda espinhal para que estes desempenhem suas
funes. O baixo crebro controla funes inconscientes e vitais como a respirao,
74
a presso arterial, entre outras. O alto crebro onde reside a conscincia, o pro-
cesso de pensamento e a memria. Seu funcionamento sempre combinado com
centros de controle dos nveis inferiores (GUYTON; HALL, 2006).
Alm do sistema nervoso, o sistema endcrino desempenha papel importante
nas funes de controle do ser humano. Mltiplas atividades do corpo humano so
coordenadas por diversos tipos de mensageiros qumicos, entre os quais se desta-
cam os hormnios. Esses ltimos so secretados por glndulas na corrente sangu-
nea em resposta a estmulos neurais ou de outros hormnios, e influenciam o fun-
cionamento de clulas em outras partes do corpo. Alguns afetam clulas em todo o
corpo, outros afetam apenas tecidos especficos (GUYTON; HALL, 2006). Boa parte
do comportamento humano resultado dos nveis de hormnio na corrente sangu-
nea.
A camada Reativa inspira-se no funcionamento dessas unidades de controle
fundamentais do corpo humano. Analogamente ao sistema de controle do corpo
humano, neurnios e glndulas artificiais so os elementos bsicos desta camada.
Os neurnios em conjunto formam malhas de controle e associam-se transformando
a informao como, por exemplo, combinando informaes de diferentes sensores
para caracterizar um contexto. As glndulas representam comportamentos e estados
(setpoints) do sistema. Enviam mensagens (secretam hormnios) que alteram o
modo de operar de diversas partes do sistema. A abrangncia de ao de uma
glndula determinada pelo domnio a que ela pertence, isto , somente neurnios
e glndulas pertencentes a este domnio que recebem suas mensagens (horm-
nios).
75
Os neurnios da camada Reativa realizam funes anlogas s exercidas na
corda espinhal e no baixo crebro. So especializadas, possuem caracterstica for-
temente reativa, no possuem conscincia do todo, no possuem qualquer processo
de deciso ou de aprendizagem. As caractersticas no encontradas nos neurnios
aqui propostos podem ser fornecidas por aplicativos desenvolvidos para a camada
de aplicao. Nas prximas sees descrevem-se os elementos fundamentais da
camada Reativa: neurnios, glndulas e domnios.
4.2.2.1. Neurnios
O neurnio formado por um conjunto de entradas contnuas, uma nica sada
contnua, que representa seu estado e um algoritmo que mapeia as entradas e a
sada. Ele representa uma pequena funo do sistema, como o sinal de um sensor,
a transformao de um sinal em outro tipo de sinal, um controlador, um atuador,
uma funo lgica ou uma funo combinatria que combina sinais provenientes de
vrios neurnios. O neurnio tem seu comportamento influenciado pelas mensagens
enviadas (hormnios secretados) pelas glndulas que podem desativ-lo ou ativ-
lo ou ainda deix-lo em um estado de funcionamento intermedirio.
A associao de neurnios feita atravs da interconexo deles. A sada de
um neurnio pode ser conectada s entradas de vrios neurnios. Cada conexo
propaga um valor numrico real (v) e um peso (ou prioridade - w). Os pesos podem
ser utilizados ou desprezados pelo neurnio receptor. Eles ponderam (ou priorizam)
os valores das entradas. Enquanto o valor reflete o estado do neurnio, os pesos
so caractersticas de cada conexo. A Figura 26 ilustra o modelo de neurnio pro-
posto para a camada Reativa.
76
Figura 26 Modelo de neurnio. As entradas possuem valores (ve) e pesos (we) distintos. A
sada propaga o mesmo valor (vs) para diferentes neurnios atravs de
conexes com pesos (ws) distintos. H tambm receptores para as
mensagens enviadas por glndulas (em vermelho).
4.2.2.2. Glndulas
As glndulas so responsveis por enviar mensagens (secretar hormnios)
que representam estados (setpoints) ou comportamentos dos domnios aos quais
elas pertencem, de acordo com o contexto. Cada mensagem (hormnio) possui um
status (s) (ou valor) e um tipo (t). O tipo caracteriza a mensagem, o que permite que
o receptor diferencie mensagens (hormnios) provenientes de diferentes glndulas.
J o status representa o nvel ou valor que determinada mensagem (hormnio) car-
rega. As glndulas so capazes de detectar contextos atravs de suas conexes
com neurnios e atravs do recebimento de mensagens (hormnios) de outras
glndulas. Como os neurnios, as mensagens recebidas (hormnios secretados)
por outras glndulas podem ativar, desativar ou deixar em nvel intermedirio o es-
tado de funcionamento de uma glndula. A Figura 27 ilustra o modelo de glndula
proposto para camada Reativa.
Figura 27 Modelo de glndula. As entradas possuem valores (ve) e pesos (we) distintos. A
sada propaga o mesmo status (S) e tipo (t) para todos os neurnios e as glndulas
pertencentes ao seu domnio. H tambm receptores para as mensagens enviadas
por outras glndulas.
77
4.2.2.3. Domnio
O domnio representa a zona de ao das glndulas pertencentes a ele. uma
entidade abstrata da camada Reativa: no executa nenhum tipo de tarefa. Mas de
fundamental importncia, pois determina para quais entidades uma glndula deve
enviar uma mensagem (secretar hormnio). Os domnios podem se relacionar hie-
rarquicamente: um domnio pode pertencer a outro. Desse modo, as mensagens
enviadas (hormnios secretados) por glndulas de um domnio pai so recebidas
por todas as unidades de domnios filhos.
Um domnio caracterizar, em geral, um espao dentro do ambiente construdo
com comportamentos e estados (setpoints) particulares. As glndulas caracterizaro
os estados e os comportamentos destes domnios. E os neurnios caracterizaro
sensores, atuadores, controladores, etc.
Os domnios desempenham outro papel importante de organizao da camada
Reativa. Eles podem ser utilizados para agrupar neurnios e glndulas pertencentes
a determinado sistema ou que possuam caractersticas comuns, tornando mais fcil
a localizao de grupamentos com funcionalidades especficas.
4.2.3. Camada Ontolgica
A camada Ontolgica descreve em forma de tabelas relacionais os componen-
tes da camada Reativa e suas relaes. Ela guarda todas as informaes de confi-
gurao da camada Reativa, o que engloba quais neurnios, glndulas e domnios
compem o sistema, os parmetros de configurao de neurnios e de glndulas, as
conexes entre neurnios e seus parmetros de configurao.
78
H uma ntima relao entre as camadas Reativa e Ontolgica. Os elementos
bsicos da camada Reativa, neurnios e glndulas, utilizam a camada Ontolgica
para obter os parmetros necessrios para comunicao com outros neurnios e
glndulas, e para sua prpria configurao. Isto desacopla a configurao da pro-
gramao. Programam-se os tipos bsicos ou as classes de neurnios e glndulas,
e todo o resto do sistema torna-se uma especificao de parmetros na camada On-
tolgica.
4.2.4. Camada de Aplicao
A camada de Aplicao oferece aos aplicativos uma interface de comunicao
com as camadas Reativa e Ontolgica. Algoritmos de aprendizagem, de IHM (Inter-
face Homem-Mquina) e programas de computao pervasiva so exemplos de a-
plicativos que podem ser desenvolvidos para a camada de Aplicao.
4.3. Consideraes finais
A arquitetura proposta possui caractersticas reativas, isto , um sistema que
monitora o ambiente e reage aos seus estmulos atravs de unidades fundamentais
chamadas de neurnios e de glndulas. Os neurnios representam informaes de
controle relevantes, enquanto que as glndulas representam estados (setpoints) e
comportamentos esperados. O sistema final o resultado da associao dessas u-
nidades fundamentais simples, ou mdulos bsicos, o que torna o sistema modular.
Os neurnios e as glndulas se associam atravs de conexes que possuem
caractersticas comuns, isto , um neurnio ou uma glndula pode propagar infor-
mao para qualquer outro neurnio ou glndula. Cada neurnio ou glndula recep-
tor interpreta a mensagem recebida segundo os parmetros da conexo. Desse mo-
do um neurnio pode, a qualquer momento, receber novas conexes de novos neu-
79
rnios, criando uma nova conexo (externa ao neurnio), ou pode receber mensa-
gens (hormnios) de novas glndulas criando um receptor para o novo tipo de
mensagem (hormnio, tambm externo ao neurnio). O mesmo vale para as gln-
dulas. Todas essas modificaes de associao entre neurnios e glndulas no
requerem modificao na programao dessas unidades bsicas, o que permite que
os mesmos mdulos bsicos se associem de inmeras maneiras diferentes, tornado
a arquitetura proposta flexvel.
As glndulas propagam mensagens (hormnios) que representam estados e
comportamentos de um domnio. Todas as entidades do domnio recebem essas
mensagens (hormnios), e algumas (aquelas com receptores) reagem mudando
seu ponto ou modo de operao. Dessa forma, estados e comportamentos so
compartilhados entre unidades pertencentes ao mesmo domnio, o que permite que
o sistema final responda a diferentes contextos de forma integrada.
Os domnios permitem agrupar neurnios e glndulas. Eles tambm podem
guardar relaes de hierarquia entre si, isto , um domnio pode pertencer a outro.
Usualmente, um domnio representa um espao fsico com determinada funcionali-
dade ou onde realizada determinada tarefa, o que permite associar ambientes
construdos reais com um conjunto de domnios programados na arquitetura propos-
ta. Uma casa, por exemplo, ser um domnio contendo outros domnios menores da
casa como quartos, banheiros, salas, etc..
A arquitetura proposta trata diretamente de problemas ligados a automao do
Ambiente Construdo. A camada Reativa reage aos estmulos do ambiente, e prati-
camente todas as variveis de controle importantes no sistema so representadas
por neurnios e glndulas nesta camada. A camada Ontolgica guarda os parme-
80
tros de configurao do sistema de forma relacionada e estruturada. Essas caracte-
rsticas (das camadas Reativa e Ontolgica) resultam em um sistema modular e fle-
xvel, e facilitam a programao, a manuteno e a expanso. O desenvolvedor po-
de manter o foco na aplicao, preocupando-se pouco com detalhes de cdigo. Da-
dos publicados na camada Reativa e parmetros de configurao guardados na ca-
mada Ontolgica podem ser acessados facilmente. Os parmetros de configurao
podem ainda ser modificados, assim como novos neurnios e glndulas tambm
podem ser instanciados por aplicativos da camada de Aplicao, o que facilita a pro-
gramao de aplicativos pervasivos e de aprendizado na camada de Aplicao.
As informaes provenientes da camada Fsica so processadas na camada
Reativa de acordo com configurao da camada Ontolgica. A forma como neur-
nios e glndulas so associados determina a resposta do sistema aos estmulos do
ambiente. Malhas de controle so programadas como associao de neurnios que
representam elementos de um sistema controle como sensores, controladores, atu-
adores ou partes de controladores mais complexos, como funes de pertinncia ou
regras difusas em um controlador difuso. Neurnios tambm so associados para
formar grafos para o reconhecimento de contexto. Comportamentos desejados para
o sistema so representados por glndulas que liberam hormnios. Estes ltimos
influenciam o comportamento particular de cada neurnio ou glndula, segundo con-
figurao dos mesmos.
81
5. Implementao da
Arquitetura Proposta
Para tornar a arquitetura proposta factvel apresentada aqui uma implemen-
tao das camadas Ontolgica e Reativa desenvolvida na linguagem de programa-
o Java, baseada no middleware CORBA e no sistema de banco de dados MySQL.
A camada Fsica deve comandar e coletar informaes de dispositivos fsicos no
ambiente atravs de um sistema de comunicao. Diversas redes de campo e de
sensores (como Lonworks, Pyxos, EIB, BACnet, X-10) esto disponveis para essa
tarefa. Para sistemas com mais de um computador, redes locais como a Ethernet e
redes de grande abrangncia como Internet (TCP/IP) so opes usuais de redes de
computadores.
5.1. Camada Ontolgica
A camada Ontolgica da arquitetura proposta formada por um conjunto de
tabelas (um banco de dados) contendo as informaes de configurao necessrias
para o funcionamento da camada Reativa. Duas tabelas formam o ncleo da cama-
da Ontolgica. A primeira armazena as caractersticas de cada entidade (neurnios,
glndulas, setpoints e comportamentos) que compe a camada Reativa. A segunda
lista todas as conexes entre neurnios e seus respectivos parmetros de configu-
rao como o peso e o tipo. Tabelas contendo parmetros de configurao e lista de
comportamentos (hormnios) que afetam determinado neurnio ou glndula tambm
compem esta camada. Cada neurnio ou glndula que possui parmetros de confi-
gurao so relacionados a uma tabela de parmetros com uma lista de parmetros
especfica para cada classe de neurnio ou glndula. Da mesma, forma cada neur-
82
nio ou glndula que afetado por hormnios (comportamentos) do domnio a que
pertencem relacionado a uma tabela de comportamentos.
O Sistema de Gerenciamento de Banco de Dados (SGBD) MySQL foi utilizado
para gerenciamento das tabelas da camada Ontolgica. A comunicao entre o
SGBD e a camada Reativa feita atravs da interface JDBC (Java Database Con-
nectivity) que permite a comunicao entre aplicativos escritos em Java com o
MySQL. A linguagem SQL utilizada para programao das tabelas da camada On-
tolgica.
5.1.1. A tabela de entidades: entities
A tabela de entidades (entities) lista as entidades que compem a camada Re-
ativa e possui os seguintes campos:
nome (name): o nome da entidade. O nome da entidade uma composio
entre um nome de identificao e a hierarquia de domnios qual a entidade
pertence. Desse modo um sensor de movimento localizado no quarto de
uma casa ter o seguinte nome: casa.quarto.sensorDeMovimento, isto , a
entidade sensor de movimento pertence ao domnio quarto que pertence ao
domnio casa;
entidade (entity): o tipo de entidade, neurnio (neuron), glndula (gland),
setpoint ou comportamento (behavior);
classe (class): classe especfica do neurnio ou da glndula. Quando a en-
tidade um setpoint ou um comportamento (behavior), este campo deve
conter o nome da glndula associada a este setpoint ou comportamento
(behavior);
83
tabela de comportamentos (behaviorTable): nome da tabela com lista de
comportamentos a que o neurnio ou a glndula respondem. Caso o neur-
nio ou a glndula no responda a nenhum comportamento, este campo deve
ser configurado como null;
tabela de parmetros (parameterTable): nome da tabela com lista de pa-
rmetros do neurnio ou da glndula. Caso o neurnio ou a glndula no uti-
lize parmetros de configurao especficos este campo deve ser configura-
do como null;
mtodo (method): mtodo utilizado para combinar o comportamento do
neurnio ou da glndula quando mais de um hormnio com a mesma priori-
dade est ativo.
5.1.2. A tabela de conexes: neurotransmiters
A tabela de conexes contm as conexes neurnio-neurnio e neurnio-
glndula e suas caractersticas. Como a comunicao entre neurnios feita por
intermdio de neurotransmissores (GUYTON; HALL, 2006), esta tabela chamada
aqui de neurotransmissores (neurotransmiters). Ela segue a descrio dos campos
da tabela:
identificador de conexo (bindingID): nmero nico gerado automatica-
mente que identifica cada conexo existente na camada Reativa;
fonte (source): nome do neurnio fonte (que propaga a informao) da co-
nexo;
84
destino (destination): nome do neurnio ou da glndula destino (que rece-
be a informao) da conexo;
peso (weight): peso da conexo (parmetro de uso opcional);
valor padro (defaultValue): valor padro utilizado pela entidade destinado
caso a entidade fonte esteja inativa.
5.1.3. Tabelas de comportamento
As tabelas de comportamentos so associadas a neurnios e glndulas espec-
ficos, e descrevem como o neurnio ou a glndula deve responder aos comporta-
mentos listados. Os seguintes campos compem as tabelas de comportamento:
hormnio (hormone): nome do hormnio (comportamento);
tipo (type): binrio (binary) ou linear. O tipo linear interpreta valores cont-
nuos entre 0 e 1 (unsigned) ou -1 e 1 (signed). O tipo binrio interpreta ape-
nas dois valores 0 e 1 (unsigned) ou -1 e 1 (signed). Neste ltimo caso, o va-
lor zero tambm pode ocorrer, e como nos demais casos significa ausncia
do hormnio (comportamento desativado);
sinal (signal): sem sinal (unsigned) ou com sinal (signed). Os valores de-
vem ser limitados entre 0 e 1 (unsigned) ou entre -1 e 1 (signed);
inverso (inversion): inverso (inverse) ou direto (direct). No primeiro caso, o
valor recebido invertido, multiplicado por -1 (unsigned) ou calculado o
complemento 1 (signed).
85
prioridade (priority): prioridade do comportamento. A prioridade 1 a maior
e a prioridade decresce com o aumento da numerao. Comportamentos
sem prioridade so representados pela prioridade 0.
5.1.4. Tabelas de parmetro
As tabelas de parmetro so associadas a neurnios e a glndulas especficos
e descrevem parmetros de configurao do neurnio ou da glndula. Os setpoints
utilizados pelo neurnio ou pela glndula so configurados nesta tabela. Os seguin-
tes campos compem as tabelas de parmetro:
identificador (ID): nmero nico gerado automaticamente que identifica o
parmetro dentro da tabela;
parmetro (parameter): nome do parmetro. Este nome conhecido no c-
digo de programao da classe do neurnio ou da glndula;
tipo (type): tipo de parmetro (setpoint, nmero, texto ou valor booleano).
Este campo especifica como o valor do parmetro deve ser interpretado;
valor (value): valor do parmetro. No caso de setpoint, o valor o nome
do(s) setpoint(s) ao(s) qual(is) o neurnio ou a glndula responde.
5.2. Camada Reativa
A camada Reativa da arquitetura proposta deve ter dois tipos de unidades b-
sicas, os neurnios e as glndulas, que so unidades de processamento paralelo de
informao e autnomas. Autonomia, neste contexto, relaciona-se independncia
de cdigo de cada unidade, isto , as diferentes unidades so processos computa-
cionais independentes que podem ser processados, inclusive, em diferentes unida-
86
des computacionais (computadores). Essas caractersticas possibilitam a distribuio
da tarefa de processamento e facilitam a programao do paralelismo necessrio
aos neurnios e s glndulas.
A programao da camada Reativa baseada em CORBA e na linguagem Ja-
va. Esta linguagem orientada a objetos e possui recursos para programao de
aplicativos em rede, para acesso a banco de dados, para programao de threads
13
e um pacote para programao de aplicativos CORBA (bibliotecas, compilador IDL e
ORB). O objetivo a construo de uma plataforma que facilite a criao de classes
de neurnios e de glndulas, deixando transparente ao desenvolvedor os detalhes
de implementao da camada Reativa. O foco do desenvolvedor deve ser a aplica-
o e no a programao dos mecanismos de comunicao e gerenciamento de
neurnios e de glndulas.
Nas prximas sees descrito o arcabouo utilizado para a programao da
camada Reativa.
5.2.1. Comunicao CORBA
Neurnios e glndulas se comunicam atravs de uma interface bem definida
composta por dois mtodos: neurotransmiter e hormone. O primeiro recebe mensa-
gens de neurnios enquanto o segundo recebe mensagens de glndulas.
O mtodo neurotransmiter possui trs parmetros:
ID, nmero de identificao da conexo na tabela neurotransmiters (na ca-
mada Ontolgica);
13
Thread uma seo de cdigo executada independentemente de outras partes de cdigo dentro um mesmo
programa (OAKS; WONG, 1997). Permite a criao em um mesmo programa de processos independentes e
paralelos.
87
value, valor da conexo;
weight, peso da conexo;
Em geral, o parmetro peso (weight) propagado por um neurnio est especifi-
cado na tabela neurotransmiters da camada Ontolgica.
O mtodo hormone possui dois parmetros:
type, tipo ou nome do comportamento ou setpoint (hormnio);
value, nvel ou valor do comportamento ou setpoint (hormnio).
Um compilador IDL-Java transforma o cdigo IDL da interface CORBA em uma
srie de arquivos (classes) Java utilizados como base para a comunicao entre ob-
jetos CORBA (nesse caso os objetos Neuron e Gland). Para tornar transparentes os
mecanismos especficos do CORBA, duas classes, uma relacionada aos neurnios
e outra relacionada s glndulas, foram criadas: NeuronCORBA e GlandCORBA.
Essas duas classes foram programadas como threads, isto , processos indepen-
dentes. Quando um objeto dessas classes instanciado, eles se tornam uma nova
unidade processamento. A Figura 28 e a Figura 29 mostram diagramas com os prin-
cipais mtodos das classes NeuronCORBA e GlandCORBA, respectivamente. As
duas classes possuem um construtor no qual o nome do neurnio ou da glndula
deve ser passado, assim como argumentos de inicializao CORBA (como nome do
servidor ORB e nmero da porta de comunicao). As classes NeuronCORBA e
GlandCORBA possuem mtodos (propagate e secrete, respectivamente) para enviar
dados a outros neurnios e glndulas.
88
Figura 28 - Diagrama da classe NeuronCORBA.
Figura 29 - Diagrama da classe GlandCORBA.
As classes acima so responsveis pela comunicao, utilizando CORBA, en-
tre as entidades da camada reativa. Dessa forma, as funcionalidades de comunica-
o so separadas das demais funcionalidades do software, o que permite, no futu-
ro, a mudana dos mecanismos de comunicao sem a alterao do restante do
sistema.
5.2.2. Gerenciamento das funcionalidades
de neurnios e de glndulas
A utilizao direta dos mtodos propagate e secrete (das classes NeuronCOR-
BA e GlandCORBA) necessita que sejam passados como parmetros, informaes
como nome do destino, tipo de entidade (glndula ou neurnio) e identificador de
conexo (somente o mtodo propagate). Para que essas informaes fiquem trans-
parentes ao desenvolvedor, duas classes, uma para os neurnios (NeuronClass) e
outra para as glndulas (GlandClass), foram criadas. O objetivo dessas classes
gerenciar todos os aspectos envolvidos com o processamento e com a troca de in-
formaes entre as entidades da camada Reativa, assim como carregar todos os
parmetros armazenados na camada Ontolgica necessrios para o correto funcio-
89
namento do neurnio ou da glndula. Essas classes so filhas das classes Neuron-
CORBA e GlandCORBA, e por isso herdam todas suas funcionalidades.
Cada neurnio e cada glndula recebe informaes de outros neurnios e
glndulas, seja atravs de conexes (neurotransmissores) de entrada ou atravs de
comportamentos e setpoints (hormnios), aos quais o neurnio ou a glndula res-
ponde. A partir das informaes recebidas, o estado do neurnio ou da glndula
determinado em funo dos dados de entrada. A cada novo valor de entrada, o neu-
rnio ou a glndula recalcula seu estado e propaga-o, o que torna a comunicao na
camada Reativa assncrona.
Para que o estado do neurnio ou da glndula possa ser calculado a qualquer
momento, listas contendo os valores de cada conexo (neurotransmissores) de en-
trada, setpoints e comportamentos (hormnios), e parmetros de configurao de-
vem estar disponveis. As seguintes classes utilitrias foram construdas para arma-
zenar e gerenciar esses dados:
InBindings. Armazena lista com parmetros e valores de cada conexo de
entrada.
InHormones. Armazena lista de comportamentos aos quais o neurnio ou a
glndula responde. Calcula um fator de ponderao, baseado nos valores
recebidos pelos comportamentos ativos (com valores diferentes de zero) e
suas prioridades, que pode ser usado pelo neurnio ou pela glndula para
ponderar seu estado. Cinco mtodos foram implementados para combinar
comportamentos ativos com o mesmo grau de prioridade: last (utiliza o lti-
mo valor recebido), first (utiliza o primeiro valor recebido), mean (utiliza a
mdia de valores recebidos), higher (utiliza o maior valor recebido) e smaller
90
(utiliza o menor valor recebido). A maneira como cada comportamento deve
ser interpretado determinada pelos parmetros de configurao contidos
na tabela de comportamento, do neurnio ou da glndula, localizada na ca-
mada Ontolgica.
Parameters. Armazena lista de parmetros de configurao e a lista de set-
points aos quais o neurnio ou a glndula responde.
A cada atualizao do estado do neurnio ou da glndula, o novo valor deve
ser propagado. Para gerenciar as conexes (neurotransmissor) de sada dos neur-
nios e a sada (hormnio) das glndulas, foram criadas respectivamente duas clas-
ses utilitrias:
OutBindings. Armazena lista com parmetros, valor e entidade destino de
cada conexo de sada. Esta classe utilizada somente por neurnios.
OutHormones. Armazena lista com nome de todas as entidades pertencen-
tes ao mesmo domnio que a glndula. Esta classe utilizada somente por
glndulas.
As classes NeuronClass e GlandClass, utilizando as classes descritas acima,
so responsveis por todo processo de comunicao da camada Reativa em conso-
nncia com os parmetros contidos na Camada Ontolgica. Essas duas classes so
abstratas, isto , no podem ser utilizadas diretamente ou no podem ter objetos
instanciados. Elas so as bases para que classes especficas de neurnios e de
glndulas possam ser criadas atravs do processo de herana. Quatro mtodos abs-
tratos devem ser implementados nas classes filhas:
91
value( ). Este mtodo deve retornar o valor que ser propagado pelo neur-
nio ou pela glndula. O desenvolvedor deve utilizar os dados de entrada pa-
ra calcular o valor que ser propagado. Toda vez que um novo valor for re-
cebido, este mtodo chamado e o valor calculado propagado.
neurotransmiter( ). Este mtodo executado toda vez que o neurnio ou a
glndula recebe valores em suas conexes de entrada. Pode ser utilizado
para determinar a execuo de alguma tarefa quando o neurnio ou glndu-
la recebe valores pelas conexes de entrada.
hormone( ). Este mtodo chamado toda vez que o neurnio ou a glndula
recebe hormnios (comportamentos ou setpoints). Pode ser utilizado para
determinar a execuo de alguma tarefa quando o neurnio ou glndula re-
cebe hormnios (comportamentos ou setpoints).
sent( ). Este mtodo chamado toda vez que o neurnio ou a glndula pro-
pagou alguma informao. Pode ser utilizado para determinar a execuo de
alguma tarefa quando o neurnio ou glndula propaga alguma informao.
A Figura 30 e a Figura 31 mostram diagramas com os mtodos das classes
NeuronClass e GlandClass, respectivamente descritos acima. As duas classes pos-
suem um construtor no qual o nome do neurnio ou da glndula deve ser passado,
assim como argumentos de inicializao CORBA (como nome do servidor ORB e
nmero da porta de comunicao) e de acesso a camada Ontolgica.
92
Figura 30 - Diagrama da classe NeuronClass com os mtodos abstratos.
Figura 31 - Diagrama da classe GlandClass com os mtodos abstratos.
Alm dos mtodos abstratos j descritos, as classes NeuronClass e Gland-
Class possuem um conjunto de mtodos utilitrios que podem ser utilizados pelo
desenvolvedor para criao de novas classes de neurnios ou de glndulas:
getInBindings( ). Retorna a lista com as conexes de entrada.
getInHormones( ). Retorna a lista com os hormnios recebidos.
getParameters( ). Retorna a lista com os parmetros.
getInBindingLastValue( ). Retorna o ltimo valor recebido pelo neurnio ou
pela glndula atravs das conexes (neurotransmissores) de entrada.
getInBindingLastWeight( ). Retorna o ltimo peso recebido pelo neurnio
ou pela glndula atravs das conexes (neurotransmissores) de entrada.
getInBindingHigherValue( ). Retorna o maior valor entre as conexes (neu-
rotransmissores) de entrada.
93
getInBindingSmallerValue( ). Retorna o menor valor entre as conexes
(neurotransmissores) de entrada.
getWeight( ). Retorna o fator de ponderao dos hormnios ativados.
getSetpoint(setpointName). Retorna o ltimo valor de setpoint recebido.
getDoubleParameter(parameterName). Retorna valor numrico do par-
metro de configurao com o nome parameterName.
getStringParameter(parameterName). Retorna valor tipo texto do parme-
tro de configurao com o nome parameterName.
canNotPropagate( ). Impede que o prximo valor seja propagado.
A Figura 32 e a Figura 33 mostram diagramas com os mtodos utilitrios des-
critos acima das classes NeuronClass e GlandClass, respectivamente.
Figura 32 - Diagrama da classe NeuronClass com os mtodos utilitrios.
94
Figura 33 - Diagrama da classe GlandClass com os mtodos utilitrios.
5.2.3. Classes de Neurnios e de Glndulas
Todo o arcabouo descrito nas sees anteriores tem por objetivo simplificar o
desenvolvimento de novas classes de neurnios e de glndulas. Os mecanismos
relacionados com a comunicao e consulta camada Ontolgica foram programa-
dos nas classes descritas anteriormente. Dois templates (modelos), um de neurnio
e outro de glndula, foram criados. Os dois so bastante similares e por isso ser
descrito aqui o template de neurnio. Segue abaixo o cdigo Java inicial do template
de neurnio.
public class Neuron extends NeuronClass implements NeuronInterface {
public Neuron(String name,
String args[],
OntologyParameters op) throws SQLException {
super(name, args, op);
}
@Override
public double value() {
// calculate the state value of neuron and return it
return (getInBindingLastValue()*getInBindingLastWeight()*getWeight());
}
95
@Override
public void neurotransmiter() {
// insert here the code to be executed
// when a neurotransmiter is received
}
@Override
public void hormone() {
// insert here the code to be executed
// when a hormone is received
}
@Override
public void sent() {
// insert here the code to be executed
// when a value is propagated
}
}
A classe de neurnio criada acima tem o nome Neuron e filha da classe Neu-
ronClass, isto , herda todas as suas funcionalidades. Quatro mtodos da classe
NeuronClass devem obrigatoriamente fazer parte da nova classe de neurnio. Um
deles fundamental, o mtodo value( ). O valor calculado neste mtodo ser aquele
propagado pelo neurnio. No exemplo, o neurnio propagar o produto entre o lti-
mo valor recebido (getInBindingLastValue( )), o ltimo peso recebido (getInBindin-
gLastWeight( )) e o fator de ponderao dos hormnios ativados (getWeight( )).
Os demais mtodos devem ser utilizados em casos especiais onde necess-
rio que o neurnio execute aes no recebimento de um novo valor em uma cone-
xo de entrada (neurotransmiter( )) ou um novo valor de hormnio (hormone( )) ou
aps a propagao de um novo valor (sent( )).
Um neurnio, instncia da classe Neuron exemplificada acima, propagar o va-
lor calculado em value( ) sempre que um novo valor (neurotransmissor) ou hormnio
(setpoint ou comportamento) for recebido.
96
5.3. Consideraes finais
A implementao da arquitetura proposta descrita neste captulo buscou cons-
truir um arcabouo que permitisse o desenvolvimento de sistemas de automao do
ambiente construdo baseados em neurnios e em glndulas. Estes ltimos foram
programados na linguagem Java como threads (processos computacionais indepen-
dentes) e utilizam o middleware CORBA como plataforma de comunicao. Eles so
os componentes bsicos da camada Reativa na arquitetura proposta.
A forma de comunicao, os parmetros de configurao e as relaes entre
os comportamentos de neurnios e de glndulas e o comportamento geral do siste-
ma so descritas em forma de tabelas relacionais partes de um banco de dados. O
Sistema de Gerenciamento de Banco de Dados (SGBD) MySQL foi utilizado na im-
plementao apresentada. Esse conjunto de tabelas forma a camada Ontolgica da
arquitetura proposta.
Classes de neurnios e de glndulas so criadas a partir de templates (mode-
los) Java (descrito na seo 5.2.3). A partir de um conjunto de classes, um aplicativo
de automao do ambiente construdo programado atravs da configurao de um
conjunto de tabelas na camada Ontolgica que descrevem a estrutura, as conexes
e o comportamento das unidades bsicas da arquitetura, neurnios e glndulas. O
desenvolvedor mantm o foco na aplicao, pois os mecanismos de funcionamento
interno e de comunicao de neurnios e de glndulas ficam transparentes durante
a programao do sistema.
97
6. Aplicao da Arquitetura Proposta
Este captulo ilustra o desenvolvimento de um aplicativo para automao do
ambiente construdo orientado a neurnios e a glndulas. Um sistema de automao
de uma casa fictcia desenvolvido em oito etapas. A comunicao com dispositivos
fsicos em um ambiente construdo real tambm descrita. O captulo encerrado
com consideraes sobre a aplicao da arquitetura proposta.
6.1. Construindo o Sistema de Automao de
uma Casa
Para ilustrar a aplicao da arquitetura proposta na automao de um ambiente
construdo, o sistema de automao de uma casa fictcia modelado como um con-
junto de neurnios e de glndulas. O objetivo demonstrar como as caractersticas
de modularidade, de flexibilidade e de capacidade de integrao entre partes so
alcanadas com a utilizao da arquitetura proposta. So exemplificados sistemas
de controle e de reconhecimento de contexto de um quarto (foco principal) e de um
banheiro da casa. A modelagem do sistema feita em partes, simulando a implanta-
o de um sistema de automao construdo em etapas distintas, e que dever tra-
balhar de forma integrada. So oito etapas independentes de implantao descritas
a seguir.
6.1.1. Etapa 1 Sistema de Iluminao do Quarto
O sistema de iluminao do quarto deve regular a intensidade da iluminao
fornecida pela luminria de acordo com o setpoint escolhido pelo usurio atravs de
um controle manual deslizante. O usurio deve ser capaz de desligar a iluminao
quando desejar atravs de um interruptor. Na ausncia de pessoas, a iluminao
98
deve ser desativada para evitar desperdcio de energia eltrica. Cinco elementos de
interface entre o sistema e o mundo fsico so identificados na descrio anterior:
Um controle manual deslizante. Informa ao sistema o valor do setpoint de-
sejado.
Um sensor de movimento. Informa ao sistema a ausncia de movimento.
Um interruptor de luz. Informa ao sistema quando o usurio deseja que a
iluminao seja desligada ou ligada.
Um sensor de luz. Captura a iluminncia do quarto.
Uma luminria com intensidade regulvel. Ilumina o quarto com intensi-
dade de luz controlada entre 0 e 100%.
Uma malha de controle com um controlador PID (Proporcional-Integral-
Derivaitvo) escolhida para regular a iluminncia do quarto (ver Figura 34).
Figura 34 - Malha de controle da iluminao do quarto.
Dois comportamentos so identificados a partir da descrio inicial:
Ausncia. Comportamento ativado quando h ausncia de pessoas no
quarto.
Desativao da Iluminao. Comportamento ativado quando o usurio
desativa a iluminao.
99
Cada um dos comportamentos deve ser ativado de acordo com contexto. O
passo seguinte determinar quais contextos esto relacionados a quais comporta-
mentos e como estes contextos so detectados:
Ausncia. A ausncia de pessoas no quarto detectada atravs de um
sensor de movimento. Habitualmente necessria a utilizao de um tempo
de retardo. Esse tempo medido entre a deteco de um sinal de no mo-
vimento e a propagao de um sinal de ausncia, j que a no movimenta-
o de uma pessoa por um perodo curto de tempo no significa a sua au-
sncia (ver Figura 35).
Figura 35 - Deteco de ausncia
Desativao da Iluminao. A desativao da iluminao detectada
quando o usurio aciona o interruptor de luz na posio desligado.
A partir da descrio e da anlise anteriores, possvel modelar o sistema co-
mo um conjunto de neurnios e de glndulas. Os elementos funcionais (sensores,
controladores, atuadores, etc.) so modelados como neurnios. Os comportamentos
e os setpoints so modelados como glndulas. A Figura 36 mostra o diagrama de
relacionamento com os neurnios e as glndulas que compem o sistema. O setpo-
int de Luz foi modelado como uma glndula que recebe informao diretamente do
controle manual deslizante de iluminao. importante notar que o neurnio PID
Iluminao foi modelado com trs receptores de hormnio que recebem hormnios
secretados pelas glndulas Setpoint de Luz, Ausncia e Desativao da Iluminao.
100
Desta forma este neurnio responde aos comportamentos Ausncia e Desativa-
o da Iluminao.
Figura 36 Etapa 1: Diagrama de Relacionamento do Sistema de Iluminao do Quarto.
Neste momento cabe definir como sero configurados os parmetros de confi-
gurao de cada neurnio/glndula, os pesos de cada ligao e o mecanismo de
combinao de comportamentos em cada neurnio/glndula. No sistema modelado,
no h necessidade de ponderao ou de prioridade nas ligaes entre neur-
nio/glndulas, portanto todos os pesos so configurados com valor 1 (um). O meca-
nismo de combinao de comportamentos que define como o neurnio/glndula de-
ve reagir quando comportamentos com mesma prioridade esto ativos ser configu-
rado, para todos os neurnios/glndulas do sistema, de tal maneira que a prioridade
ser dada ao comportamento com maior prioridade ativado por ltimo. Os nicos
dois neurnios que possuem parmetros de configurao so os neurnios Retardo
de Tempo e PID Iluminao. A Figura 37 mostra os parmetros de configurao pa-
ra estes dois neurnios.
101
Figura 37 - Parmetros de configurao: Reatrdo de Tempo e PID Iluminao.
O passo final a programao do sistema modelado em software utilizando a
implementao da arquitetura proposta descrita no captulo anterior. Tal tarefa re-
quer que todos os neurnios e todas as glndulas, seus parmetros de configurao
e as ligaes entre neurnios/glndulas sejam descritos nas tabelas da camada On-
tolgica. Abaixo seguem as tabelas da camada Ontolgica preenchidas com os pa-
rmetros descritos anteriormente. Todos os neurnios e as glndulas do sistema
pertencem ao domnio Quarto que por sua vez pertence ao domnio Casa. Os no-
mes de neurnios/glndulas utilizados nas tabelas so os mesmos utilizados nos
diagramas anteriores com justaposio sem preposies para os nomes compostos
e sem acentuao. O Quadro 3 ilustra a tabela entities com os neurnios, as gln-
dulas, os setpoints e os comportamentos do sistema. O Quadro 4 contm a lista de
ligaes entre neurnios/glndulas, a tabela neurotransmiters. Os Quadro 5 e
Quadro 7 contm as tabelas com os parmetros de configurao dos neurnios PID
de Iluminao e Retardo de Tempo, respectivamente. O Quadro 6 contm a tabela
de comportamentos do neurnio PID de Iluminao.
Na implementao descrita no captulo anterior, as tabelas da camada Ontol-
gica fazem parte do banco de dados MySQL. Elas devem ser criadas e preenchidas
utilizando a linguagem SQL ou alguma ferramenta equivalente. Assume-se que as
classes de neurnios/glndulas utilizadas para esta aplicao j esto programadas.
102
Caso novas classes de neurnios/glndulas necessitem ser criadas, um template
(modelo) de neurnio/glndula em Java deve ser utilizado (descrito na seo 5.2.3).
Quadro 3- Tabela "entities"
Quadro 4 Tabela neurotransmiters
103
Quadro 5 Tabela ParamPIDIlum
Quadro 6 Tabela CompPIDIlum
Quadro 7 - Tabela ParamRetardoTempo
6.1.2. Etapa 2 Sistema de HVAC do Quarto
O sistema de HVAC (Heating, Ventilation and Air Conditioning Aquecimento,
Ventilao e Ar-condicionado) do quarto deve regular a temperatura do quarto de
acordo com o setpoint escolhido pelo usurio atravs de um controle manual desli-
zante. O usurio deve ser capaz de desligar o sistema de HVAC quando desejar a-
travs de um interruptor. Na ausncia de pessoas, o sistema tambm dever ser
desligado para evitar desperdcio de energia eltrica.
O novo sistema tem requisitos similares ao do sistema de iluminao descrito
na etapa anterior. A diferena est na varivel controlada, temperatura ao invs de
iluminncia. O mesmo sistema de deteco de ausncia ser utilizado pelos dois
sistemas. Os mesmos tipos de neurnios/glndulas utilizados na etapa anterior po-
dem agora ser adaptados para o sistema de HVAC. A Figura 38 ilustra um diagrama
104
com neurnios/glndulas do sistema de HVAC do quarto. Os neurnios/glndulas do
sistema de deteco de ausncia da Figura 37 foram repetidos na Figura 38.
Figura 38 - Etapa 2: Diagrama de Relacionamento do Sistema de HVAC do Quarto.
A programao dos novos neurnios/glndulas deve ser feita acrescentando-se
s tabelas da camada Ontolgica descritas na etapa anterior, os novos neur-
nios/glndulas, seus parmetros de configurao e as ligaes entre neur-
nios/glndulas.
6.1.3. Etapa 3 Deteco de Ausncia no Quarto
O sistema de deteco de ausncia usado anteriormente utiliza um sensor de
movimento para detectar a ausncia. Para melhorar a qualidade da deteco de au-
sncia, um novo sensor acrescentado ao sistema. Os dois sensores so combina-
dos atravs de um neurnio do tipo OU que propagar o sinal do sensor com maior
valor, isto , o do sensor que estiver detectando movimento dentro do intervalo de-
terminado pelo neurnio Retardo de tempo. A Figura 39 ilustra o acrscimo do
sensor ao sistema de deteco de ausncia.
105
Outros dois sensores tambm podem colaborar para melhorar a deteco de
ausncia no quarto: um sensor de variao de presso instalado na cama e outro
instalado em um tapete localizado em regies onde h pouca movimentao como
numa escrivaninha ou numa cmoda. O acrscimo de mais dois sensores feito
com a insero de mais dois neurnios que representam os sensores, e mais dois
neurnios Retardo de Tempo como no caso anterior. A Figura 40 ilustra o acrsci-
mo dos novos sensores ao sistema de deteco de ausncia.
Figura 39 Etapa 3: Diagrama de Relacionamento do Sistema de Deteco de Ausncia.
Figura 40 Etapa 3: Diagrama de Relacionamento do Sistema de Deteco de Ausncia
com acrscimo de mais dois sensores de variao de presso.
106
6.1.4. Etapa 4 Sistema de Setpoint Personalizado
O sistema de reconhecimento de usurios deve reconhecer atravs de um re-
ceptor de RFID (Radio Frequency Identification) o usurio A e o usurio B no quarto.
Os usurios devem portar um transmissor (tag) RFID para serem identificados. A
identificao do usurio deve ser usada para personalizar os setpoints de temperatu-
ra e de luz.
Um receptor de RFID e um neurnio representando o sensor so acrescenta-
dos ao sistema. Para detectar o usurio A e o usurio B, dois neurnios que compa-
ram o nmero de identificao enviado pelo receptor com o peso da conexo (neuro-
transmissor) so utilizados. A entrada do Usurio A e do Usurio B no quarto deve
alterar o comportamento de alguns subsistemas do quarto, por isso so modelados
como glndulas.
Um neurnio Setpoint de Iluminao acrescentado entre o neurnio Con-
trole Deslizante de Iluminao e a glndula Setpoint de Luz. Este ltimo possui
receptores para os hormnios Usurio A, Usurio B e Ausncia. Na tabela de
tabela de parmetros devem ser registrados hormnios Usurios A e Usurio B
com seus respectivos valores de setpoint. O valor propagado pelo Controle Desli-
zante de Iluminao possui prioridade maior que os parmetros tabelados, uma vez
modificado o primeiro, ele tem precedncia sobre os ltimos at que seja detectada
Ausncia. Este ltimo hormnio deve ser configurado para tal na tabela de par-
metros. O mesmo acrscimo deve ser feito com o setpoint de temperatura. A Figura
41 ilustra um diagrama do Sistema de Setpoint Personalizado.
107
Figura 41 Etapa 4: Diagrama de Relacionamento do Sistema de Setpoint Personalizado.
6.1.5. Etapa 5 Sistema para Aproveitamento da Luz Solar
Para melhorar a utilizao da luz solar atravs da janela, um aparato de luz de-
ve ser instalado externamente a janela. A abertura do aparato deve ser constante-
mente ajustada procurando aproveitar a luz solar sem deixar que a carga trmica
aumente demasiadamente. Para tal tarefa recomenda-se a adaptao do controla-
dor difuso usado por Guillemin (2003). O controlador necessita de dados ambientais
externos casa: a iluminncia vertical e a mdia das temperaturas das ltimas 24
horas. O ngulo de abertura do aparato de luz calculado em funo calculado em
funo destas variveis. A temperatura mdia fuzzificada em dois conjuntos difu-
sos: vero e inverno. E a iluminncia vertical em quatro conjuntos difusos: noite, bai-
xa, mdia, alta. Oito regras difusas combinam a temperatura mdia e a iluminncia
vertical. Para cada regra h um valor particular de abertura. As oito regras so com-
binadas ao final atravs do mtodo centro de gravidade (COG Center Of Gravity).
Trs elementos fsicos so necessrios para implantao do sistema descrito
acima: um sensor de iluminncia vertical externa, um sensor de temperatura externa
e um aparato de luz controlado eletronicamente. Trs neurnios representam cada
108
um destes trs elementos na camada Reativa. Como a temperatura e a iluminncia
no so grandezas particulares do quarto, os neurnios relacionados a estas gran-
dezas pertencem ao domnio casa. A temperatura mdia das ltimas 24 horas
calculada por um neurnio (especfico para clculo de mdias). Dois domnios espe-
ciais foram criados para agrupar os conjuntos difusos relacionados mdia de tem-
peratura e a iluminncia, Estao e Iluminncia, respectivamente. A Figura 42 ilustra
um diagrama do Sistema para Aproveitamento da Luz Solar.
Figura 42 Etapa 5: Diagrama de Relacionamento do
Sistema para Aproveitamento da Luz Solar.
109
Para o controlador difuso foi tambm criado um terceiro domnio. Este domnio
contm um conjunto de oito neurnios representando as oito regras difusas, um se-
gundo conjunto difuso de oito neurnios defuzificam a sada de cada regra usando o
mtodo COG (o peso corresponde a rea abaixo do grau de pertinncia recebido da
regra difusa) e um neurnio que calcula a mdia ponderada pelos pesos das oito
sadas defuzzificadas. Este ltimo neurnio propaga o valor de abertura para o apa-
rato de luz.
6.1.6. Etapa 6 Sistema de Controle para o Chuveiro
O sistema de controle para o chuveiro deve ajustar a temperatura da gua do
banho de acordo com a poca do ano ou de acordo com o desejo do usurio repor-
tado atravs de um controle deslizante.
Para ajustar a temperatura de acordo com a estao do ano, os conjuntos difu-
sos Estao (Inverno e Vero) utilizados na etapa anterior (Sistema para Aprovei-
tamento da Luz Solar) sero reutilizados. Os neurnios Inverno e Vero alimenta-
ro duas glndulas Inverno e Vero.
Um controle deslizante para o chuveiro, um sensor de temperatura da gua e
um chuveiro com controle de temperatura so instalados no banheiro e so repre-
sentados por trs neurnios na camada Reativa: Controle Deslizante Chuveiro,
Sensor de Temperatura da gua e Chuveiro, respectivamente.
Um neurnio Setpoint de Temperatura da gua calcula o setpoint para a gua
do banho e propaga-o para a glndula Setpoint de Temperatura da gua. O neur-
nio possui receptores para os hormnios Inverno, Vero e Ausncia. Na tabela
de parmetros devem ser registrados os hormnios Inverno e Vero com seus
110
respectivos valores de setpoint. O valor propagado pelo Controle Deslizante Chu-
veiro possui prioridade sobre os parmetros tabelados; uma vez modificado o pri-
meiro tem precedncia sobre os ltimos at que seja detectada Ausncia. Este l-
timo hormnio deve ser configurado para tal na tabela de parmetros.
Similarmente aos sistemas de Iluminao e de HVAC, o sistema de controle do
chuveiro utiliza um neurnio PID para controlar a temperatura da gua. A Figura 43
ilustra um diagrama do Sistema de Controle para o Chuveiro.
Figura 43 Etapa 6: Diagrama de Relacionamento do Sistema de Controle para o Chuveiro.
6.1.7. Etapa 7 Mais comportamentos para o quarto
Duas novas funcionalidades devero ser acrescentadas ao sistema de auto-
mao do quarto: a televiso deve ser programada para que seu volume seja dimi-
nudo quando o telefone estiver em uso, evitando assim que o som da televiso in-
terfira na conversa ao telefone; o telefone no dever tocar e a televiso dever ser
desligada quando o usurio estiver dormindo durante a noite.
Para que as duas funcionalidades acima possam ser desenvolvidas necess-
rio que a televiso e o telefone troquem informaes atravs da camada Reativa. A
111
televiso um aplicativo que contm um neurnio, TV, que recebe informaes
trocadas na camada Reativa. O mesmo acontece com o telefone. Esses dois neur-
nios propagam o estado da televiso (ligada ou no) e o estado do telefone (em uso
ou no) para duas glndulas, TV Ligada e Telefone em Uso, respectivamente.
O comportamento Dormindo ser a composio de duas informaes, est
escuro ( noite) e h pessoas na cama. Esses dados so capturados por um sensor
de luz (o mesmo utilizado no controle de iluminncia do quarto) e um sensor de vari-
ao de presso na cama (o mesmo utilizado para detectar ausncia). Um neurnio,
Escuro, determina se est escuro ou no (funo difusa trapezoidal). Essas duas
informaes so combinadas atravs de um neurnio E, que propaga o maior valor
recebido em suas conexes de entrada para a glndula Dormindo.
O aplicativo TV responder aos hormnios Telefone em Uso e Dormindo
diminuindo o som da televiso e desligando-a respectivamente. O aplicativo Telefo-
ne responder ao hormnio Dormindo no permitindo que o telefone toque. A Fi-
gura 45 ilustra um diagrama dos comportamentos descritos acima.
Figura 44 Etapa 7: Diagrama de Relacionamento de mais Comportamentos para o Quarto.
112
6.1.8. Etapa 8 Mais Comportamentos para a Casa
Comportamentos mais genricos que afetam a casa inteira tambm podem ser
acrescentados, como por exemplo:
Bloqueio por senha de acesso. O comportamento bloqueio ativado quando
um teclado de acesso no desativado atravs de uma senha de acesso.
Vazamento de gs. Este comportamento ativado quando detectado va-
zamento de gs na cozinha.
Correspondncia. Este comportamento ativado quando h correspondn-
cia na caixa de correio.
A Figura 45 ilustra um diagrama dos comportamentos descritos acima.
Figura 45 Etapa 8: Diagrama de Relacionamento de mais Comportamentos para a Casa.
6.2. Comunicao com Dispositivos Fsicos
Durante um ms, um aplicativo baseado na implementao da arquitetura pro-
posta foi posto para funcionar em conjunto com uma rede de sensores existente.
Esta ltima interliga sensores localizados em dois quartos em um ambiente residen-
cial. Um conjunto de dispositivos fsicos como sensores de movimento, de tempera-
tura, de luz (iluminncia) e de presso, reed switches (chaves magnticas), um re-
113
ceptor de RFID, uma barreira tica, conjuntos de LEDs para iluminao, entre outros
esto interligados em rede. A rede de sensores utilizada foi desenvolvida por Tibiri
(2007), especialmente para ser um meio de comunicao de baixo custo entre dis-
positivos fsicos utilizados em ambientes construdos. Um aplicativo permite o aces-
so aos dados da rede atravs de uma conexo TCP/IP tipo soquete. O Quadro 8
resume algumas caractersticas da rede de sensores.
Quadro 8 Caractersticas da rede de sensores. Fonte: Tibiri (2007).
A Figura 46 mostra a planta dos dois quartos e o posicionamento dos sensores
(descritos no Quadro 9). Durante o perodo de observao o sistema ficou em fun-
cionamento no perodo diurno, cinco dias por semana. Os neurnios de interface
(localizados no computador do Quarto 2) se comunicam com o aplicativo da rede de
sensores (localizado no computador do Quarto 1) atravs de uma conexo TCP/IP
tipo soquete. A movimentao dos usurios durante a execuo de atividades di-
rias estimulava os sensores instalados nos dois quartos. LEDs para iluminao fo-
ram programados para responder diferentemente s diferentes aes dos usurios.
Durante o perodo de observao no foram notados atrasos perceptveis (maiores
114
que um segundo) entre a mudana de estado provocada em um sensor, o recebi-
mento do sinal pelos neurnios e a atuao do sistema atravs dos atuadores.
Figura 46 Planta dos quartos com a posio dos sensores instalados.
115
Quadro 9 Descrio dos sensores apontados na Figura 46.
6.3. Consideraes finais
O sistema de automao descrito na seo 6.1 resultado da associao de
mdulos simples e bem determinados. Com poucas classes de neurnios e de gln-
dulas foi possvel criar uma diversidade de sistemas automticos para o ambiente
construdo. Com praticamente os mesmos mdulos bsicos, diferentes sistemas de
automao foram programados. Os sistemas de Iluminncia e de HVAC no quarto, e
o sistema de Controle do Chuveiro no banheiro utilizam a mesma estrutura bsica
de mdulos. Os neurnios Vero e Inverno compem tanto o sistema de Aproveita-
mento de Luz Solar no quarto quanto o sistema de Controle do Chuveiro no banhei-
116
ro. Um conjunto de mdulos bsicos foi combinado para formar diferentes sistemas
de automao, em etapas distintas de programao da casa descrita anteriormente.
Cumpre-se assim um dos requisitos colocados inicialmente para a arquitetura pro-
posta, a modularidade.
A associao de novos mdulos aos j existentes facilitada pela interface de
comunicao comum de neurnios e de glndulas. Na casa fictcia, o sistema de
Deteco de Ausncia era inicialmente baseado em um sensor de movimento. Ou-
tros sensores foram acrescidos formando novas associaes de neurnios e trazen-
do novas funcionalidades ao sistema. O mesmo observado na implantao do sis-
tema de Setpoint Personalizado. Os neurnios Setpoint de Iluminao e Setpoint
de Temperatura se associaram s glndulas Setpoint de Luz e Setpoint de Tem-
peratura, respectivamente, aumentando as funcionalidades anteriores. A interface
comum entre os mdulos bsicos, neurnios e glndulas, permite que estes sejam
combinados de inmeras maneiras, tornado a arquitetura proposta flexvel.
O mecanismo de funcionamento das glndulas permite que os comportamen-
tos de neurnios/glndulas pertencentes a diferentes sistemas sejam integrados. A
configurao de um novo receptor de hormnio em um neurnio/glndula, o deixa
suscetvel a ao de uma glndula. Na casa fictcia, a glndula Ausncia afeta dire-
tamente comportamentos dos sistemas de Iluminao, de HVAC e de Aproveitamen-
to de Luz Solar no quarto. Neurnios em toda a casa tambm poderiam ser configu-
rados a se comportarem de maneira particular quando a glndula Bloqueio ou a
glndula Vazamento estivessem ativas. Este ltimo exemplo demonstra como a
insero de um novo comportamento pode ser configurada para afetar vrias partes
do sistema. O sistema final , desta forma, capaz de integrar as diversas partes que
o compe.
117
A expanso do sistema acontece de forma natural. possvel desenvolver uma
soluo de automao em etapas distintas. Funcionalidades no precisam ser pre-
vistas desde o incio do processo de desenvolvimento. A interface simples e comum
entre as diferentes classes de neurnios e de glndulas facilita a associao de no-
vos neurnios e novas glndulas aos j existentes.
Um sistema completo de automao pode ser desenvolvido a partir de classes
de neurnios e de glndulas pr-existentes. Todo o sistema se torna fruto da confi-
gurao de parmetros da camada Ontolgica. Essas caractersticas tornam a arqui-
tetura proposta modular, flexvel e capaz de integrar de forma simples os diversos
sistemas automticos que coexistem nos ambientes construdos.
118
7. Concluso
Arquitetura de software para Automao do Ambiente Construdo um tema
ainda pouco explorado. Na literatura, extensa a lista de trabalhos voltados apri-
morao de sistemas automticos aplicados aos ambientes construdos, mas muito
pouco encontrado sobre temas relacionados ao desenvolvimento e estruturao
do software utilizado nestes sistemas. No entanto, a arquitetura de software a base
para construo desses sistemas. medida que a complexidade do sistema de au-
tomao aumenta, maior a importncia da estruturao do software.
Como inicialmente estabelecido, este trabalho de pesquisa consistiu na propo-
sio de uma arquitetura de software neuro-reativa para sistemas de Automao do
Ambiente Construdo. Estes ltimos so construdos a partir de associaes de neu-
rnios e de glndulas artificiais, elementos bsicos da arquitetura com caractersti-
cas fortemente reativas. Um modelo de quatro camadas norteia o desenvolvimento
de aplicaes. A camada Fsica responsvel por capturar informaes e enviar
comandos aos componentes fsicos do sistema, como sensores e atuadores. Duas
camadas, Reativa e Ontolgica, compem o ncleo da arquitetura. Toda a dinmica
do sistema resultado das interaes entre neurnios e glndulas na camada Rea-
tiva. Por outro lado, o modo de interao e de ao de cada componente descrito
na camada Ontolgica. As trs camadas anteriores servem como plataforma para o
desenvolvimento de aplicativos na camada de Aplicao. Esses aplicativos podem
modificar dinamicamente os parmetros de configurao e as conexes descritas na
camada Ontolgica, e instanciar novos neurnios e glndulas na camada Reativa.
O projeto de software pode ser desenvolvido em etapas distintas com utilizao
de modelos com neurnios, glndulas e domnios que representaro os diversos
119
elementos de automao do sistema. Diagramas de Relacionamento ajudam a visu-
alizar o sistema em desenvolvimento. Conjuntos de tabelas descrevem as caracte-
rsticas funcionais de cada neurnio e glndula. Esses diagramas e tabelas so ele-
mentos importantes de documentao no projeto, e a sua traduo para um software
ocorre de maneira natural com o uso da arquitetura proposta.
Requisitos como modularidade, flexibilidade e capacidade de integrao das
partes foram obtidos. Os elementos bsicos da arquitetura proposta, neurnios e
glndulas, so estruturalmente simples e com interface tambm simples, o que torna
a soluo final modular e flexvel. As glndulas representam comportamentos e set-
points, e propagam essas informaes a todas as entidades de um domnio, inte-
grando dessa forma comportamentos individuais em um domnio. O resultado foi
uma estrutura final que facilita o desenvolvimento, a manuteno e a expanso do
software para Automao do Ambiente Construdo.
7.1. Principais contribuies
As principais contribuies alcanadas com esta tese foram:
Proposio de uma arquitetura de software para Automao do Ambi-
ente Construdo. A arquitetura proposta coloca-se como uma opo para o
desenvolvimento de software para sistemas de Automao do Ambiente
Construdo. A literatura ainda trata de forma incipiente este assunto e prati-
camente so inexistentes referncias especficas para estruturao de soft-
ware para construo de sistemas de Automao do Ambiente Construdo.
Nesse contexto, a arquitetura proposta uma base de referncia para futu-
ros trabalhos nesta rea.
120
Implementao do arcabouo da arquitetura proposta. O arcabouo da
arquitetura proposta foi programado na linguagem Java utilizando como pla-
taforma as tecnologias CORBA e MySQL. Foram tomados cuidados para
que o arcabouo deixasse detalhes de funcionamento da arquitetura trans-
parente aos usurios. A estrutura utilizada para implementao da arquitetu-
ra proposta foi descrita. Futuros trabalhos podero utiliz-la como referncia.
Modelos baseados em neurnios e em glndulas. Os neurnios e as
glndulas podem ser utilizados para descrever o funcionamento de elemen-
tos bsicos de sistemas de Automao do Ambiente Construdo. Desta for-
ma um sistema de Automao do Ambiente Construdo pode ser modelado
como uma associao de neurnios e de glndulas. Independentemente da
implementao em software, o modelo construdo colabora para a visualiza-
o e o entendimento da dinmica de funcionamento do sistema.
7.2. Trabalhos futuros
A seguir so apresentadas sugestes para futuros trabalhos:
Desenvolvimento de ferramentas visuais para configurao de neur-
nios e de glndulas. A configurao de neurnios e de glndulas na imple-
mentao apresentada feita atravs de cdigos SQL. Um ambiente de de-
senvolvimento com recursos visuais, no qual o usurio trabalhe de maneira
mais intuitiva, facilitar bastante o desenvolvimento de novas aplicaes de
Automao do Ambiente Construdo.
Mtodos para combinao de comportamentos. Um neurnio ou uma
glndula pode estar sujeito a ao de vrios hormnios (comportamentos).
121
Na implementao apresentada, uma hierarquia de prioridades determina
qual hormnio ativo tem maior prioridade. Hormnios ativos com a mesma
prioridade podem ser combinados atravs de cinco mtodos: last, first, me-
an, higher e smaller. No entanto, o gerenciamento de comportamentos um
campo importante dentro das arquiteturas reativas; outros mtodos de com-
binao de comportamento devem merecem ser estudados e adaptados
arquitetura proposta.
Implementao da arquitetura proposta em hardware. A arquitetura
proposta foi implementada completamente na linguagem Java em computa-
dores PC. Parte da arquitetura poderia ser implementada em ns de redes
de campo ou de sensores, distribuindo o processamento do sistema.
Criao de verses do arcabouo proposto em outras linguagens de
programao. O arcabouo da arquitetura proposta foi programado na lin-
guagem Java. Implementaes em outras linguagens tambm poderiam ser
feitas. Outras opes de middleware de comunicao e de banco de dados
tambm devem ser exploradas.
Estudo e otimizao dos mecanismos de comunicao de neurnios e
de glndulas. Neurnios e glndulas foram implementados como processos
de software independentes, que se comunicam de forma assncrona e sem
preocupao com reconhecimento de mensagens. Futuras verses poderi-
am ter mecanismos de reconhecimento de mensagem e mecanismos de
comunicao sncrona.
Programao de classes de neurnios. Novas classes de neurnios e de
glndulas poderiam ser programadas com funcionalidades teis aos siste-
122
mas de Automao do Ambiente Construdo. Bibliotecas de classes facilita-
ro a construo desses sistemas.
Mdulos de aprendizagem. Mdulos de aprendizagem com diferentes algo-
ritmos poderiam ser criados para a camada de Aplicao. Eles poderiam fa-
zer configurao dinmica de parmetros na camada Ontolgica e instancia-
es de novas entidades na camada Reativa.
123
Referncias
AKYILDIZ, I. F.; SU, W.; SANKARASUBRAMANIAM, Y.; CAYRICI, E. A survey on
Sensor Networks. IEEE Communications Magazine, pp. 102-114, 2002.
ALCAL, R.; CASILLAS, J.; CORDN, O.; GONZLEZ, A.; HERRERA, F. A genetic
rule weighting and selection process for fuzzy control of heating, ventilating
and air conditioning systems. Engineering Applications of Artificial Intelligence, 18,
pp. 279-296, 2005.
BOLTON, F. Pure CORBA. Sams Publishing, 2002.
BRAGA, A.; CARVALHO, A. C.; LUDERMIR, T. B. Redes Neurais Artificiais: teoria
e aplicaes. Rio de Janeiro: LTC, 2007.
BROOKS, R. A. A robust layered control system for a mobile robot. IEEE Journal
of Robotics and Automation, 1 (1), pp. 1-10, 1986.
BROOKS, R. A. Intelligence without representation. Artificial Inteligence, 47, pp.
139-159, 1991.
BROOKS, R. A. The Intelligent Room Project. Proceedings of the 2nd International
Conference on Cognitive Technology, 1997.
BROSE, G.; VOGEL, A.; DUDDY, K. Java Programming with CORBA: Advanced
Techniques for Building Distributed Applications. John Wiley & Sons, 2001.
CALLAGHAN, V.; CLARKE, G.; COLLEY, M.; HAGRAS, H.; CHIN, J. S.; DOCTOR,
F. Inhabited intelligent environments. BT Technology Journal, 22 (3), 2004.
CALLAGHAN, V.; CLARKE, G.; POUNDS-CORNISH, A.; SHARPLES, S. Buildings
as Intelligent Autonomous Systems: A Model for Integrating Personal and
Buildings Agents. 6th International Conference on Intelligent Autonomous Systems,
2000.
CAYCI, F.; CALLAGHAN, V.; CLARKE, G. A Distributed Intelligent Building Agent
Language (DIBAL). 6th International Conference on Information System Analysis
and Synthesis, 2000.
CHONG, C.-Y.; KUMAR, S. P. Sensor networks: evolution, opportunities and
challenges. 1247-1256, Ed. Proceedings of the IEEE, 91 (8), 2003.
COEN, M. H. Building brains for rooms: designing distributed software agents.
Nineth Conference on Innovative Applications of Artificial Inteligence (IAA' 99), 1997.
COEN, M. H. Design Principles for Intelligent Environments. Proceedings of the
fifteenth national/tenth conference on Artificial intelligence/Innovative applications of
artificial intelligence, 1998.
124
COLEMAN, D.; ARNOLD, P.; BODOFF, S.; DOLLIN, C.; GILCHRIST, H.; HAYES, F.;
JEREMAES, P. Desenvolvimento orientado a objetos: o mtodo Fusion. Rio de
Janeiro: Campus, 1996.
COOK, D. J.; DAS, S. K. How smart are our environments? An updated look at
the state of the art. Pervasive and Mobile Computing, 3, pp. 53-73, 2007.
COOK, D. J.; DAS, S. K. Smart Environments - Technology, Protocols and
Applications. New Jersey: John Wiley & Sons, 2005.
COOK, D. J.; YOUNGBLOOD, M.; HEIERMAN III, E. O.; GOPALRATNAM, K.; RAO,
S.; LITVIN, A.; KHAWAJA, F. MavHome: An Agent-Based Smart Home.
Proceedings of the First IEEE International Conference on Pervasive Computing and
Communications, 2003.
DAS, S. K.; COOK, D. J.; BHATTACHARYA, A.; HEIERMAN III, E. O.; LIN, T.-Y. The
role of prediction algorithms in the Mavhome Smart Home Architecture. IEEE
Wireless Communications, December, 2002.
DEY, A. K. Understanding and using context. Personal and Ubiquitous Computing,
5, pp. 4-7, 2001.
DEY, A. K.; ABOWD, G. D.; SALBER, D. A context-based indrastructure for
Smart Environments. Proceedings of the 1st International Workshop on Managing
Interactions in Smart Environments (MANSE 99), pp. 114-128, 1999.
DOUNIS, A. I.; CARAISCOS, C. Intelligent Coordinator of Fuzzy Controller-Agent
for Indoor Environment Control in Buildings using 3-D Fuzzy Comfort Set. IEEE
International Fuzzy Systems Conference, pp. 1-6, 2007.
DOUNIS, A. I.; LEFAS, C. C.; ARGIRIOU, A. Knowledge-based versus classical
control for solar-building designs. Applied Energy, 50, pp. 281-292, 1995.
DOUNIS, A. I.; SANTAMOURIS, M. J.; LEFAS, C. C.; ARGIRIOU, A. Design of a
fuzzy set environment comfort system. Energy and Buildings, 22, pp. 81-87, 1995.
ELMASRI, R.; NAVATHE, S. B. Sistemas de banco de dados. So Paulo: Pearson
Addison Wesley, 2005.
GUILLEMIN, A. Using Genetic Algorithms to into Account User Wishes in an
Advanced Building Control System. Lausanne, Suia: Tese de doutorado da
Escola Politcnica de Lausanne, 2003.
GUILLEMIN, A.; MOLTENI, S. An energy-efficient controller for shading devices
self-adapting to the user wishes. Building and Environment, pp. 1091-1097, 2002.
GUILLEMIN, A.; MOREL, N. An innovative lighting controller integrated in a self-
adaptive building control system. Energy and Buildings, 33, pp. 477-487, 2001.
GUILLEMIN, A.; MOREL, N. Experimental results of a self-adaptive integrated
control system in buildings: a pilot study. Solar Energy, 72, pp. 397-403, 2002.
125
GUYTON, C. A.; HALL, J. E. Textbook of Medical Physiology. 11th edition ed.,
Elsevier Saunders, 2006.
HAGRAS, H.; CALLAGHAN, V.; COLLEY, M.; CLARKE, G. A hierarchical fuzzy-
genetic multi-agent architecture for intelligent buildings online learning,
adaptation and control. Information Sciences, 150, pp. 33-57, 2003.
HAYKIN, S. Neural networks: a comprehensive foundation. Upper Saddle River:
Prentice-Hall, 1999.
HELAL, A. S.; YANG, H.-I.; KING, J.; BOSE, R. Atlas - Architecture for Sensor
Network Based Intelligent Environments. ACM Transactions on Sensor Networks,
2007.
HELAL, S.; MANN, W.; EL-ZABADANI, H.; KING, J.; KADDOURA, Y.; JANSEN, E.
The Gator Tech Smart House: A Programmable Pervasive Space. IEEE
Computer magazine, pp. 64-74, 2005.
HELAL, S.; WINKLER, B.; LEE, C.; KADDOURAH, Y.; RAN, L.; GIRALDO, C.;
MANN, W. Enabling location-aware pervasive computing applications for the
eldery. Proceedings of the First IEEE Pervasive Computing Conference, 2003.
INTILLE, S. S. Design a home of the future. Pervasive Computing , April-June,
2002.
JANSEN, E.; ABDULRAZAK, B.; YANG, H.; KING, J.; HELAL, S. A Programming
Model for Pervasive Spaces. Submitted to the 3rd International Conference on
Service Oriented Computing, 2005.
KADDOURA, Y.; KING, J.; HELAL, A. S. Cost-precision tradeoffs in
unencumbered floor-based indoor location tracking. Proceedings of third
International Conference on Smart Homes and Health Telematic (ICOST), 2005.
KASTNER, W.; NEUGSCHWANDTNER, G.; SOUCEK, S.; NEWMANN, H. M.
Communication Systems for Building Automation Control. Proceedings of IEEE,
93 (6), pp. 1178-1203, 2005.
KING, J.; BOSE, R.; YANG, H.-I.; PICKLES, S.; HELAL, A. Atlas: A Service-
Oriented Sensor Platform. Proceedings of the first IEEE International Workshop on
Practical Issues in Building Sensor Network Applications (SenseApp 2006), 2006.
KOLOKOTSA, D.; SARIDAKIS, G.; POULIEZOS, A.; STAVRAKAKIS, G. S. Design
and installation of an advanced EIB fuzzy indoor comfort controller using
Matlab. Energy and Buildings, 38, pp. 1084-1092, 2006.
KOLOKOTSA, D.; STAVRAKAKIS, G. S.; KALAITZAKIS, K.; AGORIS, D. Genetic
algorithms optimized fuzzy controller for the indoor environmental
management in buildings implemented using PLC and local operating
networks. Engineering Applications of Artificial Intelligence , 15, pp. 417-428, 2002.
KOLOKOTSA, D.; TSIAVOS, D.; STAVRAKAKIS, G. S.; KALAITZAKIS, K.;
ANTONIDAKIS, E. Advanced fuzzy logic controllers design and evaluation for
126
buildings' occupants thermal-visual comfort and indoor air quality satisfaction.
Energy and Buildings, 33, pp. 531-543, 2001.
KRISTL, Z.; KOSIR, M.; LAH, M. T.; KRAINER, A. Fuzzy control system for
thermal and visual comfort in building. Renewable Energy, 33, pp. 694-702, 2008.
KULKARNI, A. A. A reactive behavioral system for the Intelligent Room. Master
Engineering of Electrical Engineering and Computer Science Thesis, 2002.
LAH, M. T.; ZUPANCIC, B.; PETERNELJ, J.; KRAINER, A. Daylight illuminance
control with fuzzy logic. Solar Energy, 80, pp. 307-321, 2006.
MAHALIK, N. G.; LEE, S. K. Design and development of system level software
tool for DCS simulation. Advances in Engineering Software, 34, pp. 451-465, 2003.
MAHALIK, N.; XIE, C.; PU, J.; MOORE, P. R. Virtual distributed control systems:
a components-based design method for mechatronic systems. Assembly
Automation, 26 (1), pp. 44-53, 2006.
MINSKY, M. The society of mind. New York: Simon & Schuster, 1986.
MOZER, M. C. The Neural Network House: an environment that adapts to its
inhabitants. Proceedings of the American Association for Artificial Inteligence Spring
Symposium on Intelligent Environments, pp. 110-114, 1998.
MURPHY, R. R. Introduction to AI Robotics. Cambridge, Massachusetts: A
Bradford Book, 2000.
OAKS, S.; WONG, H. Java threads. O 'Reilly, 1997.
OLIVEIRA JNIOR, H. A. Lgica Difusa: aspectos prticos e aplicaes. Rio de
Janeiro: Intercincia, 1999.
PETERSON, L. L.; DAVIE, B. S. Computer Networks - A Systems Approach. 3a
Edio ed., San Francisco: Morgan Kaufmann Publishers, 2003.
PRESSMAN, R. S. Engenharia de Software. So Paulo: Pearson Makron Books,
1995.
RIVERA-ILLINGWORTH, F.; CALLAGHAN, V.; HAGRAS, H. A Neural Agent Based
Approach to Activity Detection in AmI Environments. Proceedings of IEE
International Workshop on Intelligent Environments, 2005.
ROY, A.; BHAUMIK, S. K.; BHATTACHARYA, A.; BASU, K.; COOK, D. J.; DAS, S.
K. Location Aware Resource Management in Smart Homes. Proceedings of the
First IEEE International Conference on Pervasive Computing and Communications
(PerCom 2003), pp. 481- 488, 2003.
RUTISHAUSER, U.; SCHFER, A. Adaptive Building Automation - A multi-Agent
approach. Projeto de Pesquisa, Universidade de Cincias Aplicadas de Rapperswil
e Instituto de Neuroinformtica da Universidade de Zurique, Departamento de
Cincia da Computao, 2002.
127
SATYANARAYANAN, M. Pervasive Computing: vision and challenges. IEEE
Personal Communications, 2001.
SCHICKHUBER, G.; MCCARTHY, O. Distributed fieldbus and control network
systems. IEEE Computing & Control Engineering Journal, 8 (1), pp. 21-32, 1997.
SHARPLES, S.; CALLAGHAN, V.; CLARKE, G. A multi-agent architecture for
intelligent building sensing and control. International Sensor Review Journal,
1999.
SOARES, L. F.; LEMOS, G.; COLCHER, S. Redes de computadores - das LANs,
MANs e WANs s Redes ATM. Rio de Janeiro: Campus, 1995.
TANDLER, P.; STREITZ, N.; PRANTE, T. Roomware - Moving toward Ubiquitous
Computers. IEEE Micro, pp. 36-47, 2002.
THOMESSE, J. P. Fieldbuses and interoperability. Control Engineering Practice,
7, pp. 81-94, 1999.
TIBIRI, A. M. B. Um estudo sobre os sistemas de iluminao automticos e
os sistemas de controle distribudo para automao predial. So Carlos, SP:
Dissertao de Mestrado, EESC-USP, 2004.
TIBIRI, C. B. Deteco de usurios e suas interaes com o ambiente
utilizando rede de sensores. So Carlos: Dissetao de mestrado da EScola de
Engenharia de So Carlos da Universidade de So Paulo, 2007.
TOSHIBA. Neuron chip data book.
WEISER, M.; BROWN, J. S. The coming age of calm technology. Disponvel em:
<http://www.ubiq.com/hypertext/weiser/acmfuture2endnote.htm>. Acessado em 23
de outubro de 2008.
YOUNGBLOOD, G. M.; HOLDER, L. B.; COOK, D. J. Managing Adaptive Versatile
Environments. Proceedings of the 3rd IEEE International Conference on Pervasive
Computing and Communications, 2005.
ZADEH, L. A. Fuzzy Sets. Information and Control, 8, pp. 338-353, 1965.
ZHENG, Y.; AKHTAR, S. Networks for computers scientists and engineers. New
York: Oxford University Press, 2002.
ZIMMERMANN, H.-J. Fuzzy set theory and its applications. 4a Edio ed., Kluwer
Academic Publishers, 2001.
128
Glossrio
Bluetooth. Protocolo de comunicao sem-fio para transmisso de dados em
curtas distncias entre dispositivos fixos e mveis, criando uma rede de comunica-
o pessoal (PAN).
Cluster. Conjunto de computadores que trabalham em conjunto.
Data Mining. Processo de explorar grandes quantidades de dados procura
de padres consistentes, como regras de associao ou seqncias temporais.
Firewire. Interface serial para computadores pessoais e aparelhos digitais de
udio e vdeo que oferece comunicaes de alta velocidade e servios de dados em
tempo real.
Grafo. Representao grfica das relaes existentes entre elementos de da-
dos. Pode ser descrito num espao euclidiano de n dimenses como sendo um con-
junto V de vrtices e um conjunto A de curvas contnuas (arestas).
OmniORB. ORB CORBA de cdigo aberto para as linguagens C++ e Python.
Ontologia. Modelo de dados que representa um conjunto de conceitos dentro
de um domnio e os relacionamentos entre estes.
OSGI (Open Services Gateway Initiative). Plataforma de servios Java que
especifica um modelo de gerenciamento de ciclo de vida de aplicativos, um registro
de servios, um ambiente de execuo e mdulos.
129
PCI (Peripheral Component Interconnect - Interconector de Componentes
Perifricos). Barramento para conectar perifricos em computadores baseados na
arquitetura IBM PC.
PDA (Personal Digital Assistant Assistente Pessoal Digital). Computador
de dimenses reduzidas da ordem de grandeza da mo ou de um papel A6.
PostgreSQL. Sistema gerenciador de banco de dados objeto relacional desen-
volvido como projeto de software livre.
Proxy. Tipo de servidor que atende a requisies repassando os dados a ou-
tros servidores.
SOA (Service-Oriented Architecture) ou Arquitetura Orientada a Servio.
Arquitetura de software cujo princpio fundamental disponibilizao, na forma de
servios, as funcionalidades implementadas pelas aplicaes.
USB (Universal Serial Bus). Barramento serial de conexo rpida para aco-
plamento de perifricos ao computador.
Wi-Fi. Tecnologia de redes sem fios (WLAN) baseada no padro IEEE 802.11.
Zeroconf (Zero Configuration Networking). Conjunto de tcnicas que criam
de forma automtica uma rede IP sem necessitar de configurao ou servidores.
ZigBee. Tecnologia de redes sem fios baseada no padro IEEE 802.15.4 que
realiza a interligao de pequenas unidades de comunicaes de dados em peque-
nas reas.
(Sharples, Callaghan, & Clarke, 1999)