Uma Solução de Domotica Utilizando Sistema Operacional Android e uma Plataforma de Prototipagem Arduino

Embed Size (px)

Citation preview

  • 7/31/2019 Uma Soluo de Domotica Utilizando Sistema Operacional Android e uma Plataforma de Prototipagem Arduino

    1/71

  • 7/31/2019 Uma Soluo de Domotica Utilizando Sistema Operacional Android e uma Plataforma de Prototipagem Arduino

    2/71

    2012

    2

  • 7/31/2019 Uma Soluo de Domotica Utilizando Sistema Operacional Android e uma Plataforma de Prototipagem Arduino

    3/71

    Leonardo Wagner Ribeiro Leite

    Uma soluo de domotica utilizando um sistema Android e uma plataforma deprototipagem Arduino

    Trabalho apresentado disciplina de Trabalho deDiplomao II, do curso Cincia da Computao da

    Pontifcia Universidade Catlica de Minas Gerais,como requisito para a obteno do ttulo de Bacharel.

    Orientador: Pasteur Junior

    Belo Horizonte2012

  • 7/31/2019 Uma Soluo de Domotica Utilizando Sistema Operacional Android e uma Plataforma de Prototipagem Arduino

    4/71

    Leonardo Wagner Ribeiro Leite

    Documento Padro para o Trabalho de Diplomao

    Monografia apresentada disciplina de Trabalho de

    Diplomao do curso de Cincia da Computao da

    Pontifcia Universidade Catlica de Minas Gerais.

    ________________________________________________________

    (Orientador) PUC Minas

    ________________________________________________________

    Examinador PUC Minas

    ________________________________________________________

    Examinador PUC Minas

    Belo Horizonte, 15 de Junho de 2012

  • 7/31/2019 Uma Soluo de Domotica Utilizando Sistema Operacional Android e uma Plataforma de Prototipagem Arduino

    5/71

    DEDICATRIA

    Dedico esse trabalho minha famlia, minha esposa e filho, meus pais, irmos e irms

    pela pacincia e apoio a minha pessoa.

  • 7/31/2019 Uma Soluo de Domotica Utilizando Sistema Operacional Android e uma Plataforma de Prototipagem Arduino

    6/71

    AGRADECIMENTOS

    Agradeo minha famlia, minha esposa, meus pais, irmos e irms pela pacincia e

    apoio que deram. Agradeo tambm aos professores e professoras pelos incentivos prestados e

    por todo conhecimento que me foi passado. Aos meus amigos, de convvio acadmico, com

    quem eu fiz vrios trabalhos e estudei para as diversas provas, meus amigos do meu bairro e

    trabalho por me escutar e me aconselhar em decises difceis, tambm gostaria de agradecer aos

    meus tios e tias que me auxiliaram desde o inicio. A todos meus sinceros agradecimentos.

  • 7/31/2019 Uma Soluo de Domotica Utilizando Sistema Operacional Android e uma Plataforma de Prototipagem Arduino

    7/71

    RESUMO

    Este trabalho discorre sobre o desenvolvimento de uma soluo para automao

    residencial de baixo custo, com arquitetura robusta, possibilitando controle de diversos

    dispositivos e acessos remotos atravs de um aparelho mvel que possua sistema Android e

    uma conexo com a internet via 3G ou WIFI. Tudo isso foi possvel utilizando uma plataforma

    de prototipagem Arduino, um componente Ethernet Shield, e um software desenvolvido neste

    trabalho para o sistema Android chamado "Arduino Manager", para controle dos dispositivos

    conectados a plataforma de prototipagem. Foi realizado o mapeamento dos dispositivos e a

    programao das aes que o Arduino ir executar para controle destes dispositivos, desta

    forma, funcionando como uma interface para acesso e controle do software AM. Portanto, a

    aplicao funciona de forma semelhante a uma soluo cliente servidor, onde o Arduino ir

    atuar como um servidor e o AM o cliente, que ir executar aes nos dispositivos. Ao longo

    deste trabalho descrito detalhadamente todo o processo realizado e todas as etapas de

    implementao, assim como, os mtodos e arquiteturas utilizadas. H tambm, uma descrio

    rica em detalhes de todas as tecnologias utilizadas no projeto. Alm disso, so realizados alguns

    testes e anlises da soluo proposta e as concluses alcanadas. Tal soluo se mostrou

    perfeitamente eficaz e robusta, fornecendo uma ampla gama de possibilidades em automao

    residencial.

    Palavras-Chave: Automao residencial, Domotica, Arduino, Android, Ethernet shield,

    Arduino manager, Arquiterura robusta, Aparelho mvel.

  • 7/31/2019 Uma Soluo de Domotica Utilizando Sistema Operacional Android e uma Plataforma de Prototipagem Arduino

    8/71

    LISTA DE FIGURAS

    FIGURA 1 ARDUINO 2009......................................................................................................................21

    FIGURA 2 EXEMPLO SISTEMA ARDUINO......................................................................................22

    FIGURA 3 ETHERNET SHIELD...........................................................................................................26

    FIGURA 4 IMAGEM DO SISTEMA ANDROID.................................................................................27

    FIGURA 5 - ARQUITETURA ANDROID................................................................................................28

    FIGURA 6 - UTILIZAO DAS VERSES ANDROID.......................................................................30

    FIGURA 7 - HIERARQUIA DE CLASSES VIEW..................................................................................31

    FIGURA 8 ARQUITERURA DA SOLUO.......................................................................................36

    FIGURA 9 ARDUINO MANAGER........................................................................................................39

    FIGURA 10 - ADICIONAR O DISPOSITIVO "MANUALMENTE"..................................................51

    FIGURA 11 - SINCRONIZAR ARDUINO....................................................................................51

    FIGURA 12 - DISPOSITIVO SINCRONIZADO...........................................................................52

    FIGURA 13 - CONTROLE DO DISPOSITIVO.......................................................................................52

    FIGURA 14 - TELA DE CONTROLE DO DISPOSITIVO LED......................................................53

  • 7/31/2019 Uma Soluo de Domotica Utilizando Sistema Operacional Android e uma Plataforma de Prototipagem Arduino

    9/71

    LISTA DE TABELAS

    TABELA 1 CARACTERSTICAS.................................................................................................23

    TABELA 2 NUMERAO DE FIGURAS.............................................................................................37

    TABELA 3 CONFIGURAO ARDUINO PARA ETHERNET SHIELD......................................43

    TABELA 4 MAPEAMENTO ARDUINO DE DISPOSITIVOS..........................................................44

  • 7/31/2019 Uma Soluo de Domotica Utilizando Sistema Operacional Android e uma Plataforma de Prototipagem Arduino

    10/71

    ABREVIATURAS

    AM - ARDUINO MANAGER

    A/D - ANALGICO / DIGITAL

    CC - CORRENTE CONTNUA

    CI - CIRCUITO INTEGRADO

    IHM INTERFACE HOMEM MQUINA

    PC COMPUTADOR PESSOAL

    RAM RANDOM ACCESS MEMORY

    VCC TENSO EM CORRENTE CONTNUA

  • 7/31/2019 Uma Soluo de Domotica Utilizando Sistema Operacional Android e uma Plataforma de Prototipagem Arduino

    11/71

    SUMRIO

    1 INTRODUO ..........................................................................................................................................13

    2 REVISO DE LITERATURA .................................................................................................................21

    3 DESENVOLVIMENTO DO SISTEMA .................................................................................................35

    4 ANLISES E DISCUSSO ......................................................................................................................53

    5 CONCLUSES ..........................................................................................................................................55

    REFERNCIAS ............................................................................................................................................57

    ......................................................................................................................................................................... 57

    APNDICE 1 .................................................................................................................................................59

    ......................................................................................................................................................................... 72

  • 7/31/2019 Uma Soluo de Domotica Utilizando Sistema Operacional Android e uma Plataforma de Prototipagem Arduino

    12/71

    1 INTRODUO

    1.1 Consideraes Preliminares

    A palavra Automao vem do latim Automatus, que por sua vez, significa mover-se

    por si, ou seja, executar funes sem a interferncia do homem. A automao um sistema de

    controle de mecanismos e dispositivos para executar aes, verificaes e at mesmo correes

    de erros. Segundo [LACOMBE 2004] a automao a aplicao de tcnicas computadorizadas

    para diminuir o uso de mo-de-obra em qualquer processo, especialmente o uso de robs nas

    linhas de produo. A automao diminui os custos e aumenta a velocidade da produo.

    Portanto, um processo automatizado possui diversos benefcios, entre eles, velocidade, reduo

    de custos, e muitas vezes o conforto. A automao se divide em trs grandes reas, a automao

    comercial, que visa a otimizao de processos comerciais atravs do controle dos seus

    principais processos tais como, controle de estoque, contas a pagar e a receber, folha de

    pagamento, identificao de mercadorias atravs de cdigos de barra entre outras. A automao

    industrial, que controla os processos industriais para maximizar a produo visando um menor

    consumo de energia e/ou matrias primas, menor emisso de resduos, melhores condies de

    segurana, reduzir a interferncia humana sobre os processos. E por ultimo a rea de Domotica,

    cujo significado vem do latim, Domus(Casa) com Robtica(Controle automatizado de algo) que

    tem como objetivo a automao de mecanismos em uma residncia, visando qualidade de vida,conforto, integrao, e uma maior satisfao no lar.

    A automao uma realidade emergente em ambientes residenciais. Uma das grandes

    contribuies para a rea de automao residencial foi a inveno das mquinas eltricas de

    lavar roupas em 1908 [ELSENPETER 2003]. Aps isso, outras solues como detectores de

    palmas e os detectores de assovios, que ligavam e desligavam dispositivos, lmpadas e

    eletrodomsticos, foram desenvolvidas. Algumas destas tecnologias, apesar de cruciais para o

    13

  • 7/31/2019 Uma Soluo de Domotica Utilizando Sistema Operacional Android e uma Plataforma de Prototipagem Arduino

    13/71

    desenvolvimento da rea, como a telefonia, rdio, no contriburam tanto quanto a televiso,

    computadores pessoais, a internet e controle pela energia eltrica (X10, por exemplo), que so

    considerados os grandes avanos da automao residencial [VARGAS 2004].

    Por aproximadamente 30 anos a automao residencial tem se mantido como um recurso

    inacessvel para grande parte da populao, em funo do alto custo das solues. Em geral, as

    pessoas detentoras de um maior poder aquisitivo adquirem sistemas caros e feitos sobre medida

    e os mais corajosos e desbravadores estudam o funcionamento dos dispositivos e compram aos

    poucos os componentes necessrios para montar seus prprios sistemas. Porm, grande parte do

    mercado ainda encontra-se intocada [TERUEL 2007], onde a oferta consiste

    predominantemente de dispositivos independentes e embarcados de funes especficas e

    providos de inteligncia que geralmente utilizam temporizadores. Este cenrio tente a mudar em

    funo da popularizao da banda larga, das redes residenciais WIFI, e tecnologias de

    comunicao de dados como 3G e 4G [ABI RESEARCH 2011]. Tendo em vista que, o conceito

    de habitao tem mudado na ultima dcada em razo da rpida evoluo tecnolgica, onde a

    tecnologias como tablets smartphones, banda larga, esto cada vez mais presentes no ambiente

    familiar e levando em considerao que os dispositivos mveis se tornaram objetos

    indispensveis na vida de qualquer indivduo, este trabalho visa uma soluo utilizando

    dispositivos mveis e uma arquitetura robusta para automao residencial de baixo custo e

    acessvel onde o meio de comunicao a internet atravs de conexes 3G ou WIFI. Tornandoo ambiente residencial um lugar mais agradvel e de maior conforto e com isso melhorando a

    qualidade de vida de toda famlia.

    Um indivduo realiza diversas atividades do seu dia a dia atravs de celulares e tablets.

    Realiza o pagamento de contas sem ter que ir ao banco, efetua compras sem ter que se dirigir

    fisicamente at a loja, agenda consultas sem ter que telefonar ou ir ao consultrio, e poderia

    controlar diversas atividades na sua residncia atravs destes aparelhos pela internet utilizando

    14

  • 7/31/2019 Uma Soluo de Domotica Utilizando Sistema Operacional Android e uma Plataforma de Prototipagem Arduino

    14/71

    o seu 3G ou at mesmo wireless, como por exemplo, lavar as suas roupas, preparar o seu banho

    ou ligar o micro-ondas para preparar uma lasanha momentos antes de chegar em casa. O

    trabalho desenvolvido e relatado neste documento implementa uma soluo para automao

    residencial que visa menor custo e uma arquitetura robusta para controle e automao de

    dispositivos residenciais atravs de um smartphone utilizando o sistema Android e um

    dispositivo Arduino, se comunicando atravs de uma conexo 3G ou WIFI usufruindo do

    protocolo HTTP.

    Em geral as empresas investem em solues para controle de segurana, temperatura,

    iluminao, udio e vdeo, persianas ou cortinas [TERUEL 2007]. Poucas empresas se

    concentram em solues realmente inovadoras e abrangentes para a automao residencial,

    visando, por exemplo, eletrodomsticos inteligentes e colaborativos [PEREIRA 2007]. Porm,

    tais solues seriam perfeitamente factveis atravs de bons algoritmos e um dispositivo

    Arduino com os componentes corretos.Podemos citar como exemplo, uma soluo que verifica

    a temperatura de um determinado ambiente e aumenta a potencia de um ar condicionado

    gradativamente em funo do aquecimento deste ambiente. Ou at mesmo uma soluo de

    segurana, onde o Arduino, atravs de um sensor de presena, ao detectar a presena inesperada

    de um indivduo, poderia registrar uma foto do mesmo e envi-la atravs da internet para o

    departamento de policia mais prximo e em seguida alertar o proprietrio sobre o ocorrido via

    SMS. Solues como estas, seriam perfeitamente factveis com a arquitetura e os componentescitados neste trabalho.

    A automao residencial utilizando Arduino pode ser muito robusta e bem elaborada

    alm de possibilitar um leque muito grande de possibilidades.

    Observa-se tambm que esta uma soluo de baixo custo, onde os componentes

    utilizados so acessveis a grande parte da populao, seja pelo baixo custo ou por j possuir

    uma parte dos componentes necessrios em casa. Para exemplificar: o Arduino UNO, custaria

    15

  • 7/31/2019 Uma Soluo de Domotica Utilizando Sistema Operacional Android e uma Plataforma de Prototipagem Arduino

    15/71

    em torno de US$ 24, o Ethernet Shield US$ 36, um sensor de temperatura US$ 4, a maioria dos

    componentes de Arduino possuem uma faixa bem variada de valores, que vo de US$ 1,5 o

    mais barato e US$ 300 o Kit mais sofisticado [SPARKFUN 2012].

    Em funo da soluo proposta, onde o Arduino ser acessado remotamente, atravs de

    dispositivos mveis, dados recentes mostram que o acesso telefonia mvel, bem como a

    aparelhos mais sofisticados e com acesso a internet vem aumentando exponencialmente. Dados

    apontam que existem cerca de 1.2 celulares por habitante no Brasil segundo pesquisa realizada

    pela [ANATEL 2011], entre esses quase 250 milhes de aparelhos, aproximadamente 62

    milhes so smathphones segundo dados estatsticos coletados pela Avellar Duarte Consultoria

    de 2011 [AVELLAR DUARTE 2011], dispositivos esses que sero utilizados neste trabalho.

    De acordo com a estimativa realizada pela IDC consultoria, em 2012 sero vendidos cerca de

    15,4 milhes de smarthphones, isso em funo do baixo custo de vrios aparelhos que esto

    sendo introduzidos no mercado, [IDC 2010]. Isso mostra que este tipo de tecnologia est cada

    vez mais comum na vida do Brasileiro. Alm disso, um estudo da COMSCORE mostra que o

    sistema operacional da Google (Android), sistema adotado para a realizao deste estudo, detm

    cerca de 50.1% do mercado de smathphones, e o sistema operacional mais utilizado no mundo

    para essa plataforma [COMSCORE DATA MINE 2012], desta forma justificando o motivo

    pelo qual esse sistema foi a escolhido para o desenvolvimento da soluo proposta.

    1.2 Motivaes para realizao do trabalho

    A motivao para realizao deste trabalho baseia-se na possibilidade de propor uma

    soluo acessvel para um indivduo que tenha interesse em implantar automao residencial em

    sua casa com uma arquitetura robusta de controle via web. Dessa forma, a proposta do trabalho

    desenvolver uma soluo que oferea uma ampla gama de possibilidades e que proporcione

    uma rica e diversificada experincia em automao residencial, alm de prover segurana e

    16

  • 7/31/2019 Uma Soluo de Domotica Utilizando Sistema Operacional Android e uma Plataforma de Prototipagem Arduino

    16/71

    resultados precisos. Contudo, sem que haja a necessidade de investimentos exorbitantes, uma

    vez que, as solues fornecidas pelo mercado atualmente so caras e na maioria das vezes

    inacessveis para grande parte da populao.

    Outro fator motivante para a realizao deste estudo resultou da anlise de dados do

    mercado. Um estudo realizado pela Motorola Mobility, onde foram entrevistados 9 mil

    consumidores na amrica latina, apontou que dos quase 3 mil Brasileiros entrevistados, 78%

    disseram ter interesse em automao residencial [AURESIDE 2012].

    Porm, devemos levar em considerao que a renda mdia do brasileiro de

    aproximadamente R$ 1550,00, ou seja, uma renda baixa para implantar automao residencial

    nos padres que o mercado oferece hoje, onde a soluo mais barata oferecida pela Kalatec

    Home custa em torno de 4 mil reais, Kalatec Home [KALATEC HOME 2012] e oferece ao

    cliente um tablet com sistema 3NYX e o controle de iluminao da residncia, ou seja, uma

    soluo bem simples.

    Desta forma, a soluo proposta neste trabalho se mostrou condizente com o perfil

    econmico de grande parte dos cidados Brasileiros, uma vez que, todo o projeto realizado

    neste trabalho teve custo de R$ 260, porm, utilizando tecnologias open Source e menos

    sofisticadas, mas podendo possibilitar uma soluo de automao residencial bem mais

    completa e diversificada que a soluo da Kalatec Home.

    Em relao arquitetura proposta, a motivao se embasa no contexto atual, onde osinvestimentos em automao sem fio so claramente maiores que a automao via cabo.

    Somente no ano passado os investimentos somaram cerca de US$ 58 milhes [PEREIRA 2007],

    dois teros dos dispositivos de controle so sem fios [PEREIRA 2007]. Portanto, a grande parte

    da automao residencial est direcionada para o contexto de aplicaes sem fio, desta forma

    motivando a arquitetura proposta atravs do componente Ethernet Shield para o Arduino,

    17

  • 7/31/2019 Uma Soluo de Domotica Utilizando Sistema Operacional Android e uma Plataforma de Prototipagem Arduino

    17/71

    possibilitando um controle do Arduino via internet que por sua vez controla os dispositivos

    conectados ao mesmo.

    Ainda assim, torna-se necessrio um dispositivo que esteja em sintonia com a

    arquitetura proposta, que fosse um dispositivo presente no dia a dia do indivduo, um aparelho

    indispensvel, o smathphone. O smartphone est cada vez mais presente no cotidiano das

    pessoas, hoje possvel comprar um smartphone com sistema operacional Android por valores

    bem acessveis ao bolso do Brasileiro, alm disso, como j relatado, o sistema operacional

    Android est presente em 51,1% dos dispositivos de telefonia mvel [COMSCORE DATA

    MINE 2012], neste caso, deixando clara a motivao para o uso de smartphones que possuem o

    sistema operacional Android.

    Em relao ao meio de acesso, que ser atravs de banda larga instalada na residncia,

    os dados estatsticos coletados pela TIC Provedores, mostram que cerca de 27% dos lares

    Brasileiros possuem acesso a internet [TIC DOMICILIOS 2010], alm isso, com o projeto do

    governo federal, que est disponibilizando banda larga popular a um valor aproximado de R$

    35, pretende-se alcanar a meta de 70% dos lares brasileiros com internet banda larga em 2014

    [CORREIO DO ESTADO 2011].

    Alm de todas as motivaes mencionadas, os componentes propostos na soluo so

    perfeitamente compatveis com as solues encontradas no mercado hoje, como por exemplo,

    ZigBee e at mesmo o protocolo X10, que foi um dos grandes avanos da automaoresidencial e amplamente utilizado no contexto atual, ele foi o principal responsvel pela

    popularizao da automao residencial, porm, o mesmo possui algumas limitaes e

    desvantagens, como por exemplo, limitao do nmero de dispositivos ligados na rede e a baixa

    taxa de transmisso de dados, h tambm a necessidade de do uso de repetidores para que os

    sinais se propagem pelas diferentes de uma resistncia e de uso de filtros para evitar

    interferncias [VARGAS 2004]. Com a utilizao o Arduino, em conjunto com o protocolo

    18

  • 7/31/2019 Uma Soluo de Domotica Utilizando Sistema Operacional Android e uma Plataforma de Prototipagem Arduino

    18/71

    X10, seria possvel reduzir as limitaes do X10, uma vez que, o Arduino possibilita a conexo

    de 78 dispositivos em suas portas e uma ampla transmisso de dados utilizando o Ethernet

    Shield que possibilita uma transmisso de 100 Mb por segundo em pacotes de at 9600 bits.

    Como isso, fica perfeitamente claro que a soluo proposta est em sintonia com a

    demanda do mercado, assim como, est condizente com o poder aquisitivo de grande parte da

    populao Brasileira.

    1.3 Objetivos

    O objetivo deste trabalho desenvolver uma soluo para automao residencial, de

    baixo custo, e que possua uma arquitetura robusta, ou seja, que seja aplicvel em vrias

    situaes, seja segura e precisa em seus resultados e desta forma, satisfaa at os usurios mais

    exigentes. Portanto, foi proposta uma soluo utilizando uma plataforma de prototipagem

    Arduino, um componente que prov o servio de web Serverpara o Arduino chamadoEthernet

    Shield, acesso a internet atravs de um roteador, um dispositivo mvel com sistema operacional

    Android, e alguns dispositivos que sero controlados pelo Arduino, como por exemplo, um

    mdulo de rel que ir controlar a porta e o porto da residncia, um sensor de temperatura que

    ir registrar a temperatura do ambiente residencial, e alguns leds que iro simular a iluminao

    de uma residncia, tudo controlado via web.

    Portanto, ser necessrio realizar o mapeamento dos dispositivos citados no Arduino e

    posteriormente desenvolver os interpretadores de comandos para que o Arduino se comunique

    com o sistema Android atravs do sistema Arduino Manager (Sistema desenvolvido neste

    trabalho), alm de programar uma aplicao Android para executar os comandos no Arduino,

    ou utilizar alguma soluo para o Android j pronta, como por exemplo, uma aplicao

    chamadaDomoticHome, que pode ser encontrada no AndroidMarket totalmente gratuita e

    19

  • 7/31/2019 Uma Soluo de Domotica Utilizando Sistema Operacional Android e uma Plataforma de Prototipagem Arduino

    19/71

    open Source. Para alcanar o objetivo proposto, sero realizados vrios testes para avaliar a

    confiabilidade da soluo ,assim como, comprovar o seu perfeito funcionamento.

    1.4 Estrutura do trabalho

    Aps a descrio do primeiro capitulo que trata da introduo ao assunto que embasa

    este documento, seguem os captulos 2, 3, 4 e 5. O Captulo 2 trata da reviso bibliogrfica, a

    primeira parte aborda as tecnologias utilizadas na soluo, suas descries tcnicas, estruturas,

    suas funes em relao ao trabalho proposto alm de suas arquiteturas. A segunda parte

    expem algumas solues relacionadas ao projeto, suas similaridades com a soluo proposta,

    assim como, seus pontos fracos e fortes. E na quarta e ultima seo do captulo 2, realizada

    uma breve anlise crtica sobre as sees anteriores, citando as principais vantagens e

    desvantagens e contribuies para o trabalho realizado.

    O Captulo 3 trata dos aspectos metodolgicos, onde so expostos os mtodos utilizados

    no desenvolvimento da soluo e os testes realizados, alm de detalhar toda a arquitetura do

    projeto proposto. Tambm neste captulo, apresentando um pequeno tutorial de como utilizar

    o programa desenvolvido neste trabalho (Arduino Manager) e suas principais funcionalidades.

    No Captulo 4 feita uma anlise de todo o trabalho desenvolvido avaliando alguns

    testes expondo possveis vulnerabilidades e apresentando algumas concluses em relao a

    soluo proposta.

    Por ltimo, no Capitulo 5, apresentam-se todas as concluses finais, os objetivos

    alcanados, e uma seo de trabalhos futuros para possveis melhorias no trabalho realizado, as

    referencias utilizadas neste documento e um apndice com uma documentao vasta em relao

    ao sistema Arduino Manager.

    20

  • 7/31/2019 Uma Soluo de Domotica Utilizando Sistema Operacional Android e uma Plataforma de Prototipagem Arduino

    20/71

    2 REVISO DE LITERATURA

    2.1.1 Arduino

    Arduino uma plataforma open source de prototipagem eletrnica baseada na

    flexibilidade, ou seja, possui hardware e software de fcil utilizao, alm disso, possui um

    baixo custo e pode ser executado em vrias plataformas, como Windows, Mac OS, e Linux. Foi

    projetado para engenheiros, artistas, aficionados por tecnologia ou qualquer pessoa interessada

    em criar objetos ou ambientes interativos, [ARDUINO 2012].

    FIGURA 1 ARDUINO 2009

    Fonte: http://www.arduino.cc, 2012.

    O Arduino faz parte do conceito de hardware e software livre e est aberto ao uso e

    contribuies por parte de toda sociedade. O Arduino surgiu na Itlia em 2005, com a proposta

    de criar um dispositivo para desenvolvimento de projetos/prottipos de forma menos

    dispendiosa do que outras solues existentes at ento no mercado [Vega e Beppu 2010].

    O Arduino pode perceber o ambiente atravs de uma grande variedade de sensores e

    pode interagir com o mesmo atravs do controle de diversos dispositivos, como por exemplo,

    lmpadas, motores e vrios outros atuadores. O Arduino possui um microcontrolador Atmel

    AVR de 8 bits com suporte de entrada e sada, e uma linguagem de programao padro

    21

  • 7/31/2019 Uma Soluo de Domotica Utilizando Sistema Operacional Android e uma Plataforma de Prototipagem Arduino

    21/71

    baseada em C/C++. Um microcontrolador (tambm denominado MCU) um computador em

    um chip, que contm microprocessador, memria, e perifricos de entrada e sada. Um

    microprocessador pode ser programado para funes especficas, diferente de outros

    microprocessadores de propsito geral (como os utilizados em PCs). Eles so embarcados no

    interior de algum dispositivo, no nosso caso, o Arduino, para que possam controlar suas funes

    ou aes. Como possvel perceber, o Arduino semelhante a um PC tradicional, possui

    sensores como dispositivos de entrada (semelhante ao mouse ou teclado) e atuadores como

    dispositivos de sada, como um motor ou um rel que aciona algum dispositivo (semelhante a

    impressoras e caixas de som), porm o Arduino faz interface com circuitos eltricos, podendo

    receber ou variar informaes/tenses sobre eles. Atravs da Figura 2 exibida abaixo possvel

    ter uma viso simplificada do sistema.

    FIGURA 2 EXEMPLO SISTEMA ARDUINO

    Fonte: Apostila Arduino, Universidade Federal Fluminense, 2010.

    O Arduino pode ser conectado a um computador hospedeiro, programado em ambiente

    Windows, Mac ou Linux, desta forma possvel a criao de programas que quando

    implementados fazem com que o hardware execute certas aes. Com isso, configurando a

    etapa de processamento e execuo.

    No sendo suficiente para demonstrar o seu poderio, uma placa Arduino alm de possuir

    um controlador, possui vrias linhas digitais e analgicas de entrada e sada, uma interface

    serial ou USB para se conectar a um hospedeiro que utilizado para program-la e executar

    interaes em tempo real. O micro controlador Atmel AVR pr-programado com um

    bootloader, que simplifica o carregamento de programas para o chip de memria flash

    embutido, facilitando a programao e a incorporao para outros circuitos. Um importante

    22

  • 7/31/2019 Uma Soluo de Domotica Utilizando Sistema Operacional Android e uma Plataforma de Prototipagem Arduino

    22/71

    aspecto do Arduino o padro que todas as placas possuem em relao aos seus conectores,

    permitindo com isso, que a CPU seja interligada com diversos mdulos expansivos projetados

    sobre medida, conhecidos como Shields, que ampliam ainda mais as possibilidades destes

    dispositivos.

    Neste projeto foi utilizado o Arduino Uno, cujas caractersticas so detalhadas na tabela

    1. O Arduino UNO e uma placa baseada no microcontrolador Atmel AVR. Tem 14 pinos de

    entrada ou sada digital (dos quais 6 podem ser utilizados como sadas PWM), 6 entradas

    analgicas, um oscilador de cristal 16 MHz, controlador USB, uma tomada de alimentao, um

    conector ICSP, e um boto de reset. Para sua utilizao basta conect-lo a um computador com

    um cabo USB ou lig-lo com um adaptador AC para DC ou bateria[ARDUINO 2012].

    TABELA 1 CARACTERSTICAS

    Fonte: Documentao oficial Arduino UNO, site arduino.cc , 2012.

    O Arduino Uno pode ser alimentado pela conexo USB ou por qualquer fonte de

    alimentao externa ou bateria. A fonte pode ser conectada com um plug de 2,1 mm (centro

    positivo) no conector de alimentao. Cabos vindos de uma bateria podem ser inseridos nos

    pinos GND (terra) e Vin (entrada de tenso) do conector de alimentao. A placa pode operar

    com uma alimentao externa de 6 a 20 V. Entretanto se a alimentao for inferior a 7 V o pino

    23

  • 7/31/2019 Uma Soluo de Domotica Utilizando Sistema Operacional Android e uma Plataforma de Prototipagem Arduino

    23/71

    de 5 V pode fornecer menos de 5 V e a placa pode ficar instvel. Se a alimentao foi superior a

    12 V o regulador de tenso pode superaquecer e avariar a placa a alimentao recomendada de

    7 a 12 V[ARDUINO 2012].

    A memria do Arduino Uno possui 32 KB de memria Flash (onde armazenado o

    software), alm de 2 KB de SDRAM (onde as variveis ficam) e 1KB de EEPROM (esta ultima

    pode ser lida e escrita atravs da biblioteca EEPROM e guarda os dados permanentemente,

    mesmo com o desligamento da placa). Ao contrrio da memria SDRAM que apagada todas

    as vezes que desligamos o circuito. Como j foi dito, o Arduino Uno possui 14 pinos que

    podem ser usados para entrada e sada, utilizando-se das funes pinMode(), digitalWrite() e

    digitalRead(). Eles operam com 5 V. Cada pino pode fornecer ou receber no mximo 40 mA e

    tem um resistor interno de 20-50 k. Alm disso, alguns pinos tm funes especializadas.

    Serial: 0 (RX) e 1 (TX). Usados para receber (RX) e transmitir (TX) dados seriais

    TTL. Estes pinos so conectados aos pinos correspondentes do chip serial FTDI USB-to-TTL.

    PWM: 3, 5, 6, 9, 10, e 11. Fornecem uma sada analgica PWM de 8-bit com a funo

    analogWrite().

    SPI: 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK). Estes pinos suportam comunicao

    SPI, que embora compatvel com o hardware, no esto includas na linguagem do Arduino.

    LED: 13. H um LED j montado e conectado ao pino digital 13.

    O Arduino Uno tem 6 entradas analgicas, cada uma delas est ligada a um conversoranalgico-digital de 10 bits, ou seja, transformam a leitura analgica em um valor dentre 1024

    possibilidades (exemplo: de 0 a 1023). Por padro, elas medem de 0 a 5 V, embora seja possvel

    mudar o limite superior usando o pino AREF e um pouco de cdigo de baixo nvel.

    Adicionalmente alguns pinos tm funcionalidades especializadas:

    I2C: 4(SDA) e 5(SCL). Suportam comunicao I2C (TWI) usando a biblioteca Wire.

    AREF. Referncia de tenso para entradas analgicas. Usados com analogReference().

    24

  • 7/31/2019 Uma Soluo de Domotica Utilizando Sistema Operacional Android e uma Plataforma de Prototipagem Arduino

    24/71

    Reset. Envie o valorLOWpara reiniciar o microcontrolador. Tipicamente utilizados

    para adicionar um boto de reset aos Shields (placas que podem ser plugadas ao Arduino para

    estender suas capacidades) que bloqueiam o que h na placa, [ARDUINO 2012]. O

    ATmega328 permite comunicao serial no padro UART TTL (5 V), que est disponvel nos

    pinos digitais 0 (RX) e 1 (TX). Um chip FTDI FT232RL na placa encaminha esta comunicao

    serial atravs da USB e os drivers FTDI (includo no software do Arduino) fornecem uma porta

    virtual para o software no computador. O software Arduino inclui um monitor serial que

    permite que dados simples de texto sejam enviados e recebidos da placa Arduino. Os LEDs RX

    e TX da placa piscam quando os dados esto sendo transferidos ao computador pelo chip FTDI

    e h conexo USB (mas no quando h comunicao serial pelos pinos 0 e 1). A biblioteca

    Software Serial permite comunicao serial por quaisquer dos pinos digitais do Arduino Uno. O

    ATmega328 tambm oferece suporte aos padres de comunicao I2C (TWI) e SPI. O software

    do Arduino inclui uma biblioteca Wire para simplificar o uso do barramento I2C. Para usar a

    comunicao SPI veja o datasheet(folha de informaes) do ATmega328, [ARDUINO 2012].

    2.1.2 Ethernet Shield

    O Arduino Ethernet Shield permite que um dispositivo Arduino seja conectado a

    internet, Ele foi desenvolvido com base no chip W5100 que prov uma biblioteca de network

    (IP) que suporta os protocolos UDP e TCP. So permitidas at 4 conexes de socket

    simultaneamente, a partir da biblioteca Ethernet possvel escrever programas para se conectar

    a internet atravs do Ethernet Shield. H tambm neste dispositivo um slot micro-SD onde

    possvel armazenar dados e arquivos para serem acessados via rede, alm disso, o mesmo

    possui um conector RJ45 onde possvel conecta-lo a uma rede local e uma serie deLEDs de

    informao[ARDUINO 2012].

    25

  • 7/31/2019 Uma Soluo de Domotica Utilizando Sistema Operacional Android e uma Plataforma de Prototipagem Arduino

    25/71

    FIGURA 3 ETHERNET SHIELDINCLUDEPICTURE

    "http://arduino.cc/en/uploads/Main/ArduinoEthernetShieldV3.jpg" \* MERGEFORMATINET

    Fonte: Documentao oficial Ethernet Shield, site Arduino.cc , 2012.

    PWR: Indica que a placa est ligada.

    LINK: Indica a presena de uma rede e pisca quando o shield transmite e recebe

    informaes.

    FULLD: Indica que a rede full duplex.

    100M: Indica a presena de uma conexo de rede de 100 MB/s (Em posio a 10

    Mb/s).

    RX: Indica que o shield est recebendo informaes.

    TX: Indica que o shield est transmitindo informaes.

    COLL: Indica colises na rede.

    O jumper de soldas marcado INT pode ser conectado para permitir que o Arduino

    receba informaes de interrupes do W5100 mais isso no suportado pela biblioteca

    Ethernet. Este jumper conecta o pino INT do W5100 ao pino digital 2 do Arduino [ARDUINO

    2012].

    2.1.3 O Sistema Operacional Android

    26

  • 7/31/2019 Uma Soluo de Domotica Utilizando Sistema Operacional Android e uma Plataforma de Prototipagem Arduino

    26/71

    O Android um sistema operacional para dispositivos mveis, executado sobre o ncleo

    Linux. Inicialmente, foi desenvolvido pela Google e posteriormente pela empresa Open

    Handset Alliance, porm, a Google responsvel por toda gerncia e engenharia do projeto. O

    Android permite que desenvolvedores desenvolvam os programas na linguagem Java para

    controlar os dispositivos atravs de bibliotecas desenvolvidas pela Google.

    Segunda o site PC World, em abril de 2012 existiam aproximadamente 400.000

    Aplicativos para Android [PC WORLD 2012].

    FIGURA 4 IMAGEM DO SISTEMA ANDROID

    Fonte: Android 4.0 no Galaxy Nexus.

    Em julho de 2005 a Google comprou a Android Inc, at ento uma pequena empresa

    com sede na Califrnia, USA, [BUSINESSWEEK 2005]. Durante o perodo em que Andy

    Rubin conduziu a Google, foi desenvolvido um projeto de uma plataforma para dispositivos

    mveis baseado no sistema operacional Linux, com o objetivo de ser uma plataforma totalmente

    flexvel de cdigo fonte aberto (Open Source) e de fcil adaptao para qualquer fabricante de

    telefonia mvel. No final de 2006, vrios noticirios lanaram especulaes de que a Google

    27

  • 7/31/2019 Uma Soluo de Domotica Utilizando Sistema Operacional Android e uma Plataforma de Prototipagem Arduino

    27/71

    estaria entrando no mercado de dispositivos mveis. Porm, o primeiro dispositivo a rodar o

    sistema da Google foi somente em outubro de 2008, um aparelho da HTC chamado HTC

    Dream, [HTC 2008]. Posteriormente o sistema da Google tambm estaria sendo implantado em

    tablets, o primeiro a utilizar o sistema foi um tabletda Motorola chamado Xoom em Janeiro de

    2011 [PC WORLD BRASIL 2011].

    Em relao arquitetura do Android, apesar de baseado no Kernel do Linux, tem pouco

    em comum com as distribuies convencionais do sistema de Linus Torvalds. Na verdade o

    sistema operacional Android se assemelha a uma mquina virtual Java, rodando sobre um

    Kernel Linux adaptado para dispositivos de telefonia mvel, possibilitando o desenvolvimento

    de aplicativos Java utilizando de um conjunto de bibliotecas e servios. Sua arquitetura possui

    quatro camadas:

    FIGURA 5 - ARQUITETURA ANDROID

    Fonte: Site oficial Android developer.android.com.

    Na camada mais interna do sistema Android est situada a camada Linux Kernel o

    Android utiliza o Kernel Linux para gerenciar memria, processos, rede e vrios servios de

    28

  • 7/31/2019 Uma Soluo de Domotica Utilizando Sistema Operacional Android e uma Plataforma de Prototipagem Arduino

    28/71

    sistema operacional. Acima desta camada, se encontra uma camada de bibliotecas nativas do

    sistema Android, estas bibliotecas so escritas em C/C++ e compiladas de acordo com a

    arquitetura especfica de cada dispositivo, cada fabricante desenvolve e faz as devidas

    modificaes em funo da arquitetura do telefone mvel. Existem vrias Bibliotecas no SDK

    Android, entre elas esto:

    APIs para renderizao 2D e 3D.

    API para gerenciamento de do banco de dados SQLite.

    APIs para gerenciamento e suporte a vrios formados de udio e vdeo.

    API de controle de dispositivo Bluetooth, Bluez.

    API de gerenciamento de telefonia.

    API Webkit para rpida exibio de HTML.

    APIs para controle de GPS, acelermetro, tela sensvel ao toque.

    Alm de todas as APIs, o SDK inclui um emulador do dispositivo, uma ferramenta para

    debugar e ferramentas para anlise de memria e desempenho e totalmente compatvel com a

    IDE Eclipse de desenvolvimento atravs do plugin ADT (Android Development tool).

    Tambm acima da camada de Kernel Linux existe a camada Android Runtime, a qual

    possui as APIs Java e a maquina virtual Dalvik para a execuo das aplicaes. A mquina

    virtual Dalvik uma mquina virtual baseada em registradores projetada e escrita por Dan

    Bornstein com a contribuio dos engenheiros da Google para o sistema Android [DALVIK

    2012]. A mquina virtual Dalvik foi projetada para requerer uma mnima quantidade de

    memria [DALVIK 2012]. Alm disso, ela foi projetada para possibilitar que mltiplas

    instncias da maquina virtual rodem simultaneamente, deixando para o SO o isolamento de

    processos, o gerenciamento de memria, e o suporte os threads [DALVIK 2012]. A mquina

    Dalvik semelhante a JVM (Mquina virtual Java), porm, ela no utiliza o mesmo ByteCode

    29

  • 7/31/2019 Uma Soluo de Domotica Utilizando Sistema Operacional Android e uma Plataforma de Prototipagem Arduino

    29/71

    que a JVM utiliza. Na verdade, ela utiliza uma ferramenta chamada "dx" que est inclusa na

    SDK do Android, esta ferramenta transforma os arquivos ".class" de classes Java compiladas

    em um formato especfico ".dex" [DALVIK 2012].

    O arquivo .dex o arquivo compilado daDalvik Machine (Arquivo Executvel) ele

    transformado em um formato compactado chamado .apk (Android Package) que ser o arquivo

    a ser utilizado pelo dispositivo. Quando um aplicativo escrito em Java compilado, gerado o

    arquivo .dex automaticamente.

    Acima das camadasRuntime eLibraries se encontra a camadaframeworkde aplicao,

    ela inclui os programas que gerenciam as funes bsicas do telefone, como alocao de

    recursos, aplicaes de telefone, mudana entre processos ou programas, alm de detectar a

    localizao fsica do aparelho. Neste caso, o framwork de aplicao funciona como um

    conjunto de ferramentas bsicas para o desenvolvimento de ferramentas mais complexas pelos

    desenvolvedores. No topo da arquitetura, se encontra a camada de aplicaes (Aplications), esta

    camada a camada onde se encontram as funes bsicas do aparelho, execuo de chamadas

    telefnicas, acesso ao navegador Web, acesso lista de contatos, camada mais utilizada por

    usurios comuns. As outras camadas so utilizadas por desenvolvedores da Google, fabricantes

    de hardware atravs de alguns kits de desenvolvimento.

    Alm da arquitetura Android, existem vrias distribuies, estas distribuies so as

    verses de cada sistema operacional Android, cada aparelho utiliza uma verso apropriada,essas verses muitas vezes so adaptadas para cada operadora de telefonia. A aplicao Android

    desenvolvida para esse trabalho suportada em cinco verses do Android, que esto entre as

    verses 2.3.3 e 2.1, compreendendo cerca de 92,8% das verses utilizadas no mercado, como

    mostrado no quadro abaixo:

    FIGURA 6 - UTILIZAO DAS VERSES ANDROID

    30

  • 7/31/2019 Uma Soluo de Domotica Utilizando Sistema Operacional Android e uma Plataforma de Prototipagem Arduino

    30/71

    Fonte: Site oficial Android developer.android.com.

    O sistema Android trabalha com o conceito deActivity (Atividades) que so similares s

    classes Java JFrame e representam uma tela da aplicao [ANDROID DEVELOPER 2012].

    Controla os estados e a passagem de parmetros de uma tela para outra. Uma tela composta

    por vrios elementos visuais representados pela classe view, a organizao da classe View pode

    ser observada na figura abaixo:

    FIGURA 7 - HIERARQUIA DE CLASSES VIEW

    Fonte: Site oficial Android developer.android.com.

    Uma view pode ser um componente grfico como, por exemplo, botes, imagens, radio

    buttons, checkboxes. Tambm pode ser uma view mais complexa, que agrupa e organiza um

    conjunto de views mais simples.

    Uma view pode ser definida na aplicao Java de forma procedimental ou declarativa,

    na forma procedimental os componentes so definidos nas classes Activitys de forma a produzir

    31

  • 7/31/2019 Uma Soluo de Domotica Utilizando Sistema Operacional Android e uma Plataforma de Prototipagem Arduino

    31/71

    interfaces mais dinmicas, em relao a forma declarativa, a interface definida em um arquivo

    "main.xml". Alm isso, criada uma classe R.java automaticamente que est vinculada a view

    definida na "main.xml", esta funciona de forma semelhante a uma screen wrapper, onde

    possvel controlar os componentes da view atravs desta classe R, [ANDROID DEVELOPER

    2012].

    Alm disso, existe um arquivo chamado AndroidManifest.xml, cuja sua funo

    mapear as Activitys, ou seja, todo projeto Android deve possuir este arquivo. Este arquivo

    semelhante ao arquivo web.xml de mapeamento de Servlets java, ou seja, descreve os

    componentes da aplicao, define nomes asActivitys, declara as permisses de acesso, lista as

    bibliotecas que a aplicao ir utilizar e qualActivity ser iniciada em primeiro lugar quando a

    aplicao for iniciada.

    Tambm existe o conceito de Intents, refere-se s intenes, o sistema Android

    possibilita o programador desenvolver as operaes a serem executadas atravs dosIntents, que

    executam aes de envio e recuperao de dados. utilizado o mtodo startActivitypara iniciar

    uma atividade, broadcastIntentpara enviar oIntentem modo broadcast.

    UmIntentfornece uma facilidade para realizao de uma ligao em tempo de execuo

    final entre o cdigo em diferentes aplicaes. basicamente uma estrutura de dados que abstrai

    a ideia de uma ao a ser executada [ANDROID DEVELOPER 2012].

    Portanto, o sistema operacional Android bem consistente, capaz de se adaptar a vriostipos de plataformas de forma a produzir resultados condizentes com cada tipo de hardware.

    Facilita o desenvolvimento de aplicaes atravs de suas abstraes de fcil entendimento

    muitas vezes de fcil deduo.

    Isso faz com que o sistema Android seja o sistema operacional para dispositivos mveis

    mais utilizados no mundo, alm de ser um sistema open source e gratuito, atende perfeitamente

    a qualquer dispositivo uma vez que totalmente flexvel e facilmente migrvel.

    32

  • 7/31/2019 Uma Soluo de Domotica Utilizando Sistema Operacional Android e uma Plataforma de Prototipagem Arduino

    32/71

    2.2 Trabalhos Relacionados

    Um trabalho que auxiliou muito o desenvolvimento desta proposta foi o desenvolvido

    por [Perozzo e Pereira 2007], cuja proposta consiste em um ambiente inteligente desenvolvido

    para cenrios de automao predial/residencial a partir de um estudo de caso de uma sala de

    seminrios automatizada. O trabalho se desenvolve em uma proposta cujo objetivo

    proporcionar um ambiente inteligente onde seria possvel a interao do usurio atravs de

    dispositivos mveis e interfaces multimodais (onde a interao do usurio com o computadorseria realizada via capacidade sensoriais das pessoas como viso, audio, tacto, olfato, ou seja,

    de forma natural). Para isso foi proposta a utilizao de sensores de temperatura, de iluminao

    e presena para ajustar adequadamente a iluminao do ambiente e a temperatura de acordo

    com uma agenda de ocupao e proporcionar um ambiente agradvel e um baixo consumo de

    energia.

    Outro trabalho interessante e que deve ser citado o trabalho de [EUZBIO 2011], o

    qual descreve o desenvolvimento de um projeto de automao residencial utilizando um

    aparelho de celular com sistema operacional Android conectado a uma rede de Arduino,

    utilizando mdulos ZigBee (padro de rede sem fio, objetivando malha de baixo custo, baixa

    utilizao de energia).O sistema executa comandos nos dispositivos mapeados (que no casoso apenas leds) alm de ser possvel configurar horrios para acionar os dispositivos. A

    arquitetura proposta nesse trabalho se mostrou muito econmica em termos de energia e de

    custo bem acessvel tambm, levando em considerao que os componentes utilizados so open

    sorce. Desta forma, o trabalho teve grande influncia na soluo proposta aqui, onde os

    objetivos a serem alcanados so semelhantes.

    33

  • 7/31/2019 Uma Soluo de Domotica Utilizando Sistema Operacional Android e uma Plataforma de Prototipagem Arduino

    33/71

    2.3 Anlise Crtica Dos Trabalhos Relacionados

    A soluo proposta por [Perozzo e Pereira 2007] se distancia do objetivo do trabalho

    proposto aqui, porm, possibilita uma grande noo da importncia de ambientes automatizados

    os grandes benefcios que estes ambientes inteligentes podem trazer, tais ambientes esto

    intimamente relacionados a computao ubqua mostrando uma outra perspectiva da automao

    residencial/predial.

    Porm, a soluo permite que as preferncias de configurao do ambiente possam serrealizadas por um sistema dotado de inteligncia computacional, soluo essa que pode no ser

    a mais apropriada, uma vez que, poderia necessitar de um possvel treinamento ou uma base de

    dados para determinar a configurao mais apropriada, e com isso, podendo dar margem a erros

    e configuraes incorretas com necessidades do usurio.

    J a soluo proposta por [EUZBIO 2011] apesar de possuir um acionamento de

    dispositivos de forma programada, o alcance de operao est limitado em relao a quantidade

    de Arduinos e mdulos ZigBee, alm disso, o sistema "DroidLair" suporta somente lmpadas,

    reduzindo muito o controle de dispositivos e a automao residencial. Porm, a soluo se

    mostrou extremamente econmica em termos de energia e poderia ser mais econmica ainda se

    dispensasse a utilizao de um PC.

    34

  • 7/31/2019 Uma Soluo de Domotica Utilizando Sistema Operacional Android e uma Plataforma de Prototipagem Arduino

    34/71

    3 DESENVOLVIMENTO DO SISTEMA

    3.1 Introduo

    O objetivo deste trabalho projetar um sistema de automao residencial de baixo custo

    de arquitetura robusta, ou seja, um sistema resistente a falhas, que possibilite grande

    mobilidade, seja preciso nos resultados fornecidos segundo os dados recebidos. Para isso,

    necessria uma arquitetura condizente com esses objetivos. Assim sendo, foi realizada uma

    pesquisa no sentido de buscar os componentes mais condizentes em termos de custo e

    adequabilidade automao residencial. Essa pesquisa concluiu que a plataforma de

    prototipagem Arduino seria a ferramenta essencial para a realizao deste trabalho, uma vez

    que, est sendo muito utilizada em solues de automao residencial por ser de custo baixo e

    possuir total compatibilidade com as demais tecnologias de automao residencial existentes no

    mercado, como por exemplo, X10, Xbee, ZigBee etc. Alm disso, seria necessrio uma

    ferramenta para controle a distancia desta plataforma, flexvel e tambm de baixo custo,

    direcionando o foco desta pesquisa para o sistema operacional Android e os aparelhos mveis

    smartphones. Seria tambm necessrio um componente para o Arduino que possibilitasse o

    fornecimento de servios via web para o controle de forma remota e mvel atravs do

    dispositivo Android. Nesse caso o componente selecionado foi o EthernetShield. Em seguida,

    foram selecionados alguns dispositivos que seriam anexados ao Arduino para simular os

    dispositivos em uma residncia, como atuadores e receptores. Um receptor foi inserido no

    projeto, o sensor de temperatura e cinco atuadores, dois rels e trs LEDs.

    A prxima etapa foi o projeto da arquitetura, posteriormente o desenvolvimento dos

    softwares do Arduino e do sistema Android, de um mecanismo de comunicao entre eles e, por

    ultimo, a implantao e os testes.

    35

  • 7/31/2019 Uma Soluo de Domotica Utilizando Sistema Operacional Android e uma Plataforma de Prototipagem Arduino

    35/71

    3.2 Arquitetura Proposta

    Tendo em vista os objetivos do projeto, a soluo de arquitetura deveria ser robusta no

    sentido de possibilitar mobilidade, flexibilidade, resistncia a possveis falhas e ameaas alm

    de prover resultados precisos. Desta forma, chegou-se a seguinte soluo:

    FIGURA 8 ARQUITERURA DA SOLUO

    Fonte: Arquitetura do projeto

    A arquitetura em questo mostrou-se coesa e extremamente robusta em relao a todos

    os seus componentes, que so descritos abaixo:

    36

  • 7/31/2019 Uma Soluo de Domotica Utilizando Sistema Operacional Android e uma Plataforma de Prototipagem Arduino

    36/71

    TABELA 2 NUMERAO DE FIGURAS

    Numero Componente1 Roteador conectado a internet

    2 Dispositivo Smartphone com sistema Androide o sistema Arduino Manager

    3 Fonte de energia de 5V a 12V4 Arduino Uno5 Sensor de Temperatura6 Mdulo rel com dois rels7 Trs LEDs

    A arquitetura prov uma soluo para uma rede interna que utiliza um IP externo para

    fornecer servios atravs deste. O roteador tem a funo de rotear as solicitaes ao Arduino de

    acordo com a porta acionada. Desta forma, foi necessrio configurar o roteamento das

    chamadas a porta 8080 para o IP interno do Arduino. Neste caso, sempre que houver um envio

    de informao para o IP externo com a porta 8080, o roteador rotear essa informao para o IP

    interno do Arduino. Assim, possvel enviar informaes para o Arduino de qualquer lugar

    atravs de um dispositivo mvel com Arduino Manager e uma conexo com a Internet,

    proporcionando uma alta mobilidade e controle flexvel dos componentes da Arquitetura. Alm

    disso, o Arduino conectado a uma fonte de energia 110V que alimenta o sistema

    continuamente, alm de est conectado internet da residncia por meio de um cabo RJ45,

    possibilitando que fique online e disponvel para receber comandos e enviar informaes de

    forma interrupta. Os componentes Leds e rels so acionados com o recebimento de

    informaes vindas do Arduino. Nesse caso, o dispositivo Android (Arduino Manager) envia

    para a informao para o IP externo, o roteador roteia a informao para o Arduino e o mesmo

    envia a informao para os componentes mapeados no mesmo. No caso do sensor, o Arduino

    Manager envia um request (requisio) e recebe um response (resposta) com a temperatura

    detectada. Os dispositivos so mapeados nas portas do Arduino, que so digitais no caso dos

    atuadores e analgicas no caso do receptor (Sensor). Desta forma, o Arduino Manager envia

    37

  • 7/31/2019 Uma Soluo de Domotica Utilizando Sistema Operacional Android e uma Plataforma de Prototipagem Arduino

    37/71

    para o Arduino o comando que ser executado e qual o dispositivo que ir executar esse

    comando. Com isso, fica extremamente reduzida a possibilidade de uma interpretao errnea

    por parte do dispositivo Arduino dos comandos e informaes enviados para o mesmo, alm

    disso, caso o usurio informe um comando invlido ou um componente que no tem

    possibilidade de executar aquele comando, o Arduino ir simplesmente descartar essa

    informao, fazendo com que a soluo seja robusta a falhas e produza resultados que

    efetivamente sejam requeridos. O Arduino manager possui uma senha de acesso de at 12

    caracteres, fornecendo uma segurana considervel em relao a acessos no autorizados. O

    custo desta soluo est condizente com a proposta, porm, deve-se considerar que a residncia

    j deve possuir um sistema de banda larga j instalada e um dispositivo mvel com sistema

    Android e conexo 3G ou WIFI para possibilitar a comunicao com o Arduino atravs da

    internet.

    Portanto, a arquitetura em questo est totalmente condizente com os objetivos deste

    trabalho, possibilitando robustez, flexibilidade, segurana e baixo custo.

    3.3 Desenvolvimento dos softwares

    Para possibilitar a comunicao entre o Arduino e o Android, foi desenvolvido, um

    sistema projetado para ambiente Android chamado Arduino Manager, um protocolo decomunicao entre os mesmos, e um software para o Arduino cujo objetivo interpretar os

    comandos e enviar as informaes para o Arduino Manager.

    3.3.1 Arduino Manager

    38

  • 7/31/2019 Uma Soluo de Domotica Utilizando Sistema Operacional Android e uma Plataforma de Prototipagem Arduino

    38/71

    Para executar os comandos e controlar os dispositivos mapeados no Arduino de forma

    flexvel e possibilitar mobilidade nesta comunicao, foi desenvolvido para um dispositivo

    mvel com sistema Android um sistema chamado Arduino Manager.

    FIGURA 9 ARDUINO MANAGER

    Fonte: Arduino Manager

    O Arduino Manager um sistema desenvolvido com tecnologia Java e projetado para o

    sistema Android, cujo objetivo neste trabalho enviar e receber informaes da plataforma de

    prototipagem Arduino. Atravs de uma conexo 3G ou WIFI, o sistema Arduino Manager envia

    para um IP e uma Porta pr-configurada alguns comandos, comandos esses que sero

    interpretados pelo software inserido no Arduino e com isso possibilitar o acionamento dos

    dispositivos mapeados no mesmo.

    O Arduino Manager utiliza um banco de dados do dispositivo Android para armazenar

    vrias informaes sobre os dispositivos mapeados no Arduino, como por exemplo: Nome do

    dispositivo, Pino em qual o dispositivo est conectado e o Tipo do dispositivo. Alm disso, o

    Arduino Manager grava na memoria do sistema Android reservada aplicao em questo, as

    39

  • 7/31/2019 Uma Soluo de Domotica Utilizando Sistema Operacional Android e uma Plataforma de Prototipagem Arduino

    39/71

    informaes do Arduino, como IP e Porta, informaes estas que sero utilizadas no processo

    de sincronismo e no processo de envio e recebimento de informaes.

    Ao ser inicializado pela primeira vez, o Arduino Manager exibe duas opes para o

    usurio, Sincronizao e Adicionar. A sincronizao o processo que ir obter do Arduino

    uma lista de dispositivos mapeados no mesmo e inseri-los na base de dados interna do sistema

    Android, que neste caso o banco de dados SQLite. Desta forma, o Arduino Manager consegue

    capturar os dispositivos e seus respectivos pinos de conexo dispensando a necessidade de

    insero de um dispositivo manualmente. Porm, a opo de Adicionar utilizada para inserir

    um dispositivo que por ventura foi mapeado no Arduino em outra pinagem e tal dispositivo no

    tenha sido configurado no software desenvolvido no Arduino.

    Aps realizar o processo de sincronizao, o Arduino Manager j est apto a enviar

    informaes para o Arduino. exibida na tela principal uma lista com todos os dispositivos

    mapeados no Arduino, desta forma, possvel interagir com os mesmos atravs de um simples

    clique no dispositivo que o usurio quer controlar e selecionar a opo Controlar, neste caso,

    o Arduino Manager ir exibir uma tela apropriada para cada tipo de dispositivo, possibilitando

    um controle adequado daquele componente. Com isso, o Arduino Manager consegue se enviar

    as informaes e receber informaes de forma adequada para a plataforma de comunicao

    Arduino. Toda a comunicao em questo possvel atravs de do package java.net atravs da

    classeHttpUrlConnection que abre uma conexo HTTP onde possvel enviarrequests GET ePOST e receber o response via inputStream. Desta forma, o sistema Arduino Manager envia e

    recebe informaes do Arduino.

    No processo de sincronizao o Arduino Manager envia um comando GET com a

    mensagem all. Em seguida, o Arduino identifica a requisio enviada pelo Arduino Manager

    e responde a essa requisio com uma Stringcom todos os dispositivos e seus respectivos pinos

    de conexo, assim o Arduino Manager recupera a String, quebra a mesma, separando os

    40

  • 7/31/2019 Uma Soluo de Domotica Utilizando Sistema Operacional Android e uma Plataforma de Prototipagem Arduino

    40/71

    dispositivos e seus pinos e insere no banco de dados SQLite. Assim, o Arduino Manager saber

    informar ao Arduino quais os dispositivos devem ser acionados. Ou seja, o Arduino Manager

    informa ao Arduino que o dispositivo LED que est no pino 3 deve acender ou desligar. O

    Arduino, atravs do software projetado neste trabalho, recebe a informao e executa o

    comando. Todo o armazenamento do Arduino Manager realizado com o SQLite, exceto o

    armazenamento de IP e porta, que neste caso, so armazenados na memria do sistema Android

    reservada para a aplicao Arduino Manager. Para que fosse possvel estabelecer um meio para

    que lista de dispositivos da tela principal capturasse os objetos armazenados no banco de dados

    SQLite, foi criada uma classeDispositivoAdaptercuja funo povoar a lista de dispositivos na

    tela principal com os dados armazenados no banco de dados alm de realizar suas atualizaes.

    Desta forma, o Arduino Manager persiste os dados da plataforma de prototipagem Arduino e

    realiza de forma precisa sua comunicao, alm de proporcional um ambiente seguro, o

    Arduino Manager evita os erros humanos e prov uma forma simples e prtica para a

    comunicao e envio de comandos para os dispositivos em uma residncia, possibilitando

    mobilidade e flexibilidade neste contexto.

    3.3.2 Protocolo de comunicao

    Alm do sistema Arduino Manager e o software desenvolvido para o Arduino, seria

    necessrio uma forma de comunicao entre estes dois dispositivos, como por exemplo, uma

    linguagem pela qual os dispositivos soubessem o que cada um quer um do outro. Neste caso, foi

    criado um protocolo de comunicao para que estes dispositivos pudessem se comunicar de

    forma simples e eficaz.

    Este protocolo se define principalmente no processo de sincronizao, onde necessrio

    enviar uma Stringinformando quais os dispositivos esto mapeados no Arduino e quais so os

    pinos que os mesmos esto conectados. Assim foi criado o seguinte protocolo de comunicao:

    41

  • 7/31/2019 Uma Soluo de Domotica Utilizando Sistema Operacional Android e uma Plataforma de Prototipagem Arduino

    41/71

    {TIPO1, PINO1: TIPO2, PINO2: TIPO3, PINO3: TIPO4, PINO4:...: TIPOX, PINOX}

    O tipo o tipo do dispositivo mapeado, o pino o pino onde foi instalado o dispositivo no

    Arduino. Est string enviada da plataforma de prototipagem Arduino para o Arduino

    Manager, no momento em que o Arduino Manager envia um GET com o comando:

    dispositivos.

    Exemplo:

    http://ip:porta/?out=dispositivos

    Assim o Arduino sabe que tem que enviar para o Arduino Manager a lista formatada de

    acordo com o protocolo de comunicao.

    Outra forma de comunicao entre o Arduino Manager e o Arduino propriamente dito atravs

    da seguintestringde comando:

    http://ip:porta/?out=1&status=1

    Este comando tambm enviado do Arduino Manager e significa que o dispositivo no pino

    digital 1 deve receber uma tenso eltrica de 5v (status=1). Neste caso, se existir no pino 1

    um Led, o mesmo ir acender. Caso o comando fosse:

    http://ip:porta/?out=1&status=0

    O Led iria desligar, uma vez que o (status=0) significa que o dispositivo no pino 1 no deve

    receber uma voltagem muito baixa e quase insignificante (LOW).

    Existe ainda outra forma de comando, no caso do sensor de temperatura, o comando oseguinte:

    http://ip:porta/?out=sensor

    O sensor um receptor de temperatura, ele conectado em um pino Analgico, desta forma,

    para receber os dados do sensor, no necessrio determinar uma porta e o status do mesmo,

    uma vez que, uma varivelfloatrecebe as informaes do sensor. Para que o Arduino Manager

    42

  • 7/31/2019 Uma Soluo de Domotica Utilizando Sistema Operacional Android e uma Plataforma de Prototipagem Arduino

    42/71

    saiba qual a temperatura, ele envia o comando acima e solicita o valor da varivel, esse valor

    enviado para o Arduino Manager e o mesmo exibe o valor na tela.

    Portanto, o protocolo de comunicao entre o Arduino Manager e o Arduino se mostrou

    simples e de fcil transmisso (uma vez que, a informao trafegada bem pequena, no mximo

    32 bytes), interpretao, entendimento, e se mostrou umastringde fcil fragmentao para ser

    trabalhada pelo Arduino Manager, desta forma, sendo segura e evitando possveis erros de

    interpretao.

    3.3.3 Programao Arduino

    A programao executada na plataforma de prototipao Arduino teve como objetivo

    mapear os dispositivos conectados alm de estabelecer os procedimentos de configurao e

    envio de informao para o Arduino Manager seguindo o protocolo de comunicao. Desta

    forma, o primeiro passo foi configurar o Arduino para a conexo atravs do Ethernet Shield,

    neste caso, foi necessrio a configurao das seguintes informaes:

    TABELA 3 CONFIGURAO ARDUINO PARA ETHERNET SHIELD

    Nome da configurao ValorMac Address 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xBE

    IP da rede Interna 192.168.1.107

    Gateway do roteador da rede 192.168.1.1Mscara de subrede 255.255.255.0Porta de comunicao 8080

    O mac adresss o endereo fsico do Arduino, sendo necessrio para ser identificado, o

    IP configurado o IP interno da rede onde o Arduino est conectado. Para que o Arduino

    receba informaes de fora da rede interna, necessrio configurar um roteamento no roteador

    onde o Arduino est conectado. Dessa forma, o roteador receber as informaes no endereo

    externo e encaminhar para o IP do Arduino que foi configurado. Outra informao necessria,

    43

  • 7/31/2019 Uma Soluo de Domotica Utilizando Sistema Operacional Android e uma Plataforma de Prototipagem Arduino

    43/71

    foi o endereo do Gateway, necessrio para que o Arduino identifique o IP do roteador ao qual

    ele est conectado atravs do Ethernet Shield. Alm disso, a mscara de sub rede (usada para

    subdividir a rede interna, que neste caso, utilizada a mascara da rede interna j configurada) e

    a porta de comunicao tambm foram configuradas, a porta de comunicao 8080 foi utilizada

    para evitar problemas com firewall, uma vez que, a porta 80 costuma possuir esse tipo de

    proteo.

    Em seguida, foi necessrio mapear todos os dispositivos. Quase todos os dispositivos

    foram mapeados em portas digitais, exceto o sensor de temperatura, que foi mapeado em uma

    porta analgica. A Tabela 3 resume o mapeamento de dispositivos.

    TABELA 4 MAPEAMENTO ARDUINO DE DISPOSITIVOS

    Dispositivo PortaRel 1 Digital 8Rel 2 Digital 7

    Led 1 (Amerelo) Digital 6

    Led 2 (Vermelho) Digital 5Led 3 (Verde) Digital 4

    Sensor de temperatura Analgica 0

    Posteriormente, os dispositivos foram configurados com dispositivos de entrada

    (Receptores) e de sada (Atuadores).

    A forma como Arduino ir "conversar" com o Arduino Manager foi programada atravs

    de um case , quando o Arduino recebe um determinado comando, ele identifica qual o comando

    e aciona o case referente aquele comando da seguinte forma:

    case acao_pino_desliga:

    digitalWrite(pinOutRelay, LOW);

    break;

    case acao_pino_liga:

    44

  • 7/31/2019 Uma Soluo de Domotica Utilizando Sistema Operacional Android e uma Plataforma de Prototipagem Arduino

    44/71

    digitalWrite(pinOutRelay, HIGH);

    break;

    Assim, o Arduino Manager informa para o Arduino qual pino deve ser ligado ou

    desligado. Atravs dos comandos descritos na seo de referente ao protocolo de comunicao,

    o Arduino identifica o comando e aciona o case responsvel por disparar o comando apropriado

    no pino certo e desta forma acionar o dispositivo mapeado.

    3.4 Implantao e teste

    Foram executados vrios testes, em toda a soluo, os quais tiveram como objetivo

    avaliar a robustez do sistema, ou seja, sua resistncia a falhas, evitar erros do usurio, verificar

    se a informao foi processada e executada corretamente alm de analisar os seus pontos mais

    sensveis a possveis falhas.

    3.4.1 Primeiro Teste

    O primeiro teste foi realizado o procedimento de mapeamento e sincronizao entre o

    Arduino Manager e o Arduino e o controle dos dispositivos mapeados, esse teste foi executado

    atravs dos seguintes passos:

    1- Mapeamento dos dispositivos e configurao da string de comunicao entre a

    plataforma de prototipao Arduino e o sistema Arduino Manager para Android.

    2- Configurao dos dados de acesso ao Arduino, IP e Porta, no Arduino Manager.

    45

  • 7/31/2019 Uma Soluo de Domotica Utilizando Sistema Operacional Android e uma Plataforma de Prototipagem Arduino

    45/71

    3- Sincronizao dos dispositivos Arduino Manager e Arduino alm da verificao se os

    dispositivos mapeados foram identificados corretamente.

    4- Acesso aos dispositivos mapeados e verificao se as telas de comandos corretas

    foram acionadas para cada tipo de dispositivo.

    5- Envio e recepo de dados e informaes entre os dispositivos e verificao se os

    dados no foram comprometidos no processo de sincronizao.

    6- Verificao de os dados form bem interpretados e os comandos enviados foram

    executados corretamente.

    Todas as etapas realizadas nesse primeiro teste foram executadas com sucesso sem

    nenhuma falha ou erro, alm do sistema se mostrar bem rpido nas etapas de sincronizao,

    envio e recepo de dados e informaes. O sistema se mostrou tambm estvel, mesmo em

    momentos em que o acesso 3G estava com velocidade reduzida.

    3.4.2 Segundo Teste

    O segundo teste foi realizado para testar a insero manual das informaes dos

    dispositivos mapeados, acionando a opo no Arduino Manager denominada "Adicionar". Essa

    funcionalidade insere o dispositivo de forma manual no sistema, ou seja, sem o auxilio da

    sincronizao, uma vez que, o processo de sincronizao insere o dispositivo de forma

    automtica.As etapas foram as seguintes:

    1- Adicionar os dispositivos com suas respectivas configuraes "manualmente".

    2- Acesso aos dispositivos mapeados e verificao se as telas de comandos corretas

    foram acionadas para cada tipo de dispositivo.

    3- Envio e recepo de dados e informaes entre os dispositivos e verificao se os

    dados no foram comprometidos.

    46

  • 7/31/2019 Uma Soluo de Domotica Utilizando Sistema Operacional Android e uma Plataforma de Prototipagem Arduino

    46/71

    4- Verificao de os dados form bem interpretados e os comandos enviados foram

    executados corretamente.

    O segundo teste foi finalizado com sucesso, uma vez que os dados do Arduino se

    mantiveram gravados na memria do sistema Android e a programao do Arduino no

    necessitou ser alterada, ou seja, duas etapas do processo foram economizadas.

    3.4.3 Terceiro Teste

    O terceito teste foi realizado objetivando detectar falhas em relao a possveis

    incidentes relacionados aos componentes do sistema, como por exemplo:

    1- Teste de queda de conexo: O Arduino Manager, informa ao usurio que no foi

    possvel estabelecer uma conexo com o dispositivo Arduino, neste caso, a ao abortada e o

    sistema exibe a tela principal.

    2- Teste de configurao invlida de IP ou Porta: O Arduino Manager, informa ao

    usurio que no foi possvel estabelecer uma conexo com o IP e Porta configurados em funo

    do timeoutdeterminado para conexo.

    3- Configurao Manual de dispositivos mapeados e envio de informao para os

    mesmos. Neste caso, o Arduino Manager no exibe nenhuma mensagem de erro ,ou seja,

    enviado o comando para o Arduino normalmente, porm, caso o pino esteja configurado no

    Arduino e no Arduino Manager com tipos distintos, a tela acionada no Arduino Manager para

    controle do dispositivo, pode no ser condizente com o dispositivo mapeado no Arduino. Por

    exemplo: O dispositivo mapeado no Arduino um atuador e no Arduino Manager um receptor.

    Neste caso, no ser possvel estabelecer uma comunicao correta entre os dispositivos,

    porm, no ocorrer nenhum erro que comprometa o sistema ou operao, no entanto, os

    dispositivos acionados no sero os dispositivos corretos.

    47

  • 7/31/2019 Uma Soluo de Domotica Utilizando Sistema Operacional Android e uma Plataforma de Prototipagem Arduino

    47/71

    4- Teste de robustez em funo do tempo de servio online e queda de energia: O

    sistema ficou online durante 5 dias sem nenhuma interrupo nos servios. Posteriormente foi

    executado um teste de queda de energia, onde a energia da residncia foi desligada e o sistema

    foi reiniciado. O que se observou foi que, aproximadamente 20 segundos aps a energia ser

    religada e o roteador voltar a operao, foi possvel enviar e receber informaes do Arduino.

    3.4.4 Quarto Teste

    O quarto teste teve como objetivo simular um acesso no autorizado ao sistema Arduino

    Manager e tentativa de manipulao dos dispositivos mapeados no Arduino. No entanto, no foi

    possvel acessar nem mesmo a tela principal do sistema, uma vez que, para acessar o Arduino

    Manager necessrio uma senha de no mnimo 5 dgitos e no mximo 10. Desta forma seria

    necessrio o seguinte clculo para analisar a probabilidade (senha de 5 a 10 caracteres, levando

    em considerao que para cada caractere da senha, 72 caracteres podem ser utilizados, entre

    caracteres especiais e os normais em caixa alta ou baixa):

    Arranjo com repetio:

    AR(72, 5) + AR(72, 6) + AR(72, 7) + AR(72, 8) + AR(72, 9) + AR(72, 10);

    AR(72, 5) = 725= CALCULAR

    S =AR(72, 5) + AR(72, 6) + AR(72, 7) + AR(72, 8) + AR(72, 9) + AR(72, 10);

    Probabilidade = 1/S.

    Desta forma, a chance de se descobrir a senha muito baixa, mesmo utilizando sistemas

    para descobrir senhas, seria uma grande quantidade de testes a serem realizados necessitando de

    muito tempo para ser realizado.

    48

  • 7/31/2019 Uma Soluo de Domotica Utilizando Sistema Operacional Android e uma Plataforma de Prototipagem Arduino

    48/71

    Portanto, todos os testes foram executados sem erro, nenhuma exceo foi acionada em

    funo dos mesmos, porm, na terceira etapa do terceiro teste, foi possvel identificar uma

    possvel vulnerabilidade, onde o usurio ao adicionar o dispositivo "manualmente", atravs da

    opo "Adicionar" do Sistema AM, pode vir a configurar de forma errada o mapeamento do

    dispositivo, podendo vir a acionar um dispositivo errado. No entanto, esta falha pode ser

    facilmente resolvida, fazendo uma pequena alterao no protocolo de comunicao.

    Na quarta etapa do terceiro teste foi realmente surpreendente a velocidade com que o

    sistema voltou a prover os servios. Poucos segundos aps o retorno da energia e inicializao

    do roteador, o sistema j estava totalmente em operao. Outro fator relevante identificado nos

    testes, foi a importncia da internet em todo o projeto. Caso a internet fique suspensa, o projeto

    fica impossibilitado de prover os servios, de forma que s seria possvel o controle do Arduino

    atravs do WIFI, ou seja, o dispositivo com Android dever estar conectado via WIFI rede

    local, reduzindo muito o poderio da soluo.

    3.5 Como Usar o Arduino Manager

    O Arduino Manger funciona em todos os dispositivos com sistema operacional Android

    2.2 ou superior. Para instalar o AM nos dispositivos mencionados, necessrio executar o seu

    arquivo de instalao chamado "ArduinoManager.apk", desta forma, o sistema Android ir

    instalar o app e realizar todas as configuraes necessrias.

    Em seguida, o usurio deve executar o processo fsico de montagem do circuito no

    Arduino, com isso, ser necessrio as seguintes etapas:

    1- Acoplar oEthernet Shield,

    2- Plugar os dispositivos em suas portas digitais ou analgicas

    3- Conectar o circuito a um roteador com banda larga e configurar o roteador para que

    faa o direcionamento dos pacotes para o IP definido no Arduino.

    49

  • 7/31/2019 Uma Soluo de Domotica Utilizando Sistema Operacional Android e uma Plataforma de Prototipagem Arduino

    49/71

    Aps estas etapas, o AM estar instalado e o circuito montado, restando configurar o

    Arduino para enviar os mapeamentos dos dispositivos e configurar os seus mtodos para

    interpretar os comandos http enviados pelo AM. Esta etapa requer um conhecimento bsico

    de programao, uma vez que, caso o usurio queira inserir novos dispositivos alm dos j

    mapeados neste projeto, ele dever alterar o cdigo fonte do Arduino.

    A programao do Arduino deve seguir o padro estabelecido no protocolo, para que o

    AM saiba interpretar da forma correta as informaes enviadas pelo Arduino. Desta forma,

    alm de mapear os dispositivos no cdigo fonte do Arduino, o usurio dever alterar a seguinte

    linha de cdigo colocando os dispositivos e seus respectivos pinos onde foram mapeados:

    client.print("Led,6:Led,5:Led,4:Relay,8:Relay,7:Sensor,0");

    Em seguida o usurio dever criar uma nova string de comando de acordo com o

    dispositivo que ele mapeou, da seguinte forma:

    String r_pinOutRelay_down = "GET /?out=8&status=0 HTTP/1.1";if(readString.startsWith(r_pinOutRelay_down))

    {current_action = action_mypin_down;}

    case action_mypin_down:digitalWrite(pinOutRelay, LOW);

    break;

    Este segmento de cdigo do Arduino indica que ao receber o comando "GET" com

    status "0" e pino "8", o Arduino ir enviar um comando para a porta digital "8" com voltagem

    LOWpara o dispositivo desligar.

    Com o Arduino programado e o AM instalado no dispositivo Android alm do circuito

    montado e online, o processo de uso do AM pode iniciar.

    O usurio dever acionar o AM no dispositivo Android, ao ser inicializado, o AM ir

    solicitar que uma senha seja definida, essa senha ser solicitada todas as vezes que o sistema for

    iniciado. O usurio ao terminar a definio da senha e logar no sistema, o Arduino Manager ir

    50

  • 7/31/2019 Uma Soluo de Domotica Utilizando Sistema Operacional Android e uma Plataforma de Prototipagem Arduino

    50/71

    exibir duas opes, "Adicionar" e "Sincronizar". A opo "Adicionar" serve para adicionar o

    dispositivo de forma "manual", ou seja, o usurio sabe a configurao do dispositivo no

    Arduino e quer inserir o dispositivo na base de dados para posteriormente control-lo.

    FIGURA 10 - ADICIONAR O DISPOSITIVO "MANUALMENTE"

    A opo "Sincronizar" realiza o processo de insero de todos os dispositivos mapeados

    no Arduino na base de dados do AM de forma automtica, ao selecionar essa opo, o usurio

    deve digitar o IP e a Porta onde o Arduino ir receber as requisies e acionar a opo

    "Sincronizar".

    FIGURA 11 - SINCRONIZAR ARDUINO

    51

  • 7/31/2019 Uma Soluo de Domotica Utilizando Sistema Operacional Android e uma Plataforma de Prototipagem Arduino

    51/71

    Aps o trmino deste processo, AM ir preencher uma lista com todos os dispositivos

    mapeados no Arduino.

    FIGURA 12 - DISPOSITIVO SINCRONIZADO

    Para que o usurio controle os dispositivos, com apenas um clique no dispositivo e a

    seleo da opo "controlar" o usurio poder controlar o dispositivos de seu interesse.

    FIGURA 13 - CONTROLE DO DISPOSITIVO

    A opo "Editar" permite que o usurio edite as configuraes do dispositivoarmazenado e a opo "Excluir" permite excluir um dispositivo armazenado. Aps selecionar a

    52

  • 7/31/2019 Uma Soluo de Domotica Utilizando Sistema Operacional Android e uma Plataforma de Prototipagem Arduino

    52/71

    opo controlar, o AM ir acionar uma tela de controle apropriada para cada dispositivo de

    acordo com o seu tipo, exemplo:

    FIGURA 14 - TELA DE CONTROLE DO DISPOSITIVO LED

    Esta tela responsvel pelo controle de um dispositivo led, atravs da primeira opo,

    possvel ligar ou desligado o led.

    Portanto, o AM um software de estrema simplicidade, fcil de usar e muito intuitivo,

    possibilitando ao usurio o envio de informaes ao Arduino de forma rpida e precisa.

    4 ANLISES E DISCUSSO

    Com os testes realizados foi possvel analisar vrios detalhes da soluo, suas principais

    vantagens e desvantagens alm de possibilitar identificar os componentes mais importantes e

    sensveis na arquitetura. A comear pela forma de acesso, a proposta uma soluo que prov

    acesso via internet, neste caso, caso o roteador cujo Arduino est conectado travar ou ficar

    inoperante, o servio estar comprometido at que o roteador seja reinicializado e volte ao

    funcionamento, alm disso, caso o aparelho mvel com dispositivo Android ou a residncia

    fique desprovida de acesso a internet, somente ser possvel o acesso e controle dos dispositivos

    53

  • 7/31/2019 Uma Soluo de Domotica Utilizando Sistema Operacional Android e uma Plataforma de Prototipagem Arduino

    53/71

    instalados no Arduino caso o aparelho esteja conectado via WIFI a rede local, desta forma, no

    seria necessrio uma conexo com a internet para possibilitar que os dispositivos se

    comuniquem. Outra questo que deve ser discutida a questo de lentido do servio 3G,

    apesar do trafego de informao entre o AM e o Arduino serem bem reduzido, caso o servio

    3G apresente lentido, esse fator pode influenciar na velocidade de envio e recepo de

    informaes entre os dispositivos envolvidos e com isso, aumentar o tempo de execuo dos

    comandos nos dispositivos mapeados no Arduino. Outra fator que deve ser analisado o delay

    de comunicao entre os ns da rede, quanto mais distantes dois ns esto, maior o tempo de

    transferncia de informao entre eles, portanto, influenciando tambm no tempo de envio e

    recepo de informaes entre os dispositivos.

    Outros testes devem ser realizados com equipamentos reais, como por exemplo,

    lmpadas, portes eletrnicos, motores e eletrodomsticos para avaliar a eficcia da soluo,

    uma vez que, os testes realizados foram realizados com equipamentos que simulam estes

    dispositivos como leds e rels.

    No entanto, a soluo apresentou resultados condizentes com os esperados, alm de

    possibilitar uma grande flexibilidade em relao ao acesso e controle dos dispositivos, permitiu

    tambm mobilidade e um controle preciso dos recursos da residncia e de forma remota. No

    obstante, em trabalho futuros, tal soluo pode ser melhorada, a arquitetura pode ser modificada

    para a insero de um firewall e possibilitar uma segurana maior, o protocolo do AM e oArduino pode ser alterado para responder a possveis erros de comunicao e o sistema AM

    pode ser alterado para suportar outros dispositivos como, por exemplo: sensor de presena,

    sensor de luminosidade, motor shield entre outros dispositivos que podem ser conectados ao

    Arduino.

    54

  • 7/31/2019 Uma Soluo de Domotica Utilizando Sistema Operacional Android e uma Plataforma de Prototipagem Arduino

    54/71

    5 CONCLUSES

    Em funo do projeto desenvolvido, que teve como objetivo o desenvolvimento de uma

    soluo robusta para automao residencial e cujo custo estivesse acessvel em relao s

    solues oferecidas no mercado atualmente, possvel constatar atravs deste trabalho que esse

    objetivo foi atingido em sua plenitude.

    Os testes nos mostraram que o sistema robusto, evitando erros por parte de usurio,

    principalmente quando se utiliza a opo de sincronizao. Alm disso, o sistema muito

    seguro, tendo em vista que, no quarto teste realizado, as possibilidades de acesso no autorizado

    so desprezveis. Alm disso, toda a soluo bastante resistente a falhas, conforme

    evidenciado no terceiro teste, no qual foi simulada uma queda de energia, onde o servio foi

    restabelecido 20 segundos aps a o retorno da energia. Entretanto, foi possvel identificar que o

    roteador uma pea extremamente crtica na soluo, pois caso haja um travamento do mesmo,

    todo o servio seria comprometido desta forma necessitando ser reinicializado. Foi possvel

    identificar tambm que caso a internet seja suspensa ou fique indisponvel, somente seria

    possvel o controle dos dispositivos conectados na rede local via WIFI, limitando o poderio da

    soluo.

    No entanto, a soluo se mostrou bem econmica, considerando as solues existentes

    atualmente. O custo total de todo o projeto foi de R$260,00, levando em considerao que a

    soluo com custo mais acessvel pesquisada no mercado atualmente tem o valor de 4 mil reais,

    o valor do projeto nos mostra uma economia de 3740 R$, tendo em vista que, a residncia

    possua internet banda larga e um aparelho celular com Android 2.2 ou superior. A soluo de 4

    mil oferecida pela Kalatec Home, oferece ao cliente um table samsung com WIFI e com o

    sistema 3NYX e controle de iluminao da residncia, porm, o a soluo no oferece

    automao via web e nem controle de controle de outros dispositivos como os simulados neste

    trabalho.

    55

  • 7/31/2019 Uma Soluo de Domotica Utilizando Sistema Operacional Android e uma Plataforma de Prototipagem Arduino

    55/71

    A arquitetura e as tecnologias empregadas no projeto so openSource possibilitando que

    o proprietrio possa alterar da forma que achar necessrio os componentes de forma a deixar

    mais condizente com a sua necessidade. Alm disso, fica evidenciado o poderio da soluo,

    uma vez que, todo o controle dos dispositivos pode ser realizado de qualquer lugar onde exista

    internet.

    Portanto, a soluo proposta condizente com os objetivos desse trabalho em todos os

    aspectos alm de ser realmente economicamente mais acessvel que outras solues

    pesquisadas, possibilitando uma popularizao do acesso a esse tipo de sistema.

    5.1 Trabalhos Futuros

    Como trabalhos futuros, uma grande variedade de melhorias poderiam ser realizadas em

    relao soluo proposta, mesmo porque, todas as tecnologias empregadas so livres.

    Podemos citar algumas melhorias tais como:

    -Modificao da arquitetura para a insero de um firewall e proporcionar possibilitar

    uma segurana maior de todo projeto;

    -O protocolo do AM e o Arduino podem ser alterados para responder a possveis erros

    de comunicao.

    -Alterao do sistema AM para suportar outros dispositivos como, por exemplo: sensor

    de presena, sensor de luminosidade, motorshield, dentre outros.

    56

  • 7/31/2019 Uma Soluo de Domotica Utilizando Sistema Operacional Android e uma Plataforma de Prototipagem Arduino

    56/71

    REFERNCIAS

    MURATORI, Jos Roberto; FORTI, Jos Cndido; OMAI, Paulo. AssociaoBrasileira de Automao Residencial: Home Cabling Training Manual. 2004.BOLZANI, Caio Augustus M. Residncias Inteligentes. So Paulo: Livraria daFsica, 2004.

    MEYER, Gordon. Smarth Home Hacks: Tips & Tools for Automating YourHouse. Sebastopol: OReilly Mdia, 2004.

    NOGUEIRA. Oracy. Pesquisa Social. So Paulo: Nacional, 1964.

    GIL, Antnio Carlos. Mtodos e Tcnicas de Pesquisa Social. So Paulo:Atlas, 1995.

    LACOMBE, Francisco Jos Masset. Dicionrio de Administrao. So Paulo:Saraiva, 2004.

    ELSENPETER, R. C.; VELTE, T. J. (2003) Build Your Own Smart Home, McGraw-Hill /Osborne.

    ABI RESEARCH. Home-Page. Disponvel emAcesso em 14 Abril. 2012.

    PEREIRA, Luiz Antnio de morais. Automao Residencial: rumo a um futuro pleno de novassolues, So Paulo, 2007.

    VARGAS, A. A. (2004) Estudo sobre Comunicao de Dados via Rede Eltrica paraAplicaes de Automao Residencial/Predial, Universidade Federal do Rio Grande do Sul.Projeto final de Graduao.

    TERUEL, Evandro Carlos, Automao residencial: pesquisa quantitativa para conhecer anecessidade do cliente, Anais do II Workshop de Ps- Graduao e pesquisa do CEETEPS, p.2-4, 2007.

    SILVA, Lus Filipe Gomes, Automao em ambientes residenciais, Universidade de Aveiro2008.

    WIKIPEDIA. Home-Page. Disponvel em Acesso em 12 de Abril.2012.

    SPARKFUN, Home-Page. Disponvel em Acesso em 15 de Abril

    2012.

    57

  • 7/31/2019 Uma Soluo de Domotica Utilizando Sistema Operacional Android e uma Plataforma de Prototipagem Arduino

    57/71

    TELECO. Home-Page. Disponvel em < http://www.teleco.com.br/ncel.asp> Acesso em 12 deAbril. 2012.