Successfully reported this slideshow.

Droidlar 2011

139 visualizações

Publicada em

Projeto que achei muito interessante!

Publicada em: Internet
  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

Droidlar 2011

  1. 1. DroidLar - Automação residencial através de um celular Android Michel Vinicius de Melo Euzébio∗ Sistemas de Telecomunicações, Instituto Federal de Santa Catarina michel.euzebio@gmail.com Emerson Ribeiro de Mello Doutor, Sistemas de Telecomunicações, Instituto Federal de Santa Catarina mello@ifsc.edu.br Resumo- Sistemas de automação residencial permitem que eletroeletrônicos de uma resi- dencia sejam controlados, inclusive, por interfaces Web. Os telefones inteligentes possuem configurações superiores aos celulares convencionais e permitem conexões em redes sem fio como 3G e Wi-Fi. O sistema operacional Android pode operar em diversos tipos de dis- positivos e possibilita a criação de aplicativos com alta complexidade. Kits Arduino podem ser usados em projetos para prototipagem de hardware e, se forem acoplados a estes mó- dulos XBee, podem se comunicar em redes ZigBee. Este trabalho apresenta o DroidLar, um sistema de automação residencial que permite enviar comandos aos eletroeletrônicos da residência através de um aplicativo rodando em celulares Android. Palavras-chave: Automação Residencial. Android. ZigBee. Arduino. Abstract- Home automation systems allow the control of electronics of a residence even by Web interfaces. The smartphones have superior settings compared to conventional mobile phones and they enable connections on wireless networks like 3G and Wi-Fi. The Android operating system can operates in various types of devices and allows creating high com- plexity applications. Arduino kits can be used in projects for hardware prototyping, and with coupling of XBee modules they can communicate in ZigBee networks. This paper presents the DroidLar, a home automation system that can send commands to electronics of the residence through an application running on Android phones. Keywords: Home automation. Android. ZigBee. Arduino. 1 Introdução Sistemas de automação residencial permitem aos usuários controlarem os eletroele- trônicos de sua residência como lâmpadas, televisores e home theaters, através de interfa- ces de controle. Sua proposta principal é trazer conforto e comodidade para as residências, porém, podem ser utilizados também para segurança, com a utilização de câmeras de vigi- lância e sensores de presença. Sistemas de automação residencial são tipicamente compostos por controladores de dispositivos, um servidor central e interfaces de controle. Os controladores de dispositivos ∗ Bolsista CNPq
  2. 2. são responsáveis por executar efetivamente os comandos nos eletroeletrônicos da residên- cia. Os servidores são responsáveis pelo envio das mensagens das interfaces de controle para os controladores de dispositivos. Por fim, as interfaces de controle podem ser repre- sentadas por painéis afixados em paredes ou mesmo em forma de páginas Web, que po- dem ser visualizadas, inclusive, em telefones celulares. Interagindo com essas interfaces o usuário consegue acionar determinado dispositivo ou executar determinada funcionalidade do sistema. Para o desenvolvimento em hardware é fundamental a realização de testes antes da fabricação do equipamento. Por isso, a plataforma Arduino 1 se mostra ideal no de- senvolvimento de dispositivos programáveis que tenham que exercer funções de controle, principalmente para prototipagem de equipamentos em fase de projetos. Nos sistemas de automação tem que haver uma tecnologia eficiente para a comuni- cação entre os dispositivos da rede. Pensando nisso foi criado o protocolo ZigBee (ZIGBEE ALLIANCE, 2005), ideal para sistemas de automação onde a taxa de transmissão de dados não é relevante mas sim o consumo de energia e possibilita a criação de uma malha de dispositivos onde todos podem se comunicar e encaminhar mensagens. Telefones celulares que sirvam apenas para realizar chamadas telefônicas estão cada vez mais perdendo espaço para dispositivos mais complexos que possibilitam acessar a Internet com altas taxas de velocidade e rodar aplicativos semelhantes aos utilizados em computadores pessoais. Esses dispositivos são denominados telefones inteligentes e tem características muito superiores ao celulares convencionais como por exemplo suporte à conexões 3G e Wi-Fi (IEEE, 2007), maior capacidade de processamento e memória, além de sistemas operacionais mais complexos. O Android (OPEN HANDSET ALLIANCE, 2008) é um sistema operacional para dis- positivos móveis desenvolvido pelo Google e outras empresas que juntas formam a Open Handset Alliance. Por se tratar de um projeto aberto e ter o apoio de várias fabricantes de dispositivos móveis, o Android está disponível em diversos tipos de dispositivos como tele- fones inteligentes e tablets, por exemplo. Ele foi projetado para tirar proveito das telas sen- síveis ao toque, da capacidade de processamento e grande conectividade dos dispositivos móveis atuais, e possibilitar a criação de aplicações tão complexas quanto as destinadas a computadores pessoais. Nesse trabalho é apresentado o DroidLar, um sistema de automação residencial com- pleto onde o usuário utiliza uma aplicação rodando em um celular Android como interface de controle. O DroidLar utiliza o protocolo ZigBee para a comunicação dos controladores de dispositivos. Nesse sistema podem ser controlados eletroeletrônicos, como lâmpadas, por uma rede IP local, ou em qualquer lugar do mundo pela Internet. O presente artigo está dividido nas seguintes sessões: a Sessão 2 abordará a uti- lização das redes ZigBee e suas características; a Sessão 3 tratará sobre o Arduino e sua facilidade de uso; na Sessão 4 será apresentado o sistema operacional para dispositi- vos móveis Android; a Sessão 5 descreve o DroidLar, o sistema de automação residencial resultante desse trabalho, sua arquitetura e funcionamento; e por fim, na Sessão 6 são apresentadas as conclusões e possíveis trabalhos futuros. 1 http://www.arduino.cc
  3. 3. 2 ZigBee A comunicação por redes sem fio surgiu como uma evolução à utilização de redes cabeadas. A mobilidade e a não necessidade de cabos de conexão foram fatores que contribuíram para sua grande popularização. Porém, ainda existia a necessidade de tecno- logias específicas para redes sem fio que não necessitassem de altas taxas de transmissão e que possibilitassem uma economia de energia nos transmissores. Motivado por essa ne- cessidade foi criado o protocolo ZigBee. Ele é um protocolo voltado para as redes pessoais sem fio de baixa taxa de transmissão (LR-WPAN) e, por isso, é ideal para aplicações que utilizem sensores, de automação, militares e de segurança. O ZigBee foi construído sobre a base descrita pelo padrão IEEE 802.15.4 (IEEE, 2006) - que define as WPANs - adicionando as camadas de rede (NWK), suporte à apli- cação (APS) e aplicação (AF) sobre as camadas física (PHY) e de controle de acesso ao meio (MAC) já existentes, como mostra a Figura 1. Essas camadas adicionais agregam funcionalidades ao protocolo como capacidade de roteamento e segurança ao conteúdo das mensagens, além de possibilitar que as fabricantes e os usuário implementem as suas próprias aplicações nos dispositivos que utilizem ZigBee. Aplicação (AF) Subcamada de Suporte a Aplicação (APS) Camada de Rede (NWK) Camada de Controle de Acesso ao Meio (MAC) Camada Física (PHY) IEEE 802.15.4 Plataforma ZigBee Aplicações do Usuário Figura 1 – Pilha do protocolo ZigBee. Os dispositivos ZigBee utilizam as faixas (Industrial, Scientific and Medical – ISM) de 868 e 915 Mhz além da faixa de 2,4 Ghz, para as transmissões de dados. A taxa dessas transmissões pode variar entre 20 e 250 Kbps e seu alcance pode chegar, em média, a 50 metros, dependendo do ambiente onde são realizadas as transmissões. Na rede ZigBee um dispositivo pode assumir três papéis: roteador, coordenador e end-device. Os roteadores são dispositivos que além de enviar e receber mensagens, po- dem encaminhar mensagens destinadas à outros dispositivos. Numa rede ZigBee sempre deve haver um único dispositivo roteador configurado como coordenador. Esses dispositi- vos tem as mesmas características dos roteadores, porém, exercem tarefas extras como o gerenciamento de inclusão/exclusão de dispositivos na rede. Já os end-devices são sempre a origem ou o destino das mensagens não podendo encaminhá-las. Os dispositivos de uma rede ZigBee podem ser dispostos para formas topologias em forma de estrela, árvore ou malha, como mostra a Figura 2. A topologia em árvore é for- mada por um dispositivo coordenador no centro e diversos end-devices, nessa formação todas as mensagens passarão pelo coordenador para chegar ao seu destino. A topolo- gia em árvore funciona como se fosse uma série de redes em forma de estrela interliga- das. Na topologia em malha os dispositivos do núcleo da rede têm a função de roteador
  4. 4. e com esta é possível alcançar longas distâncias nas transmissão das mensagens apenas encaminhando-as pelos dispositivo até que chegue ao seu destino. Essa capacidade de ex- tensão da rede torna o ZigBee vantajoso frente a outras tecnologias de transmissão sem fio que também possuem baixa taxa de transmissão como o Bluetooth (BLUETOOTH, 1998). Figura 2 – Topologias da rede ZigBee. O ZigBee possui diversas maneiras de garantir a segurança na troca de mensagens, entre elas está a criptografia, que tem como objetivo evitar que as informações transmi- tidas sejam legíveis a intrusos na rede. Outra característica interessante do ZigBee é a economia de energia diante da baixa taxa de transmissão aliada a capacidade dos disposi- tivos configurados como end-devices poderem hibernar por certos períodos de tempo. Tais características permitem que esses dispositivos sejam alimentados até por baterias. 3 Arduino Durante o período de desenvolvimento de projetos em hardware é fundamental a utilização de ferramentas que auxiliem nos testes e facilitem a construção desses sistemas. Com esse objetivo foi desenvolvido a plataforma Arduino. Ela consiste num kit que permite, com facilidade, a implementação de projetos que envolvam hardware e software. Essa plataforma é aberta e, por isso, qualquer fabricante pode desenvolver kits baseados no original. Esse kit Arduino é composto de uma placa onde estão conectados um microcon- trolador da Atmel2, responsável pela execução da logica programável, e diversos LEDs e botões conectados as suas portas analógicas e digitais, além de portas seriais, podendo estas configurações variarem de acordo com o modelo do kit. A indicação das portas do microcontrolador pode ser vista na Figura 3. 2 http://www.atmel.com
  5. 5. Figura 3 – elementos de um kit Arduino. Para a programação do microcontrolador presente no Arduino é utilizada a linguagem C, além de bibliotecas em C++. Para a escrita dos códigos pode ser utilizado o ambiente de desenvolvimento integrado (IDE) do Arduino. Essa IDE possui recursos para facilitar a implementação dos projetos no Arduino tais como diversos exemplos de códigos e uma ferramenta denominada Serial Monitor onde é possível visualizar os dados recebidos e, também, os dados enviados pela porta serial. Além da conexão serial, os kits Arduino ainda possuem suporte a outros tipos de co- nexão como Ethernet, Wi-Fi e diversas outras. A expansão das funcionalidades do Arduino através de conexões de rede pode ser auxiliada com a utilização de shields. Esses shields são placas especificamente projetadas para encaixar nas portas do Arduino. No mercado existem shields para ethernet, 802.11, 802.15.4, Blutooth, controladores de motores de passo, etc. 4 Android Telefones inteligentes oferecem aos usuários funcionalidades comuns às apresenta- das por computadores pessoais como acesso a redes de dados por conexões sem fio e aplicações com um grande grau de complexidade. Com a grande expansão do mercados desses telefones tornou-se viável uma solução capaz de funcionar em diferentes tipos de dispositivos com hardware diferentes. Com essa motivação foi criado o Android, um sistema operacional de código aberto desenvolvido pelo Google em conjunto com outras empresas dos setores de hardware, software e telecomunicações. Como mostra a Figura 4, na base da pilha da arquitetura ZigBee está presente o Kernel Linux. Na camada acima estão as bibliotecas do sistema como a de gerenciamento de tela, de mídia, de gráficos e de banco de dados, entre outros. Ainda nessa camada está presente a Dalvik, uma máquina virtual Java otimizada para dispositivos móveis. Logo acima dessa segunda camada estão as classes que compõe a API do Android que são utilizadas pelas aplicações do sistema, presentes na camada superior a essa. O Google disponibilizou uma série de ferramentas para auxiliar os desenvolvedores na criação de aplicações. Essas ferramentas estão contidas no kit de desenvolvimento de
  6. 6. Aplicações Android Arcabouço de Aplicações Bibliotecas Dalvik VM Kernel Linux Activity Manager Window Manager Notification Manager View System Media Framework SQLite OpenGL Surface Manager Ambiente de execução ... ... ... ... ... Figura 4 – Arquitetura do Android. software (SDK) do Android. Na SDK estão presentes códigos com exemplos de utilização da API, um emulador de telefone celular, onde podem ser testadas as aplicações, e uma ferramenta para auxiliar na depuração dos códigos. Outra ferramenta disponibilizada pelo Google foi um plugin que permite a total integração da SDK com o IDE Eclipse, permitindo a compilação do código, a instalação e a execução no emulador com apenas um clique. Para o desenvolvimento das aplicações do Android, é utilizada a linguagem Java, porém, para a criação das interfaces gráficas pode ser utilizado também arquivos em XML. Como é possível ver na Figura 5, nos objetos XML, que serão exibidos na tela da aplicação, existe um campo onde é inserido um valor de identificação desse objeto. Esses valores podem ser referenciados no código Java para que os objetos XML sejam manipulados por esse código, que permite a utilização de lógica bastante avançada. Descrição da interface em XMLInterface da aplicação Classe Java com a lógica Figura 5 – Código Java pra Android integrado com XML. 5 DroidLar Os sistemas de automação residencial presentes no mercado são, em sua maioria, centralizados, ou seja, um equipamento gerencia toda o sistema e transfere os comandos entre as interfaces de controle e os controladores de dispositivos. O projeto apresentado nesse artigo também atua dessa maneira. Nele, além do servidor centralizado - denomi- nado servidor de automação residencial (SAR) -, também estão presentes a interface de controle, implementada em forma de uma aplicação para telefones Android, e os controla- dores de dispositivos construídos com a utilização de kits Arduino. Como mostrado pela Figura 6, o cliente rodando no Android utiliza uma conexão IP
  7. 7. (Wi-Fi, 3G, entre outros) para a comunicação, já os controladores de dispositivos utilizam a rede ZigBee para a troca das mensagens. Por isso, é tarefa do SAR servir de ponte entre essas duas partes do sistema. SAR 3 Android 2 1 WiFi Arduino Arduino Arduino Figura 6 – Elementos do DroidLar. 5.1 Controladores de Dispositivos Para o controle dos eletroeletrônicos da residência são necessários dispositivos ca- pazes de interpretar uma informação e executar determinada ação mediante o recebimento de uma mensagem. Por isso e pelas razões apresentadas na Seção 3, optou-se por utilizar kits Arduino para a prototipagem desses controladores no DroidLar. A comunicação entre os controladores de dispositivos e o SAR se faz através do protocolo ZigBee, para tal foram empregados módulos XBee Series 2.5, fabricados pela Digi International3. Nos kits Arduino esses módulos são conectados ao shield XBee e no SAR os módulos são conectados a um adaptador serial o qual fica conectado a uma porta USB. No DroidLar, todos os módulos XBee dos controladores foram configurados como roteadores, caracterizando uma rede em malha. Dessa forma cada controlador de dispositivo poderá encaminhar mensagens para outros roteadores, permitindo que o SAR interaja com dispositivos que estejam além do alcance de seu rádio. Para a configuração dos módulos XBee pode ser utilizado um aplicativo, criado tam- bém pela Digi, chamado X-CTU. Nele é possível escolher as características que o disposi- tivo terá na rede, se ele será um roteador ou end-device, por exemplo. Também é possível selecionar a potência de transmissão do sinal, a criptografia nas mensagens e a taxa de transmissão da porta serial. No DroidLar os módulos foram configurados para não utiliza- rem criptografia, o que resultaria numa redução do tamanho de informação contida num pacote. A taxa de transmissão escolhida para ser usada na porta serial foi de 9,6 Kbps. Os controladores dispositivos executam dois tipos de procedimentos: atuação – que executa ações como ligar, desligar, aumentar ou diminuir a intensidade da potência do dispositivo eletrônico que este controla, por exemplo, uma lâmpada; relatório – envia in- formações ao SAR a respeito de suas configurações, por exemplo, número de dispositivos que está controlado, o estado atual de cada dispositivo (ligado, desligado, etc.). O relatório é enviado sempre que o controlador for ligado ou sempre que o SAR solicitar. 3 http://www.digi.com
  8. 8. 5.2 SAR O servidor de automação residencial (SAR) consiste na parte central do DroidLar. Tem como função gerenciar os controladores de dispositivos, enviando comandos ou rece- bendo informações sobre o estado de cada e interagir com o cliente Android. Assim, atua como uma ponte entre as duas tecnologias de transmissão sem fio, ZigBee e 802.11. O SAR deve permanecer operando constantemente, pois, além de gerenciar as mensagens trocadas entre os membros da rede, é responsável também por executar tarefas agendadas pelo usuário como acender ou apagar lâmpadas em determinadas períodos. O SAR foi implementado na forma de um software rodando em um computador pes- soal. Consiste de um Servlet Java que no presente protótipo está sendo executado no ser- vidor de aplicação Glassfish4. A vantagem de rodar aplicações sobre os servidores Web é que estes se encarregam do gerenciamento de conexões simultâneas e também permitem conexões seguras (HTTPS). O fato de usar um protocolo padronizado (HTTP)(FIELDING et al., 1999) provê facilidades para criação de outros clientes para o SAR, por exemplo, clien- tes Desktop, Web ou mesmo para outros sistemas operacionais de telefones inteligentes. Para essa aplicação se comunicar com o cliente no Android é necessário que esse computador esteja conectado em alguma rede IP, já para a comunicação com os kits Ar- duino, é necessário que haja um módulo XBee, assim como nos Arduinos, conectado em uma das portas USB desse computador. Esse módulo XBee tem que estar configurado como coordenador da rede ZigBee, sendo o responsável pelas configurações dessa rede. O servlet também é responsável pelas mensagens de controle dos dispositivos. Nes- sas mensagens estão contidas informações como o tipo de ação tomada pelo dispositivo, o valor utilizado para a execução dessa ação e o endereço do dispositivo responsável pelo controle. Essa mensagem poderia ser utilizada, por exemplo, no acendimento de uma lâmpada com 50% de sua intensidade controlada pelo dispositivos com um determinado endereço. O outro tipo de mensagem utilizado é aquela trocada apenas entre o cliente Android e o SAR. Essas mensagens servem para executar funcionalidades básicas do ser- vidor, como a autenticação do usuário e também funcionalidades mais complexas, como o agendamento de perfis, por parte do usuário. 5.3 Cliente Android Os sistemas de automação residencial atuais permitem a utilização de diversos tipos de interfaces de controle como painéis afixados em paredes, controles remotos tradicionais e, até mesmo, páginas Web, que podem ser visualizadas por um navegador de Internet no computador pessoal ou no telefone celular. Aplicações específicas para telefones in- teligentes tem a usabilidade como principal vantagem quando comparadas com páginas web. O DroidLar utiliza um aplicativo rodando num telefone Android como interface de con- trole. Esse aplicativo, além de controlar os eletroeletrônicos da residência, também pos- sibilita a criação e o gerenciamento dos perfis do usuário. Esses perfis são formados por um grupo de dispositivos que serão ligados/desligados automaticamente em determinadas 4 http://glassfish.java.net
  9. 9. (a) Tela inicial (b) Informações sobre o servi- dor Figura 7 – Interface principal e de configuração do SAR datas. Para se comunicar com o SAR é necessário apenas que o telefone inteligente, no qual o aplicativo está rodando, esteja conectado a uma rede IP. Quando o usuário abre a aplicação é exibida à ele a tela inicial mostrada na Figura 7a. Nessa tela é possível escolher se quer controlar os dispositivos da residência (Figura 7b), alterar os perfis dos dispositivos (Figura 8a) ou editar as configurações para a conexão com o SAR (Figura 8b). Para que o usuário execute qualquer ação na aplicação, é necessário que ele esteja autenticado no SAR, por isso, na primeira vez que o usuário abre o aplicativo é exibida a tela de configurações. Depois de salvar as configurações ele pode navegar por todas telas normalmente, podendo estas configurações serem alteradas posteriormente. Na tela de controle o usuário pode, por exemplo, acender, apagar ou definir um valor inter- mediário para as lâmpadas da residência. (a) Controle dos dispositivos (b) Configuração dos perfis Figura 8 – Interfaces para configuração dos dispositivos e perfis
  10. 10. 6 Conclusões e trabalhos futuros Sistemas de automação residencial permitem que o usuário controle os eletroeletrô- nicos de sua residência com conforto e comodidade oferecendo, inclusive, interfaces Web para que ele possa controlá-los. Entretanto, na maioria dos produtos de automação resi- dencial essas interfaces Web são limitadas quando comparadas com aplicações específicas para os telefones inteligentes. O ZigBee é um protocolo pra redes sem fio que não necessitem de altas taxas de transmissão e que requeiram um baixo consumo energético por parte dos dispositivos trans- missores. Mesmo não tendo um longo alcance de transmissão, os dispositivos ZigBee po- dem prolongar a extensão da rede atuando em forma de malha, fazendo as mensagens passarem por quantos nós forem necessários para chegar ao destino. A plataforma Arduino foi criada com o intuito de ser uma ferramente de fácil utilização para o desenvolvimento de protótipos em hardware que contenham uma lógica programá- vel. Esses kits podem se conectar em diversas redes acoplando-se à eles shields, que servirão como adaptadores para os transmissores de rede. Um módulo XBee, se conec- tado a um kit Arduino, permite que o mesmo se comunique como um nó pela rede ZigBee. Os telefones inteligentes possuem recursos superiores ao apresentados pelos celula- res convencionais. Neles é possível a conexão em diversas redes IP tais como 3G e Wi-Fi, além de possuir sistemas operacionais que possibilitam rodar aplicativos com a mesma complexidade dos que rodam em computadores pessoais. O Android é um sistema ope- racional de código aberto permitindo que uma mesma aplicação seja utilizada em diversos tipos de dispositivos de diferentes fabricantes. O trabalho apresentado nesse artigo foi denominado DroidLar e se trata de um sis- tema de automação residencial onde é possível controlar os eletroeletrônicos da residência através de um aplicativo rodando em telefones Android. Assim como o Arduino e o Android, o DroidLar também é um projeto aberto, podendo ser implementado por qualquer empresa e, assim, aumentado as possibilidades de escolha dos usuários no momento em que for adquirir um equipamento novo. O fato de o SAR rodar em um computador pessoal que deve estar ligado constan- temente pode ser um fator prejudicial na adoção do sistema pelos usuários. O principal trabalho futuro é embarcar o SAR em um dispositivo micro controlado, semelhante aos kits Arduinos, tornando-o portátil e energeticamente econômico. Um outro ponto seria a expan- são do sistema como um todo para controlar não só lâmpadas, mas outros dispositivos de uma residência, por exemplo, portões, sistemas de sonorização, etc. Agradecimento Ao Conselho Nacional de Desenvolvimento Científico e Tecnológico (CNPq) pelo apoio financeiro sem qual não seria possível desenvolver o presente trabalho.
  11. 11. Responsabilidade de autoria As informações contidas neste artigo são de inteira responsabilidade de seus autores. As opiniões nele emitidas não representam, necessariamente, pontos de vista da Instituição e/ou do Conselho Editorial do IF-SC. Referências BLUETOOTH, S. Bluetooth specification. 1998. FIELDING, R. et al. Hypertext Transfer Protocol – HTTP/1.1. [S.l.], jun 1999. 176 p. Disponível em: <http://www.rfc-editor.org/rfc/rfc2616.txt>. IEEE. Part 15.4: Wireless Medium AccessControl (MAC) and Physical Layer (PHY) Specifications for Low-Rate Wireless PersonalArea Networks (WPANs). [S.l.], jun. 2006. Disponível em <http://www.http://standards.ieee.org/getieee802/download/802.15. 4-2006.pdf>. IEEE. Wireless lan medium access control (mac) and physical layer (phy) specifications. IEEE Std 802.11-2007 (Revision of IEEE Std 802.11-1999), p. C1–1184, 12 2007. OPEN HANDSET ALLIANCE. Android operating system. 2008. Disponível em: <http://www.android.com>. ZIGBEE ALLIANCE. Zigbee specification. ZigBee Document 053474r06, Version, v. 1, 2005.

×