Escolar Documentos
Profissional Documentos
Cultura Documentos
Sao Jose SC
agosto / 2011
Michel Vinicius de M elo Euzebio
Orientador:
Prof. Emerson Ribeiro de Melo, Dr.
Sao Jose SC
agosto / 2011
Monografia sob o ttulo DroidLar - Automacao residencial atraves de um celular An-
droid , defendida por Michel Vinicius de Melo Euzebio e aprovada em 12 de agosto de 2011,
em Sao Jose, Santa Catarina, pela banca examinadora assim constituda:
Dedico meus sinceros agradecimentos a Deus e a minha famlia que me deram forca para
vencer os obstaculos e chegar ate aqui.
Home automation systems allow the users to control of electronics of a residence through
control interfaces like fixed panels on the walls. The smart phones become popular because
have superior hardware settings compared to conventional mobile phones and because have
more complex operating systems allowing development of sophisticated applications. The ope-
rating system Android is an open source project developed for mobile devices and is present in
so many smart phones. The ZigBee protocol is used in wireless networks with low transmis-
sion rate and provides energy safe by the transmitters. The transmissions in ZigBee networks
dont have long-range but this protocol allows the transmitters forward messages in network,
increasing the length it. In this paper we presents the DroidLar, a complete home automation
system that uses an application running on Android phones as a control interface. The devices
controller of this system communicate over a ZigBee network.
Sumario
L ista de Figur as
L ista de Tabelas
1 I ntroducao p. 12
1.1 Motivacao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 12
1.2 Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 13
2.1.1 X10 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 15
2.1.2 Insteon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 18
2.1.3 Z-Wave . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 21
2.1.4 ZigBee . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 23
2.1.5 Comparativo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 25
2.2.1 ZigBee . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 27
2.3 Arduino . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 30
2.4 XBee . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 32
2.5 Android . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 32
3 DroidL ar p. 35
3.1 Arquitetura . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 35
3.1.2 SAR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 37
3.2 Protocolo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 42
4 Conclusoes p. 53
L ista de Abreviatur as p. 55
1 I ntroducao
1.1 M otivacao
Esse trabalho foi motivado pela possibilidade de utilizar uma aplicacao rodando em celula-
res Android (OPEN HANDSET ALLIANCE, 2008) como interface de controle de um sistema
de automacao residencial, a fim de substituir as limitadas paginas Web utilizadas pelos siste-
mas atuais. A utilizacao de aplicacoes em telefones inteligentes possibilita usufruir de recursos
como manipulacao de arquivos, reproducao de audio e vdeo, al em de construcao de interfaces
graficas avancadas com uma facilidade maior do que em paginas Web.
Sistemas de automacao residencial contem dispositivos que sao conectados aos eletroe-
letronicos da residencia e executam efetivamente os comandos do usuario. Esses dispositivos
precisam estar disponveis o tempo todo para receberem as mensagens da rede e executar os
comandos. As caractersticas apresentadas pelo protocolo ZigBee sao ideias para sistemas de
1.2 Objetivos 13
Desenvolvimento de uma aplicacao cliente que rode em telefones Android e sirva como
interface de controle para os eletronicos da residencia. Essa aplicacao tambem possibilita
o agendamento de comandos no servidor.
O texto esta organizado da seguinte forma: No Captulo 2 sao descritos os principais pro-
tocolos utilizados em sistemas de automacao residencial, como tambem produtos comerciais
que as utilizam. E estudada tambem a plataforma Arduino. Iniciando com suas principais ca-
ractersticas, sua integracao com redes ZigBee atraves do modulo XBee e terminando com um
exemplo de codigo.
Outro assunto abordado nesse captulo e o protocolo ZigBee. E feita uma analise de sua
arquitetura e tambem descrito seu funcionamento, os papeis de cada tipo de dispositivo na rede
e tambem, os motivos pela sua utilizacao nesse trabalho ao inves de outros protocolos de rede
mais populares. Al em desses assuntos, tambem e apresentado o sistema operacional Android,
sua arquitetura e a estrutura basica de uma aplicacao.
Sistemas de automacao sao sistemas capazes de executar comandos, obter medidas, regular
parametros e controlar funcoes automaticamente. Esses sistemas comecaram a ser utilizados
na decada de 70 em aplicacoes industriais. Consolidados no setor industrial sua utilizacao
expandiu-se tambem para o comercio com o surgimento dos chamados predios inteligentes ,
originando os sistemas de automacao predial (PINHEIRO, J. M. S., 2004).
2.1.1 X10
O X10 (SARASWAT et al., 2008) foi um dos primeiros protocolos a serem utilizados em
automacao residencial. Desenvolvido na decada de 70 pela empresa escocesa Pico Electro-
nics, tem como principal caracterstica a utilizacao da rede el etrica da residencia como meio
2.1 Automacao Residencial 16
As mensagens sao transmitidas atraves da rede el etrica da residencia, sendo que os bits de
valor 1 sao enviados na forma de pulsos de 120 Khz a cada cruzamento pelo valor zero de
tensao Corrente Alternada (CA), j a os bits 0 sao caracterizados pela ausencia desses pulsos,
como mostra a Figura 2.1 (CHUNDURU; SUBRAMANIAN, 2006).
Os pulsos sao enviados a cada 60 da tensao CA para que o protocolo seja compatvel
com potencias trif asicas e, assim, receber o bit pela fase que estiver em melhor estado naquele
momento (Figura 2.2), resultando numa melhora na relacao sinal/rudo. O protocolo X10 ainda
preve o envio de um segundo bit que e o complemento do original (Figura 2.2) aumentando,
assim, a imunidade a rudos do sistema (DA SILVA, A. A. J. P., 2005).
As mensagens do X10 sao formadas por uma sequencia de 13 bits. Os 4 primeiros bits
2.1 Automacao Residencial 17
Quando eenviadaa mensagem Address, os 4 bits vari aveis indicam o codigo do dispositivo.
Esse codigo juntamente com o codigo da casa podem ser usados para o enderecamento dos dis-
positivos, resultando no total de 256 enderecos possveis na rede. No envio de uma mensagem
Function os 4 bits vari aveis sao usados para indicar o tipo de comando. Esses 4 bits limitam a
quantidade de comandos em 16, al em disso, os comandos do X10 sao predefinidos como, por
exemplo, On, Off e Dim que servem para ligar, desligar e diminuir a intensidade de energia
do dispositivo, respectivamente, tornando o X10 menos flexvel comparado a outros protocolos
para automacao (DA SILVA, A. A. J. P., 2005).
Siatron
A comunicacao entre as interfaces de controle, que utilizam redes Internet Protocol (IP)
para se comunicar, e os dispositivos X10 e feita atraves de um software da mesma empresa que
roda em um computador pessoal e encaminha as mensagens entre essas duas redes distintas.
Esse software ainda permite o agendamento de comandos aos dispositivos para horarios pre-
determinados pelo usuario.
O Siatron e comercializado em forma de modulos tais como o Siatron Biometria, que con-
trola o acesso a residencia atraves de identificacao biometrica e o Siatron Iluminacao, que per-
mite que o usuario acenda ou apague as l ampadas da sua residencia.
2.1.2 I nsteon
O Insteon (DARBEE, 2005) e um protocolo de rede para automacao residencial criado pela
Smarthome Technology - maior distribuidora de dispositivos X10 do mundo - em 2001. Ele e
considerado o sucessor do X10, pois, assim como ele, tambem utiliza a rede el etrica existente
da residencia como meio de comunicacao. Entretanto, diferente do X10, o Insteon tambem
preve a comunicacao de dispositivos utilizando RF, o que so e possvel no X10 com a utilizacao
de adaptadores de terceiros como j a mencionado na Secao 2.1.1.
confirmacao da mensagem enviada. A Figura 2.3 apresenta um exemplo de uma rede Insteon
com dispositivos atuando tanto na rede el etrica quanto por RF. E possvel ver que podem ser
utilizados dispositivos hbridos, que transmitam tanto por RF quanto pela rede el etrica, como
ponte para a comunicacao de dispositivos conectados a diferentes fases da rede el etrica.
O Insteon utiliza uma rede do tipo par a par, sendo que todos os modulos podem receber,
enviar ou repetir as mensagens (Figura 2.3). A repeticao de mensagens aumenta ainda mais a
protecao do sistema contra perdas, j a que elas tem varios caminhos possveis para chegar ao
destino. Nao ha configuracoes de rotas na rede, ou seja, todos os modulos repetirao todas as
mensagens que receberem. Para evitar uma repeticao infinita de mensagens na rede, o Insteon
limita em 3 o numero de repeticoes de uma mesma mensagem.
durante a fabricacao dos dispositivos e, por isso, nao podem ser alterados. O campo flags
ocupa 1 byte e contem informacoes como o tipo de mensagem que e enviada, j a o campo
comandos ocupa 2 bytes, um para cada comando, e contem os comandos predeterminados que
o dispositivo devera executar. O ultimo byte contem o valor de CRC utilizado para deteccao de
erros.
Os sinais que carregam as mensagens na rede el etrica tem frequencia de 131,65 Khz e, as-
sim como no X10, sao sincronizados no nvel zero de tensao CA. Esses sinais sao modulados
utilizando-se a modulacao Binary Phase Shift Keying (BPSK) o que garante uma boa perfor-
mance do sistema na presenca de rudos. Ja os sinais enviados por radiofrequencia utilizam a
faixa de 902 a 924 Mhz dentro da banda Industrial, Scientific and Medical (ISM) e sao trans-
mitidos a uma taxa de 38,4 Kbps.
O protocolo X10 e compatvel com o protocolo Insteon, ou seja, os dois sistemas podem
operar na instalacao el etrica da mesma residencia sem causar interferencias entre si. Porem, as
mensagens do Insteon e do X10 nao sao compatveis, por isso, os fabricantes foram autorizados
a desenvolver dispositivos hbridos - que operem nas duas redes - o que permite a integracao de
uma nova rede Insteon com uma rede X10 j a instalada.
O Insteon resolveu varios dos problemas existentes no X10, porem, por utilizar a rede
el etrica para a transmissao de comandos os problemas decorridos dessa utilizacao tambem
encontram-se nele. Mesmo com a utilizacao de dois meios de transmissao evitando a perda
das mensagens devido a atenuacoes ou rudos na rede, nem todos os dispositivos presentes no
mercado tem a capacidade de utilizar os dois meios.
2.1 Automacao Residencial 21
iHome
Desenvolvido pela IHC Technologies2, o iHome e uma solucao para automacao residen-
cial composta pelo iHomeClub e por hardwares, que controlarao os eletroeletronicos, tambem
desenvolvidos pela IHC. O iHomeClub e o aplicativo utilizado como interface de controle e
foi desenvolvido para dispositivos moveis que rodem o sistema operacional iOS3 como iPhone,
iPod Touch e iPad.
2.1.3 Z-Wave
No Z-Wave os dados sao transmitidos a uma taxa de 40 Kbps - 9,6 Kbps nos dispositivos
antigos - utilizando a banda ISM de 902 a 928 Mhz. Na comunicacao entre os dispositivos da
rede, o raio de alcance das mensagens pode chegar a 30 metros. Para evitar colisoes no meio
onde as mensagens sao transmitidas, o Z-Wave utiliza uma solucao bastante simples, quando
um dispositivos quer enviar uma mensagem pela rede ele primeira escuta o meio e caso ele
esteja ocupado espera um tempo aleatorio para tentar mandar a mensagem novamente, se o
meio estiver ocioso entao a envia.
2
http://www.ihclub.com.br
3http://www.apple.com/ios
2.1 Automacao Residencial 22
Numa rede Z-Wave podem haver 232 dispositivos ativos na rede, o que pode ser pouco
dependendo daresidenciaedacomplexidadedo sistemaem queforem instalados. Paradiminuir
essa limitacao foi includo no protocolo uma funcionalidade bem interessante que sao os nos
virtuais. Um dispositivo Z-Wave com a funcionalidade de controle pode servir como ponte
para varios outros dispositivos. O interessante disso e que esses dispositivos podem pertencer a
outrostiposderedecomo TCP/IPeX10, eparao restantedaredeserao vistoscomo dispositivos
Z-Wave. Essa funcionalidade permite um numero acima de 125 nos virtuais na rede Z-Wave e
possibilita a integracao do protocolo com sistemas pre-instalados numa residencia.
Os dispositivos na rede Z-Wave podem rotear mensagens formando uma rede em malha
o que resulta num aumento do alcance de suas transmissoes. As mensagens enviadas podem
carregar no maximo 64 bytes de informacao, al em disso, quando um dispositivo recebe uma
mensagem ele envia para a origem uma mensagem do tipo acknowledge para confirmar o rece-
bimento com sucesso. Para a protecao contra rudos ou interferencias no meio, as mensagens
enviadas contem um campo que guarda um valor de checksum para que o dispositivo de destino
possa verificar a integridade das informacoes recebidas. Quando uma mensagem e enviada e
nao e recebida uma confirmacao de recebimento ou quando e identificado um erro durante a
verificacao do valor de checksum, e feita uma retransmissao dessa mensagem.
M odest Solution
A empresa Modest Solution4 dispoe de uma solucao para automacao residencial onde e
possvel controlar cameras, iluminacao, climatizacao, sonorizacao e eletroeletronicos como te-
4http://www.modestsolution.com.br
2.1 Automacao Residencial 23
levisores e home theaters. Para a comunicacao das interfaces de controle e dos dispositivos que
controlarao os eletros da casa e utilizado o protocolo Z-Wave para residencias j a construdas e
cabeamento estruturado para residencias ainda em fase de projeto.
Nesse sistema tambem ha a opcao da criacao de cenarios. Esses cenarios permitem que
diferentes tipos de dispositivos tais como, l ampadas, televisores e persianas, sejam controlados
na mesma tela da interface de controle. Um exemplo dessa funcionalidade seria a criacao de
cenarios especficos para cada comodo da residencia.
2.1.4 ZigBee
Um grupo de varias empresas entre elas Philips, Texas Instruments, Intel, Cisco e AT& T
formam a ZigBee Alliance5. Esse grupo desenvolveu o ZigBee (ZIGBEE ALLIANCE, 2005),
um protocolo criado para sistemas sem fio especficos, que nao necessitem de altas taxas de
transmissao tais como sistemas de controle e automacao. O ZigBee foi construdo sobre o
padrao IEEE 802.15.4 (IEEE, 2006) que define as redes pessoais sem fio com baixa taxa de
transmissao, e por isso produtos de diferentes fabricantes sao mais compatveis entre si do que
em outros protocolos.
O ZigBee utiliza as bandas ISM de 868 e 915 Mhz al em da banda de 2,4 Ghz, para a
transmissao dos dados que pode chegar a taxa de 250 Kbps. O alcance dessas transmissoes
atinge em media 50 metros dependendo do ambiente onde e realizada e dos dispositivos utiliza-
dos. Porem, e possvel estender esse alcance configurando os nos da rede ZigBee para atuarem
como roteadores. Nessa configuracao as mensagens podem ser encaminhadas por diversos nos
ate chegarem ao destino.
Para a transmissao das mensagens e feito uso do protocolo Carrier Sense Multiple Ac-
cess With Collision Avoidance (CSMA/CA), que escuta o meio antes de enviar a mensagem,
e caso ele esteja ocupado, toma medidas para evitar colisoes na rede. Outra medida tomada
e a utilizacao da tecnica Direct Sequence Spread Spectrum (DSSS) para alargar o espectro de
frequencias do sinal e, consequentemente, aumentar a imunidade dele a rudos.
O protocolo ZigBee suporta no maximo 65.536 redes coabitando a mesma area. Ele ainda
5http://www.zigbee.org
2.1 Automacao Residencial 24
preve dois tamanhos para enderecos, os mais curtos de 16 bits - para reduzir o tamanho do
pacote - que possibilitam a quantidade de 65.536 enderecos unicos na rede, e os de 64 bits que
possibilitam mais de 18x1018 de enderecos. Os enderecos dos modulos ZigBee vem gravados
desde a sua fabricacao e nao podem ser alterados.
Control4
O usuario pode utilizar como interface de controle paineis com telas sensveis ao toque,
controles remotos convencionais e ainda pode utilizar aplicativos disponveis para dispositivos
moveis rodando iOS e tambem para computadores pessoais e laptops. Os dispositivos que con-
trolam os eletros utilizam a rede ZigBee no envio dos comandos, j a as interfaces de controle
utilizam a rede Wi-Fi, com excecao dos controles remotos convencionais que tambem utili-
zam ZigBee. Para a comunicacao entre as interfaces de controle e os dispositivos, a Control4
desenvolveu um equipamento denominado Controller que integra os dois tipos de rede.
Essa solucao tambem disponibiliza o Composer Home Edition, um software para compu-
tadores pessoais que permite, entre outras coisas, a criacao de cenarios personalizados para o
controle dos dispositivos e tambem o agendamento de eventos como acendimento de l ampadas
e a mudanca de temperatura dos equipamentos de ar-condicionado, em horarios especficos.
interface de controle.
E possvel perceber queo X10, mesmo tendo acaractersticade ser utilizado diretamentena
rede el etricada residencia, e bastante simples e nao possibilita aformacao de topologias derede
mais complexas ou mesmo possui recursos de seguranca. Em contrapartida, o ZigBee se mostra
o protocolo mais completo, dos apresentados na tabela, possibilitando diversas topologias e
bandas para transmissao, al em de possuir funcionalidades sofisticadas de seguranca e economia
de energia.
Com a popularizacao das redes sem fio em ambientes comerciais e residenciais, onde um
longo alcance e uma alta taxade transferencia de dados sao caractersticas desej aveis, tornou-se
necessario o desenvolvimento de uma tecnologia voltada para redes especficas, como as in-
dustriais e de automacao. Essas redes nao necessitam de grandes taxas de transmissao, porem,
elas requerem dispositivos que tenham um baixo consumo de energia. Por essa razao foi de-
senvolvido o padrao IEEE 802.15.4. Esse padrao define a Low-Rate Wireless Personal Area
Network (LR-WPAN) e pode ser aplicado em sistemas de automacao industrial e residencial,
militares, de monitoramento sem fio, entre outros.
2.2 Padr ao IEEE 802.15.4 e ZigBee 26
No 802.15.4 sao utilizadas as bandas ISM de 868 Mhz (Europa somente), 902 Mhz e 2,4
Ghz para as transmissoes de dados. Na Banda de 868 Mhz e utilizado apenas um canal de
transmissao e consegue-se taxas de no maximo 40 Kbps, na banda de 902 Mhz sao utilizados
ate 8 canais que possibilitam taxas de ate 40 Kbps, j a na banda de 2,4 Ghz sao dispostos 16
canais e a taxa maxima salta para 250 Kbps. Quando se utiliza bandas com varios canais, os
dispositivos que controlam a rede podem ser configurados para escolher automaticamente o
canal que estiver ocioso, isso permite que possam coexistir varias redes sem fio numa mesma
area.
Numa rede 802.15.4 existem dois tipos de dispositivos: os Full Function Devices (FFD)
e os Reduced Function Devices (RFD). Os FFDs sao dispositivos que podem se comunicar
com qualquer outro tipo de dispositivo, ou seja, FFDs e RFDs. Esses dispositivos podem ainda
exercer funcoes de controle e gerenciamento da rede. Em contrapartida, os RFDs podem se
comunicar apenas com os FFDs e nao exercem quaisquer funcoes extras na rede.
esse endereco de 64 bits para descobrir o endereco mais curto atual do dispositivo de destino e,
assim, evitar perdas de pacotes.
2.2.1 ZigBee
O padrao IEEE 802.15.4 define as camadas Physical Layer (PHY) e Medium Access Con-
trol Layer (MAC Layer) para as LR-WPANs, entretanto, as camadas superiores precisam ser
definidas pelas especificacoes que utilizarem essa base. O ZigBee e uma delas, ele utiliza a
base definida pelo 802.15.4 e adiciona outras duas camadas, as camadas de rede e de aplicacao
a qual pertence a sub-camada de suporte a aplicacao, como visto na Figura 2.6.
Numa rede ZigBee um dispositivos pode ter a funcao de roteador, coordenador ou pontos
finais. Os roteadores sao dispositivos montados sobre a arquitetura FFD do 802.15.4, eles po-
dem enviar, receber e encaminhar mensagens na rede. Em uma rede ZigBee sempre deve haver
um unico roteador com funcao de coordenador, e ele quem inicia e gerencia a rede. Ja os pon-
tos finais sao projetados sobre a arquitetura RFD, eles sao as terminacoes da rede, por isso, so
enviam e recebem mensagens.
Os pontos finais nao necessitam estar o tempo todo funcionando, eles podem entrar em
modo de hibernacao, fazendo-os ficar parcialmente desligados, e de tempos em tempos acordar
para se comunicar na rede. Operando nesse modo, eles consomem pouca energia podendo ser
alimentados, inclusive, por baterias durante meses e ate anos. Esse baixo consumo de energia
2.2 Padr ao IEEE 802.15.4 e ZigBee 28
torna o ZigBee mais apropriado para sistemas de automacao se comparado a outras tecnologias
mais populares de rede sem fio como o Wi-Fi (IEEE, 2007).
Segur anca
Para garantir a confidencialidade das informacoes contidas nos pacotes, o ZigBee utiliza
criptografia. Essa confidencialidade, al em de garantir que um intruso nao tenha acesso a essas
informacoes, tem que garantir tambem que ele nao consiga acessar nenhuma parte delas. A
criptografia das mensagens no ZigBee e feita de modo simetrico, ou seja, os dispositivos de
origem e destino utilizam a mesma chave para criptografar e descriptografar as mensagens.
Para isso e utilizado o padrao AES (DAEMEN; RIJMEN, 2002) com chaves de 128 bits. Uma
unica chave pode ser compartilhada por todos os nos da rede, ou ainda, pode utilizar-se uma
chave distinta para cada par de nos que se comunicam.
Ataques de repeticao sao feitos repetindo-se mensagensdeum no valido narede sem altera-
las. Um exemplo seria a captura de uma mensagem de pagamento de uma pessoa destinada a
uma instituicao financeira. Quem capturou essa mensagem poderia enviar ela repetidas vezes,
e entao seriam efetuados diversos pagamentos. Para evitar isso, os pacotes da rede ZigBee
tem um campo onde e inserido um numero de sequencia, como visto na Figura 2.5, e caso um
dispositivo receba um pacote com o mesmo numero de sequencia de uma mensagem recebida
anteriormente, esse pacote sera descartado.
2.3 Arduino 30
2.3 Ar duino
O kit padrao do Arduino e composto por uma placa de silcio na qual e soldado um micro-
controlador da famlia Atmega8, que contem o codigo a ser executado, alem de conectores para
as portas do microcontrolador e para conexoes externas (p. ex. USB). Esse microcontrolador
contem portas de entrada e sada digitais, portas para comunicacao serial, portas de entrada
anal ogicas e de sada PWM (Power Wave Modulation), onde e possvel controlar o nvel de
tensao da sada, entre outras, como mostra a Figura 2.8. Nessas portas de entrada e sada e
possvel conectar botoes, sensores, LEDs ou quaisquer outros dispositivos el etricos, tornando
inumeras as possibilidades de uso para o kit.
A expansao das funcionalidades do kit Arduino pode ser feita com a utilizacao de shields,
os quais, consistem de placas que devem ser acopladas aos kits e podem conter, entre outros
dispositivos, interfaces Ethernet ou Wi-Fi para se comunicarem pela rede IP, ou mesmo trans-
missores ZigBee o que tornaria esses kits nos dessa rede.
Para permitir que kits Arduino se comuniquem numa rede ZigBee podem ser utilizados os
7http://www.arduino.cc
8http://www.atmel.com
2.3 Arduino 31
modulos XBee (DIGI INTERNATIONAL INC., 2009). Esses modulos devem ser acoplados
a um XBee Shield9 e sao configuraveis para exercerem funcionalidades j a mencionadas na
Secao 2.2.
A Figura 2.9 mostra um dos exemplos de codigo disponveis na IDE. Apos ser compilado
e instalado no microcontrolador, ele faz com que o mesmo acende e apague um LED, que
deve estar conectado na porta digital. Todos os programas escritos para a plataforma Arduino
deverao conter as funcoes setup() e loop(). A funcao setup() e sempre chamada no incio da
execucao, antes de qualquer outra e pode ser utilizada para inicializar vari aveis e configurar
as portas do microcontrolador. A funcao loop() e chamada em seguida, ela e repetida infinitas
vezes, portanto, e nela que devera ficar toda a l ogica do programa. Outras funcoes podem ser
criadas, porem, elas so poderao ser chamadas de dentro das funcoes setup() ou loop().
1 void setup() {
2
8 void loop() {
9
10 digitalWrite(13, HIGH); // acende o LED
11 delay(1000); // espera por um segundo
12 digitalWrite(13, LOW); // apaga o LED
13 delay(1000); // espera por um segundo
14 }
9http://www.libelium.com
10http://wiring.org.co
2.4 XBee 32
2.4 XBee
Os modulos XBee foram desenvolvidos pela Digi International 11 - membro da ZigBee Al-
liance - com o intuito de permitir que dispositivos eletronicos de todos os tipos se comuniquem
pela rede ZigBee. Esses modulos consistem em pequenas placas onde estao presentes transmis-
soresquesecomunicam em redesZigBeeutilizando radiofrequencia. Asinformacoesrecebidas
pelo radio podem, inclusive, ser passadas para o dispositivo que faz uso do modulo atraves da
comunicacao serial existente entre eles.
Os modulos XBee podem operar tanto no modo AT quando no modo Application Program-
ming Interface (API). No modo AT a comunicacao com os outros modulos e feita de forma
transparente, ou seja, os dados sao enviados como se os dois modulos - transmissor e receptor
- estivessem conectados por uma interface serial. Ja no modo API os dados sao enviados em
forma de pacote que, al em dos dados, carregam informacoes como endereco de origem e de
destino.
Para a configuracao dos modulos XBee pode ser feito uso do aplicativo X-CTU12, tambem
desenvolvido pela Digi. Inicialmente e necessario escolher as configuracoes da comunicacao
serial como aportaem queo modulo estaconectado eataxadecomunicacao, quedeveser igual
a utilizada pelo modulo (Figura 2.10(a)). Concluindo as configuracoes iniciais j a e possvel
configurar o modulo no menu, mostrado na Figura 2.10(b), com as caractersticas desejadas,
tais como o identificador da rede, seu endereco, o canal utilizado na comunicacao, opcoes de
criptografia, entre outras.
2.5 Android
ALLIANCE, 2008), um sistema operacional de codigo aberto, e por isso, pode ser utilizado por
qualquer fabricante de dispositivos moveis.
Como mostra a Figura 2.11, na base da arquitetura do Android encontra-se um Kernel Li-
nux. Sobre ele estao as bibliotecas C/C++ de varios componentes do sistema como a biblioteca
de mdia, a do banco de dados SQLite13, a de gerenciamento da tela, entre outras. Sobre o Ker-
nel tambem roda a Dalvik, uma maquina virtual Java otimizada para dispositivos moveis que
possui recursos para economia de memoria e implementa a compilacao JIT (Just In Time) para
economia de processamento. Rodando sobre a maquina virtual e fazendo uso das bibliotecas
estao as aplicacoes do sistema e as aplicacoes do usuario.
das interfaces graficas pode ser utilizada tambem a linguagem Extensible Markup Language
(XML), deixando o codigo Java apenas com a l ogica de programacao. Quando se utiliza XML
na criacao da interface grafica, e necessario atribuir aos objetos nesses arquivos um valor de
identificacao para que eles possam ser convertidos para objetos Java, como e mostrado na Fi-
gura 2.12.
3 DroidLar
3.1 Arquitetur a
Nesse trabalho foram utilizados kits Arduino para a prototipagem dos controladores de
dispositivos, devido as suas caractersticas apresentadas na Secao 2.3. A Figura 3.2 e uma
3.1 Arquitetura 36
fotografia desses kits, nela e possvel ver que em cada matriz de contato estao dispostos tres
LEDs e tres botoes, al em defios conectados as portas do microcontrolador presente no Arduino.
Os LEDs fazem o papel das l ampadas controladas de uma residencia. Estes estao conectados
nas sadas Pulse Width Modulation (PWM) do microcontrolador. Os botoes estao conectados
nas entradas digitais e fazem a funcao de interruptores das l ampadas (Figura 3.3).
Para a comunicacao com o SAR pelo protocolo ZigBee (ZIGBEE ALLIANCE, 2005) fo-
ram acoplados aos kits Arduino modulos XBee1 utilizando shields. Esses modulos recebem as
mensagens pela rede sem fio e as transferem para o microcontrolador utilizando uma conexao
serial. Os modulos XBee foram configurados em modo API (DIGI INTERNATIONAL INC.,
2009) e, por isso, recebem as mensagens em forma de pacote. No microcontrolador e feito
o mapeamento desses pacotes para tornar as suas informacoes legveis e entao, executar um
1http://www.digi.com
3.1 Arquitetura 37
determinado procedimento.
Os kits Arduino possuem apenas duas funcoes: (1) executar efetivamente os comandos
recebidosno eletroeletronico conectado aumadesuasportas; (2) enviar ao SAR umamensagem
contendo o estado dos dispositivos que controla, por exemplo, a quantidade de dispositivos, o
tipo de dispositivo e se estao ligados ou nao. A primeira e executada toda vez que e recebida
uma mensagem do SAR com a requisicao do comando, j a a segunda, e executada sempre que o
dispositivo controlador e ligado e, tambem, quando e recebida uma mensagem de varredura do
SAR.
Na escrita do codigo do Arduino, foi utilizada uma API, implementada em C/C++, para
facilitar a manipulacao das mensagens ZigBee 2. Ela simplifica o processo de montagem dos
pacotes enviados e o mapeamento dos pacotes recebidos. Al em disso, nessa API estao contidas
instrucoes que possibilitam facilmente a obtencao de campos importantes dos pacotes como a
informacao recebida e o endereco de origem.
Para a configuracao dos modulos XBee foi utilizado o aplicativo X-CTU3. Foi escolhido
54 Mbytes para o tamanho maximo do conteudo dos pacotes. A criptografia foi desabilitada e,
por isso, nao sera utilizado espaco extra dos pacotes. A comunicacao serial entre o modulo e o
microcontrolador, foi configurada com a taxa de 9,6 Kbps e o sinal de radiofrequencia para ser
transmitido com aproximadamente 3 dBm de potencia.
3.1.2 SAR
O SAR e o servidor central do DroidLar. Ele e capaz decomunicar-se tanto pelas redesZig-
Beequanto pelasredesIP. Isso sedeveao fato deter sido utilizado redesZigBeenacomunicacao
2http://code.google.com/p/xbee-arduino
3http://www.digi.com/support/kbase/kbaseresultdetl.jsp?kb=125
3.1 Arquitetura 38
dos controladores de dispositivos, por causa das caractersticas j a descritas na Secao 2.2, e os
telefones inteligentes presentes no mercado nao poderem se comunicar nessas redes, sendo ca-
pazes de se comunicar apenas nas redes IP. Por essa razao, cabe ao SAR a transferencia das
mensagens entre essas duas redes.
Aplicacoes servidoras de grande porte e que necessitem que tarefas complexas sejam exe-
cutadas em segundo plano, podem ser implementadas fazendo uso de aplicacoes Web. Essas
aplicacoes funcionam como extensoes de servidores Web e, por isso, procedimentos como o
controle de acessos, manutencao de sessoes das conexoes e manipulacao de mensagens de pro-
tocolos da camada de aplicacao, sao transparentes ao desenvolvedor durante a escrita destas
aplicacoes.
Uma das tecnologias para aplicacoes Web testadas nesse trabalho foram os Servicos Web.
Eles tem como principal caracterstica a comunicacao multiplataforma, ou seja, servicos ope-
rando em sistemas distintos podem comunicar-se diretamente. Essa transparencia e conseguida
pelo fato dos dados, de ambos os lados, serem enviados por meio de XML. A utilizacao de
XML implica num numero maior de bytes na troca de mensagens se comparada a transmissao
de mensagens contendo informacao pura. Outra caracterstica dos Servicos Web e que eles nao
guardam o estado das vari aveis do seu codigo, sendo necessaria a utilizacao de servicos adi-
cionais, como banco de dados, para isso, o que pode ser um incomodo na fase inicial de um
3.1 Arquitetura 39
projeto.
Para a implementacao do SAR foi utilizado um Servlet. Os Servlets sao programas escritos
em Java utilizados em aplicacoes Web. Eles tem o acesso direto as requisicoes HTTP recebidas
pelo servidor Web, portanto, podem interagir com qualquer aplicacao clientequetambem utilize
HTTP para se comunicar. Diferentemente dos servicos Web, eles consistem em classes Java
instanciadas uma unica vez - quando o servidor Web e iniciado - o que os permite memorizar as
vari aveis dos seus codigos e mante-las durante todo o tempo de execucao.
A aplicacao Web na qual consiste o SAR deve rodar sobre um servidor Web que suporte
esse tipo de tecnologia e, consequentemente, atue como uma interface de acesso a rede externa
para esta. No projeto DroidLar foi utilizado o servidor de aplicacao GlassFish4 porem, outros
servidores de aplicacao que tambem oferecem esse tipo de suporte poderiam ser utilizados,
como por exemplo o Apache Tomcat5.
Para a escrita da l ogica para a comunicacao com os kits Arduino pela rede ZigBee, foi
utilizada uma API 6 em Java. Essa API, assim como a utilizada para a programacao dos Ar-
duinos, possibilita de maneira simples acessar os dados dos pacotes recebidos tais como seu
endereco de origem, a funcao desse dispositivo na rede ZigBee (se e roteador ou end-device)
e as informacoes, propriamente ditas. Al em disso, ele possibilita o envio de comandos AT
ao modulo conectado ao SAR, o que possibilita o acesso por codigo das configuracoes desse
modulo.
O SAR possui a funcionalidade de executar varreduras na rede ZigBee. Essa acao e tomada
toda vez em que ele recebe uma requisicao do cliente Android. O SAR entao envia uma men-
sagem para todos os dispositivos da rede ZigBee e os que estiverem ativos respondem com suas
informacoes e, assim, e possvel atualizar as listas com os dados conhecidos pelo servidor.
O SAR pode, ainda, receber tanto mensagens de controle quanto mensagens de gerencia-
mento. As mensagens de controle sao enderecadas aos controladores de dispositivos para to-
marem acoes como a de acender parcialmente determinada l ampada, tendo o SAR a funcao de
recebe-las da rede IP e transferi-las para a rede ZigBee e vice-versa. Ja as mensagens de geren-
ciamento sao trocadas apenas entre o SAR e os clientes Android e podem ser para autenticacao
ou edicao de perfis.
4http://glassfish.java.net
5http://tomcat.apache.org
6http://code.google.com/p/xbee-api
3.1 Arquitetura 40
Com a popularizacao dos telefones inteligentes foi possvel a criacao de interfaces de con-
trole para sistemas de automacao residencial mais sofisticadas e com uma usabilidade maior
para o usuario. Por isso, no DroidLar foi utilizado como interface de controle uma aplicacao
disponvel para telefone inteligentes que rodem Android.
Essa aplicacao atua como um cliente enviando requisicoes ao servidor, para executar suas
funcoes. Ela utiliza as conexoes de rede disponveis em telefones Android como 3G e Wi-Fi,
paraseconectar aumaredeIP. Quando estaconectado aumaredeIP, aaplicacao podeenviar as
mensagens com os comandos ao SAR utilizando o protocolo HTTP, como visto na Secao 3.1.2.
A aplicacao cliente nao necessita estar o tempo todo conectada ao SAR, mas somente quando
for enviar algum comando.
Quando o usuario acessa a aplicacao e exibida a ele a tela mostrada na Figura 3.4(a). Nela
estao presentestodas as funcoes queo usuario podeexecutar no sistema. Paraexecutar qualquer
funcionalidade no sistema, o usuario precisa estar autenticado no servidor. Por isso, na primeira
vez que o usuario acessa o aplicativo, a tela mostrada e a de configuracoes (Figura 3.4(b)).
Nessa tela o usuario deve inserir seus dados de identificacao e senha, al em do endereco IP e
porta utilizados pelo SAR. Caso queira fazer alteracoes nesses dados, o usuario pode clicar no
botao com um cone de engrenagem na tela inicial.
A Figura 3.5(a) demonstra uma tela para o controle de l ampadas. Nela o usuario pode
acender ou apagar quaisquer l ampadas da lista apenas clicando no seu cone, ou pode confi-
gura-las com um nvel intermedi ario de luminosidade arrastando o dedo na barra horizontal
correspondente a essa l ampada.
3.2 Protocolo
Para a comunicacao entre as tres partes do DroidLar, foi necessaria a criacao de um pro-
tocolo na camada de aplicacao. As mensagens desse protocolo podem ter destinos diferentes
dependendo do seu tipo. Como visto anteriormente, elas sao transmitidas pelo clienteAndroid e
recebidas pelo SAR utilizando o protocolo HTTP, por isso, os dados sao passados como strings.
As mensagens entre o SAR e os controladores, que trafegam pela rede ZigBee, sao enviadas em
forma de valores do tipo inteiro. Para evitar erros, os campos das mensagens que passarem
pelas duas redes foram padronizados com valores numericos.
As mensagens trocadas entre o cliente Android e o SAR servem para configurar as funci-
onalidades extras do DroidLar. Funcoes de seguranca, agendamento de perfis e configuracoes
dos dispositivos, agregam recursos ao sistema e aumentam as possibilidades de uso do mesmo,
al em do simples acender e apagar de l ampadas. Com excecao das mensagens de autenticacao,
essas mensagens sao divididas nos seguintes campos: Tipo, Endereco, Conteudo, e Opcional
(Figura 3.6). Porem, para as mensagens a seguir (exceto a de autenticacao) serao utilizados
apenas os campos Tipo e Conteudo.
Autenticacao
Quando o aplicativo cliente deseja se conectar no sistema, ele simplesmente envia uma
mensagem MSG AUTENTICACAO contendo seus dados. Ao receber essamensagem o SAR ira
verificar se esses dados pertencem a algum usuario j a cadastrado no sistema. Se ele encontrar,
o usuario recebera uma mensagem de confirmacao, apenas com o campo Tipo preenchido com
3.2 Protocolo 43
a constante MSG SUCESSO, indicando que esta apto a operar as funcoes do sistema, caso
contrario, recebera uma mensagem de erro, contendo apenas a constante MSG ERRO como
tipo (Figura 3.8).
Requisicao de Dispositivos
Para montar a lista de dispositivos que serao controlados ou mesmo adicionados em algum
perfil, o cliente Android utiliza informacoes contidas no SAR, ou seja, elas nao ficam armaze-
nadas no dispositivo movel, sempre que for necessario o cliente fara uma requisicao ao SAR
dessa lista contendo as informacoes dos dispositivos.
Quando quiser enviar suas configuracoes de perfis ao SAR o usuario deve enviar uma men-
sagem do tipo MSG PERFIL inserindo no campo Conteudo uma string formatada contendo
essas configuracoes (Figura 3.12).
Configur ar Nomes
A configuracao dos nomes pode ser efetuada apenas por usuarios que contenham permissao
de superusuario. Para alterar os nomes dos dispositivos configurados na aplicacao Android
no SAR, e enviada a ele uma mensagem do tipo MSG SET NOME com o campo Conteudo
3.2 Protocolo 45
preenchido com uma string contendo os novos nomes dos dispositivos. Em caso de sucesso,
sera recebida uma mensagem de confirmacao do tipo MSG SUCESSO, caso contrario, se o
usuario autenticado nao possuir privil egios de superusuario, entao, sera recebida a mensagem
do tipo MSG ERRO (Figura 3.14).
Outra funcionalidade configurada apenas por superusuarios e a varredura peri odica. Para
isso, eenviadaumamensagem do tipo SET VARREDURA inserindo no campo Conteudo um va-
3.2 Protocolo 46
lor correspondente ao intervalo de tempo entre as varreduras. Como resposta sera recebida uma
mensagem do tipo MSG SUCESSO, se o usuario possuir privil egios de superusuario, senao,
sera recebida uma mensagem do tipo MSG ERRO (Figura 3.15).
Controle
Var redur a
A mensagem de varredura tem como objetivo recolher informacoes dos controladores ati-
vos no sistema de forma automatica. Para isso, e necessario o envio de uma mensagem do tipo
MSG VARREDURA. Quando essa mensagem e recebida pelo SAR, o mesmo envia uma men-
sagem, do tipo REQUEST INFO, em broadcast pela rede ZigBee requisitando as informacoes
dos dispositivos. Os controladores que estiverem ativos na rede responderao ao SAR enviando
mensagens do tipo RESPONSE INFO. O servidor utilizara essas mensagens para atualizar suas
listascom asinformacoesdoscontroladores. Ao invesdessasinformacoes, o clienteAndroid re-
3.2 Protocolo 47
cebera como resposta do SAR apenas uma mensagem de confirmacao, j a que essas informacoes
recebidas serao requisitadas posteriormente (Figura 3.17).
Sempre que um controlador de dispositivos e ligado ele tenta se conectar na rede ZigBee e
enviar suas configuracoes ao SAR tais como seu endereco, quantos e que tipo de dispositivos
elecontrola. Paraisso, o controlador enviauma mensagem do tipo RESPONSE INFO, amesma
que ele envia durante a varredura, para o endereco zero, correspondente ao coordenador da rede
ZigBee, utilizado pelo modulo XBee do SAR (Figura 3.18).
Atualizacao de Estado
contendo esse novo estado do eletroeletronico. Essa mensagem e do tipo UPDATE ESTADO
e serve para manter as interfaces de controles sempre atualizadas, mesmo quando ocorrerem
alteracoes externas (Figura 3.19).
Autenticar no sistema
O usuario abre a aplicacao e seleciona a opcao de perfis, entao, e exibida a ele a interface
para o gerenciamento de perfis. Quando a interface e exibida a aplicacao envia, automatica-
mente, ao servidor uma mensagem para verificar se o mesmo contem uma lista de perfis mais
atual. Caso exista, sera requisitado ao usuario escolher entre sobrescrever os seus perfis com os
do servidor, ou sobrescrever os do servidor com os seus. Depois de feita a verificacao, e exibida
3.3 Casos de Uso 50
O usuario esta na interface de gerenciamento de perfis, apos ter sincronizado seus perfis
com o servidor. Ele abre o menu de opcoes da aplicacao e seleciona a opcao Criar Perfil . E
exibida a ele uma interface onde deve ser inserido um nome para o perfil e, tambem, deve ser
selecionado os dias da semana ou do mes que esse perfil deve ser executado. Por fim, ele deve
confirmar a criacao do perfil clicando no botao Criar . Em seguida ele voltara para a interface
de configuracao de perfis. Para salvar as alteracoes dos perfis no servidor, o usuario deve abrir
o menu de opcoes e selecionar a opcao Salvar Perfis .
O usuario esta na interface de gerenciamento de perfis, apos ter sincronizado seus perfis
com o servidor. Ele abre o menu de contexto de um determinado perfil da lista e seleciona
a opcao Remover Perfil . Entao, quando ele for requisitado se deseja confirmar a exclusao
do perfil deve responder que sim. Em seguida ele voltara para a interface de configuracao de
perfis. Para salvar as alteracoes dos perfis no servidor, o usuario deve abrir o menu de opcoes e
selecionar a opcao Salvar Perfis .
Adicionar dispositivos
O usuario esta na interface de gerenciamento de perfis, apos ter sincronizado seus perfis
com o servidor. Ele abre o menu de contexto de um determinado perfil da lista e seleciona
a opcao Adicionar Dispositivo . Sera exibida a ele uma interface onde e possvel escolher o
tipo de dispositivo que sera adicionado, a lista de dispositivos disponveis do tipo escolhido
anteriormente, os horario iniciais e finais para a execucao desse dispositivo no perfil ao qual
pertence, juntamente com os valores inicial e final para o estado desse dispositivo. Depois de
configurar essas informacoes o usuario deve confirmar o salvamento delas clicando no botao
Salvar . Em seguida ele voltara para a interface de configuracao de perfis. Para salvar as
3.3 Casos de Uso 51
alteracoes dos perfis no servidor, o usuario deve abrir o menu de opcoes e selecionar a opcao
Salvar Perfis .
Remover dispositivos
Alter ar dispositivos
O usuario esta na interface de gerenciamento de perfis, apos ter sincronizado seus perfis
com o servidor. Ele abre o menu de contexto de um determinado dispositivo da lista e seleciona
a opcao Editar Dispositivo. Sera exibida uma interface com o tipo, os horarios e os valores
iniciais e finais configurados nesse dispositivo. O usuario tem apenas que alterar os dados
que quiser e confirmar o salvamento das informacoes clicando no botao Salvar . Em seguida
ele voltara para a interface de configuracao de perfis. Para salvar as alteracoes dos perfis no
servidor, o usuario deve abrir o menu de opcoes e selecionar a opcao Salvar Perfis .
O usuario deve abrir o menu de opcoes na interface inicial da aplicacao eselecionar a opcao
Fazer Varredura . O aplicativo mandara a mensagem de varredura ao servidor que respondera
com uma mensagem de confirmacao do recebimento da mesma, sendo esta confirmacao visvel
ao usuario em forma de um aviso na tela.
O usuario deve abrir o menu de opcoes na interface inicial da aplicacao eselecionar a opcao
3.3 Casos de Uso 52
Varredura Peri odica . Em seguida, sera exibida uma interface onde o usuario pode escolher o
tempo de intervalo entre as varreduras. O usuario pode ativar ou desativar a varredura peri odica
no servidor clicando nos botoes Ativar ou Desativar .
53
4 Conclusoes
Nesse trabalho foi apresentado o sistema de automacao residencial DroidLar. Ele permite
queum aplicativo rodando em celularesAndroid controleoseletroeletronicosdeumaresidencia
e possibilita tambem, o agendamento de comandos com a utilizacao de perfis. Esse sistema e
aberto, e seu codigo pode ser obtido em http://goo.gl/VZUYF.
Essas caractersticas do ZigBee foram decisivas na sua escolha como a tecnologia para
a comunicacao dos controladores de dispositivos. Para a prototipagem desses controladores
foram utilizados kits Arduino1. Esses kits fazem parte de uma plataforma aberta de hardware
que visa o desenvolvimento de uma ferramenta de f acil utilizacao ate mesmo para leigos. Para
esses kits se comunicarem na rede ZigBee foram acoplados a eles modulos XBee2.
fio como Wi-Fi (IEEE, 2007) e 3G, mas nao se comunicam em redes ZigBee, foi necessario o
desenvolvimento de um servidor centralizado na rede. O SAR tem como principal funcao trans-
ferir as mensagens vindas do cliente Android pela rede IP para os controladores de dispositivos
na rede ZigBee.
Esse trabalho tem o objetivo de ser o ponto de partida para a criacao de um sistema de
automacao residencial tao sofisticado quanto os presentes no mercado. Por se tratar de um
projeto de codigo aberto e que utiliza tecnologias abertas, sao inumeras as possibilidades de
adaptacoes, modificacoes e insercao de novos recursos.
Como trabalho futuro pode ser embarcado o SAR em um dispositivo micro controlado,
tornando o sistemamaiseconomico, pois, evitariaautilizacao deum computador pessoal ligado
constantemente. Al em disso, autilizacao deum dispositivo menor trariamobilidadeao servidor.
Outro trabalho futuro seria a expansao dos tipos de dispositivos que podem ser controlados
atraves da aplicacao Android, pois, atualmente apenas l ampadas sao suportadas. Esse processo
envolveria, al em da modificacao do codigo do cliente Android, a criacao de hardware extra
conectado aos controladores de dispositivos.
55
Lista de Abreviaturas
I P Internet Protocol
CA Corrente Alternada
RF Radiofrequencia