UNIVERSIDADE DO VALE DO ITAJAÍ CENTRO DE …siaibib01.univali.br/pdf/Elienay da Cunha.pdf · LISTA...

download UNIVERSIDADE DO VALE DO ITAJAÍ CENTRO DE …siaibib01.univali.br/pdf/Elienay da Cunha.pdf · LISTA DE ABREVIATURAS E SIGLAS ACL Asynchronous Connection-Less ... UART Universal Asynchronous

If you can't read please download the document

Transcript of UNIVERSIDADE DO VALE DO ITAJAÍ CENTRO DE …siaibib01.univali.br/pdf/Elienay da Cunha.pdf · LISTA...

  • UNIVERSIDADE DO VALE DO ITAJA

    CENTRO DE CINCIAS TECNOLGICAS DA TERRA E DO MAR

    CURSO DE CINCIA DA COMPUTAO

    SISTEMA MICROCONTROLADO BASEADO EM AUTENTICAO

    REMOTA E ACIONAMENTO POR MEIO DE DISPOSITIVOS MVEIS

    por

    Elienay da Cunha

    Itaja (SC), novembro de 2013

  • UNIVERSIDADE DO VALE DO ITAJA

    CENTRO DE CINCIAS TECNOLGICAS DA TERRA E DO MAR

    CURSO DE CINCIA DA COMPUTAO

    SISTEMA MICROCONTROLADO BASEADO EM AUTENTICAO

    REMOTA E ACIONAMENTO POR MEIO DE DISPOSITIVOS MVEIS

    rea de Sistemas Embarcados e Distribudos

    por

    Elienay da Cunha

    Relatrio apresentado Banca Examinadora

    do Trabalho Tcnico-cientfico de Concluso

    do Curso de Cincia da Computao para

    anlise e aprovao.

    Orientador: Douglas Rossi de Melo, M. Sc.

    Co-orientador: Cesar Albenes Zeferino, Dr.

    Itaja (SC), novembro de 2013

  • RESUMO

    CUNHA, Elienay. Sistema microcontrolado baseado em autenticao remota e

    acionamento por meio de dispositivos mveis. Itaja, 2013. 93 p. Trabalho Tcnico-

    cientfico de Concluso de Curso (Graduao em Cincia da Computao) Centro de

    Cincias Tecnolgicas da Terra e do Mar, Universidade do Vale do Itaja, Itaja, 2013.

    Com a difuso dos dispositivos mveis, como smartphones e tablets, torna-se possvel e

    desejvel a utilizao desses elementos em conjunto com outras tecnologias para o

    desenvolvimento de diversos sistemas, como os sistemas de automao. Uma tecnologia que

    pode ser utilizada nessa integrao corresponde aos microcontroladores, que so dispositivos

    que contm recursos que permitem controlar mecanismos de diversas naturezas. possvel

    controlar o acesso a um ambiente por meio de um sistema microcontrolado, utilizando

    tcnicas de autenticao para manter algum nvel de segurana. Neste trabalho, utiliza-se uma

    tcnica de autenticao multifator, com dois requisitos: algo que se possua (dispositivo mvel

    com uma aplicao) e algo que se saiba (informaes de usurio e senha), para uma consulta

    em um banco de dados externo. Foi utilizado o Arduino para a elaborao do sistema de

    controle, por se tratar de uma plataforma aberta e de baixo custo que oferece os recursos

    necessrios para a comunicao sem fio com o dispositivo mvel, para a autenticao do

    usurio e para a ativao de um fecho eletromagntico. Como protocolo de comunicao entre

    as unidades, foi utilizado o Bluetooth, comumente aderido pela maioria dos dispositivos

    mveis. A aplicao para o dispositivo mvel foi desenvolvida para a plataforma Android,

    que prov ao usurio uma interface grfica que permite a entrada dos dados e comunicao

    por meios no guiados. Com a integrao dos dispositivos e tecnologias, foi possvel acionar

    um fecho eletromagntico, mediante a autenticao de um usurio em uma base de dados

    externa.

    Palavras-chave: Automao. Arduino. Comunicao Mvel.

  • ABSTRACT

    With the spread of mobile technologies such as smartphones and tablets, it is possible to use

    these devices with other technologies for the implementation of many systems like automation

    systems. Microcontrollers are a technology used to control mechanisms of various natures,

    like environments access. In this work, it is used a multifactor authentication to control the

    permission to access an environment which requires two conditions: something you have

    (mobile device with an application) and something you know (user information and

    password). It was adopted the Arduino technology as the microcontroller unit because it is an

    open and low cost platform that provides the necessary resources for processing and wireless

    communication with the mobile device for user authentication. Bluetooth was the wireless

    communication protocol chosen to integrate the mobile device and the controller unit. The

    software was developed for the Android platform, which provides to the user a graphical

    interface that allows the entry of data and support to the communication protocol. After the

    bed, it was possible to activate an electromagnetic lock, by authenticating a user in an

    external database.

    Keywords: Automation. Arduino. Mobile Communication.

  • LISTA DE FIGURAS

    Figura 1. Viso geral do sistema. ............................................................................................. 13 Figura 2. Modelo de referncia OSI. ........................................................................................ 19

    Figura 3. Taxonomia por forma de energia .............................................................................. 22 Figura 4. Autenticao multifator: (a) Algo que se sabe; (b) Algo que se tem; (c) Algo que

    parte do usurio ........................................................................................................................ 26 Figura 5. Duas piconets formando uma scatternet ................................................................... 27 Figura 6. Estrutura do quadro Bluetooth .................................................................................. 28

    Figura 7. Viso frontal do Arduino Uno .................................................................................. 30

    Figura 8. Viso frontal do Arduino Mega ADK ....................................................................... 31

    Figura 9. Viso frontal do Arduino Nano ................................................................................. 32 Figura 10. Arquitetura do Android ........................................................................................... 36 Figura 11. Elementos do DroidLar ........................................................................................... 38 Figura 12. Telas da aplicao. (a) tela inicial; (b) tela de configuraes ................................. 40

    Figura 13. Sistema de automao residencial ........................................................................... 41 Figura 14. Interface de Usurio ................................................................................................ 42

    Figura 15. Comunicao com objetos da residncia atravs de celular ................................... 43 Figura 16. Componentes de hardware do mdulo conversor ................................................... 44 Figura 17. Viso macro do sistema DomoWeb ........................................................................ 45

    Figura 18. Pgina de ambientes do DomoWeb ........................................................................ 46 Figura 19. Fecho eletromagntico Amelco FE61 ..................................................................... 49

    Figura 20. Comunicao do dispositivo mvel com o Arduino ............................................... 50

    Figura 21. Comunicao do Arduino com o servidor .............................................................. 50

    Figura 22. Acionamento do fecho eletromagntico.................................................................. 51 Figura 23. Casos de uso ............................................................................................................ 53 Figura 24. Diagrama de sequncia ........................................................................................... 56

    Figura 25. Diagrama de classes ................................................................................................ 57

    Figura 26. Prottipo da tela de login ........................................................................................ 58 Figura 27. Tela do aplicativo mvel ......................................................................................... 60 Figura 28. Tela principal com a adio do menu ..................................................................... 61 Figura 29. Fluxograma das tarefas principais da aplicao Android ....................................... 65 Figura 30. Fluxograma dos processos implementados no mtodo loop ................................... 68

    Figura 31. Mdulo EthernetShield acoplado ao Arduino Uno ................................................. 69 Figura 32. Mdulo Bluetooth e mdulo Rel acoplados na protoboard ................................... 70 Figura 33. Modelo esquemtico do Arduino ............................................................................ 70

    Figura 34. Prototipao completa do Arduino.......................................................................... 72 Figura 35. Prototipao do Arduino acionando o fecho eletromagntico ................................ 73 Figura 36. Fluxograma da integrao com servidor ................................................................. 74 Figura 37. Execuo da aplicao Android. (a) Sansung Galaxy Young S5360; (b) Motorola

    Xoom 2 ME .............................................................................................................................. 76 Figura 38. Resultado dos testes com identificador e senha corretos, sem permisso. (a)

    Mdulo rel desligado e lmpada apagada; (b) Mdulo rel ativado e lmpada acesa............ 77 Figura 39. Tela da aplicao Android com mensagem de erro ao enviar dados incorretos ..... 77

  • LISTA DE QUADROS

    Quadro 1. Comparativo dos trabalhos similares ....................................................................... 47 Quadro 2. UC01 Acionar o fecho eletromagntico ............................................................... 54

    Quadro 3. UC02 Autenticar no sistema ................................................................................. 55 Quadro 4. Lista de componentes de hardware .......................................................................... 69 Quadro 5. Especificao do Arduino Uno ................................................................................ 71 Quadro 6. Custo dos componentes do prottipo....................................................................... 78

  • LISTA DE ABREVIATURAS E SIGLAS

    ACL Asynchronous Connection-Less

    DARPA Defense Advanced Research Projects Agency

    FHSS Frequency Hopping Spread Spectrum

    GPRS General Packet Radio Service

    GPS Global Positioning System

    HTTP HyperText Transfer Protocol

    IBM International Business Machine

    ICSP In Circuit Serial Programming

    IDC International Data Corporation

    IOT Internet of Things

    IP Internet Protocol

    ISO International Standards Organization

    LAN Local Area Network

    LED Light Emitting Diode

    MAC Media Access Control

    NFC Near Field Communication

    OPENGL Open Graphics Library

    OSI Opens Systems Interconnection

    PWM Pulse Width Modulation

    RF Radio Frequency

    SAR Servio de Automao Residencial

    SCO Synchronous Connection Oriented

    SGBD Sistema de Gerenciamento de Banco de Dados

    SPI Serial Peripheral Interface

    TCP Transmission Control Protocol

    TTC Trabalho Tcnico-cientfico de Concluso de Curso

    UART Universal Asynchronous Receiver/Transmitter

    UML Unified Modeling Language

    UNIVALI Universidade do Vale do Itaja

    USB Universal Serial Bus

    XML Extend Markup Language

  • SUMRIO

    1 INTRODUO .................................................................................................................. 10 1.1 PROBLEMATIZAO ..................................................................................................... 12

    1.1.1 Formulao do Problema ............................................................................................. 12 1.1.2 Soluo Proposta .......................................................................................................... 12 1.2 OBJETIVOS ..................................................................................................................... 13 1.2.1 Objetivo Geral .............................................................................................................. 13 1.2.2 Objetivos Especficos .................................................................................................... 14

    1.3 METODOLOGIA ............................................................................................................. 14

    1.4 ESTRUTURA DO TRABALHO ........................................................................................ 15

    2 FUNDAMENTAO TERICA ..................................................................................... 16 2.1 REDES DE COMPUTADORES ...................................................................................... 16 2.1.1 Usurios Mveis e Redes sem Fio ................................................................................ 17

    2.1.2 Modelos de Referncia .................................................................................................. 17 2.2 MEIOS DE TRANSMISSO ............................................................................................ 21

    2.3 INTERLIGAO DE REDES .......................................................................................... 22 2.4 INTERNET DAS COISAS (IOT) ...................................................................................... 24 2.5 AUTENTICAO ............................................................................................................ 25

    2.6 BLUETOOTH .................................................................................................................. 26 2.6.1 Arquitetura do Bluetooth .............................................................................................. 26

    2.6.2 A estrutura de quadro do Bluetooth ............................................................................. 27

    2.7 MICROCONTROLADORES ............................................................................................ 28

    2.7.1 Plataforma Arduino ...................................................................................................... 29 Software .................................................................................................................................... 29

    Hardware .................................................................................................................................. 29 2.7.2 Arduino Uno ................................................................................................................. 30

    2.7.3 Arduino Mega ADK ...................................................................................................... 31 2.7.4 Arduino Nano ................................................................................................................ 31 2.7.5 Diferenciais ................................................................................................................... 32

    2.8 PLATAFORMA ANDROID .............................................................................................. 33 2.8.1 Arquitetura .................................................................................................................... 35

    2.8.2 Diferenciais ................................................................................................................... 37 2.9 TRABALHOS SIMILARES ............................................................................................... 38 2.9.1 DroidLar Automao residencial atravs de um celular Android ............................ 38

    2.9.2 Sistema de automao residencial baseado em Bluetooth usando celulares ............... 40 2.9.3 Domtica: Controle de automao residencial utilizando celulares com Bluetooth ... 42 2.9.4 DomoWeb ...................................................................................................................... 44 2.9.5 Anlise comparativa ..................................................................................................... 47

    3 DESENVOLVIMENTO .................................................................................................... 48 3.1 VISO GERAL ................................................................................................................. 48 3.1.1 Escopo ........................................................................................................................... 51 3.2 REQUISITOS ................................................................................................................... 51 3.2.1 Requisitos funcionais .................................................................................................... 52

  • 3.2.2 Requisitos no-funcionais ............................................................................................. 52 3.3 MODELAGEM ................................................................................................................. 53 3.3.1 Casos de uso ................................................................................................................. 53

    3.3.2 Diagrama de sequncia ................................................................................................ 55 3.3.3 Diagrama de classes ..................................................................................................... 57 3.3.4 Prottipo de telas da aplicao .................................................................................... 57

    4 IMPLEMENTAO ......................................................................................................... 59 4.1 APLICAO ANDROID ................................................................................................. 59 4.1.1 Interface com o usurio ................................................................................................ 59 4.1.2 Lgica da aplicao Android ....................................................................................... 62

    4.2 APLICAO DO ARDUINO ........................................................................................... 65 4.2.1 Bibliotecas utilizadas .................................................................................................... 65 4.2.2 Codificao ................................................................................................................... 66 4.3 PROTOTIPAO DO SISTEMA EMBARCADO ............................................................ 68

    4.4 INTEGRAO COM O SERVIDOR ............................................................................... 73 4.5 TESTES ............................................................................................................................ 74 4.5.1 Resultados ..................................................................................................................... 75 4.6 CUSTO DO PROTTIPO ............................................................................................... 78

    4.7 DISCUSSO .................................................................................................................... 78

    5 CONCLUSES .................................................................................................................. 79

    APNDICE A. CDIGO-FONTE DA APLICAO ANDROID ..................................... 83

    APNDICE B. CDIGO-FONTE DA APLICAO ARDUINO ..................................... 90

    APNDICE C. CDIGO-FONTE DA PGINA AUTENTICA.PHP ............................... 93

  • 10

    1 INTRODUO

    Com a difuso dos dispositivos mveis, em especial tablets e smartphones, tem se

    buscado a disponibilizao de recursos e funes que facilitem a rotina dos usurios desses

    bens de consumo. A popularizao de tais dispositivos no est relacionada apenas ao ganho

    computacional que esses adquiriram com a evoluo dos processadores, mas tambm com a

    integrao de variados componentes de hardware (GPS, cmera, decodificadores de mdia,

    etc.) e principalmente com a possibilidade de conexo permanente com a Internet. Tal avano

    tecnolgico tem permitido o aumento da capacidade de integrao de servios de diferentes

    naturezas. De acordo com Weiser (1991), as tecnologias que perdurariam e seriam vistas em

    todos os lugares seriam aquelas que se tornassem transparentes para os usurios e fossem

    presentes no cotidiano humano. A onipresena de informao, somada proliferao de

    dispositivos microprocessados, ficou conhecida como computao ubqua.

    Segundo Taurion (2009), no ano de 2011, era esperado cerca de dois bilhes de

    pessoas conectadas Web e um trilho de objetos conectados, de automveis a cmeras

    digitais, de sensores em rodovias a colheitadeiras com GPS, criando uma verdadeira Internet

    das Coisas (ou IoT Internet of Things). Esse conceito, que pode ser considerado como o

    prximo passo da evoluo do uso da Internet, tem grande potencial para modificar

    profundamente a sociedade e sua economia. A IoT combina a universalidade da Internet, que

    j a principal infraestrutura de comunicao do planeta, com inteligncia ou software

    embarcado em sensores e atuadores, modificando a maneira como o mundo fsico opera. Para

    o uso dos sensores e atuadores previstos na abordagem da IoT, necessrio o emprego de

    dispositivos capazes de efetuar o controle e comunicao dessas unidades.

    Uma tecnologia que vem sendo utilizada em aplicaes baseadas no conceito de IoT

    o Arduino. Trata-se de uma plataforma de hardware open-source, projetada em uma placa

    nica, contendo um microcontrolador e um ambiente de desenvolvimento que permite

    escrever e executar um cdigo de forma simples e clara. Essa plataforma pode ser utilizada

    por iniciantes, mantendo-se ainda suficientemente flexvel para usurios avanados. Alm de

    ser uma plataforma extensvel, que permite a ampliao e at a criao de uma verso prpria

    do mdulo, um kit Arduino pr-montado pode custar menos de 50 dlares, sendo

    relativamente mais barato em comparao com microcontroladores de outras plataformas

    (ARDUINO, 2013a).

  • 11

    Muitas solues para IoT utilizam comunicao sem fio. Essa uma das tecnologias

    que apresenta maior crescimento em relao aos meios de comunicao (FOROUZAN, 2006).

    Para Coulouris, Dollimore e Kindberg (2007), a computao mvel surgiu devido

    miniaturizao dos dispositivos e da conectividade sem fio. Outro motivo para a ascenso das

    redes sem fio e dispositivos mveis foi a necessidade que as pessoas passaram a ter de estar

    conectadas s redes em qualquer momento e lugar. Para permitir a comunicao sem fio entre

    dispositivos de mesma natureza ou heterogneos, podem-se citar algumas tecnologias, tais

    como: sinal infravermelho, Wi-Fi, Bluetooth, GPRS, entre outros.

    Com o aumento do poder de processamento dos dispositivos mveis, aliado

    complexidade crescente das aplicaes executadas nesses dispositivos, viu-se a necessidade

    de sistemas operacionais capazes de gerenciar os recursos e funes a eles atribudos. De

    acordo com Pereira e Silva (2009), o Android uma plataforma para tecnologia mvel

    completa, incluindo um sistema operacional, middleware, aplicativos e interface de usurio. A

    plataforma foi construda para permitir que os desenvolvedores criem aplicaes que tirem o

    mximo de proveito que o dispositivo possa oferecer. Trata-se de uma plataforma open-

    source, o que facilita ao desenvolvedor a incorporao e adaptao de novas funcionalidades.

    Segundo o IDC (International Data Corporation) (2013), no primeiro trimestre de 2013

    foram comercializados 152,3 milhes de smartphones, sendo que 59% destes operam o

    sistema Android, enquanto que 23% correspondente ao iOS. O IDC ressalta que a ampla

    liderana de mercado do Android deu-se pela variedade de modelos em que a plataforma

    oferecida nas prateleiras, fazendo suas vendas saltarem 145% em relao ao ano anterior.

    Analisando as tecnologias e abordagens mencionadas anteriormente, este TTC

    (Trabalho Tcnico-Cientfico) visou a integrao de tais tecnologias na forma de um atuador

    controlado pela plataforma Arduino (ex. fecho eletromagntico). Tal controle comunicado

    por um dispositivo mvel, operando o sistema Android, por meio de um protocolo de

    comunicao reconhecido pelas plataformas envolvidas (Arduino e Android). Por fim, so

    verificadas as credenciais do usurio por meio de uma solicitao de autenticao do Arduino

    a uma base de dados externa, via Internet.

  • 12

    1.1 PROBLEMATIZAO

    1.1.1 Formulao do Problema

    Evitar que pessoas no autorizadas tenham acesso a determinados ambientes, como

    salas que contenham arquivos sigilosos, ou at mesmo em uma residncia cujo acesso na

    maioria das vezes restrito ao grupo familiar, tem sido uma necessidade constante pela qual

    as pessoas j esto habituadas. Mecanismos de segurana so empregados para controlar o

    acesso, permitindo ou restringindo o acesso aos ambientes. De acordo com Ferreira (2003), o

    controle ao acesso fsico a fim de proteger ambientes envolve o uso de chaves, trancas,

    fechaduras, smartcards, biometria, etc. Segundo Montico (2009), a automatizao dos

    mecanismos de controle de acesso uma alternativa que proporciona maior segurana, porm,

    os custos de implantao ainda so altos.

    1.1.2 Soluo Proposta

    A soluo proposta neste trabalho a utilizao de um sistema microcontrolado para

    fazer o acionamento de um fecho eletromagntico. Para permitir o acionamento, utilizada

    uma forma de autenticao multifator, na qual necessrio algo que o usurio saiba (usurio e

    senha) e tambm algo que ele possua (dispositivo mvel com a aplicao). Uma vez que o

    usurio atenda esses dois requisitos poder realizar o acionamento do fecho. Na Figura 1

    apresentada uma viso geral do sistema.

  • 13

    Figura 1. Viso geral do sistema.

    O hardware para controlar o fecho foi baseado em Arduino, devido a esta ser uma

    plataforma de baixo custo e de simples implementao. A aplicao foi desenvolvida para a

    plataforma Android, por ser uma plataforma amplamente difundida atualmente, dentre outras

    vantagens apresentadas no decorrer deste trabalho. A aplicao apresenta uma tela de

    autenticao, na qual o usurio deve digitar seu identificador e a sua senha, sendo esses dados

    enviados para o Arduino. Depois de receber os dados, os mesmos so enviados atravs de

    uma requisio a um servidor. Este, por sua vez, retorna com o resultado da consulta na base

    dados externa, verificando se o usurio possui permisso. Caso o retorno do servidor

    identifique que o usurio possui a permisso, o Arduino aciona o fecho eletromagntico a fim

    de liberar o acesso.

    1.2 OBJETIVOS

    1.2.1 Objetivo Geral

    Desenvolver um sistema microcontrolado baseado em autenticao remota e

    acionamento por meio de dispositivos mveis para restrio de acesso a um ambiente.

    Arduino Uno +

    mdulo Ethernet +

    mdulo Bluetooth +

    mdulo rel

    Fecho

    Eletromagntico

    Amelco FE61

    Servidor Apache +

    MySQL

    Smartphone

    Android

    Tablet

    Android

  • 14

    1.2.2 Objetivos Especficos

    Projetar a integrao dos mdulos de comunicao e nodos sensores com o

    microcontrolador;

    Implementar uma aplicao microcontrolada para acionamento do dispositivo a

    ser automatizado;

    Desenvolver uma aplicao a ser executada no dispositivo mvel para a

    comunicao sem fio com o microcontrolador;

    Executar a conexo do sistema microcontrolado com um banco de dados

    externo para realizar a autenticao;

    Executar a integrao da aplicao do dispositivo mvel com a aplicao do

    microcontrolador.

    1.3 METODOLOGIA

    Para alcanar os objetivos especficos citados anteriormente, foram realizadas as

    seguintes tarefas: pesquisa bibliogrfica, estudo, seleo e descrio do projeto, codificao

    do software para o Android e para o dispositivo mvel, testes e validao.

    A pesquisa bibliogrfica teve por objetivo levantar livros, artigos e sites para a

    fundamentao terica deste trabalho, sendo ainda pesquisados trabalhos e projetos similares,

    com finalidade de se conhecer o estado da arte dos conceitos abordados. Depois de reunido o

    material de pesquisa foi realizado um estudo sobre alguns temas, dentre os quais se podem

    citar: conceitos de Redes de Computadores, Meios de Transmisso, Interligao de Redes,

    Internet das Coisas, Autenticao, Protocolo Bluetooth, Microcontroladores, Plataforma

    Arduino e Plataforma Android. Aps este estudo, foi realizada a modelagem do sistema

    desenvolvido, seguindo o padro UML (Unified Modeling Language), incluindo os requisitos

    funcionais e no-funcionais, casos de uso, diagrama de sequencia e diagrama de classes.

    Com a modelagem do sistema foi possvel a implementao do software de baixo

    nvel e embarcado na placa Arduino UNO. Para isto, foi utilizada a IDE disponibilizada pela

    plataforma. Tambm foi realizada a codificao do software para o dispositivo mvel,

    baseado em Android. Para a elaborao desta etapa foram utilizadas as ferramentas

    disponibilizadas pela plataforma Android, que inclui o SDK e plug-ins.

  • 15

    Uma vez que os dois softwares estavam concludos, iniciou-se a integrao do sistema,

    como tambm, a integrao do Arduino com o banco de dados externo, onde foi utilizada uma

    pagina PHP para fazer a comunicao entre o banco de dados e o Arduino. Depois de

    concluda a integrao, alguns testes foram realizados para validar o sistema.

    1.4 ESTRUTURA DO TRABALHO

    Este projeto est estruturado em cinco captulos: Introduo, Fundamentao Terica,

    Desenvolvimento, Implementao e Consideraes Finais.

    O Captulo 1, Introduo, apresenta uma viso geral do trabalho, trazendo uma

    contextualizao breve sobre os conceitos abordados. Ainda neste captulo so apresentadas

    uma descrio do problema e a soluo proposta, como tambm os objetivos do trabalho.

    No Captulo 2, Fundamentao Terica, apresentada uma reviso bibliogrfica

    sobre conceitos essenciais para elaborao deste trabalho, dos quais se destacam Redes de

    Computadores, Meios de Transmisso, Autenticao, Plataforma Arduino e Plataforma

    Android. Neste captulo, realizada tambm uma anlise dos projetos similares e um

    comparativo entre ambos, a fim de se identificar caractersticas comuns e tecnologias

    utilizadas.

    O Captulo 3, Desenvolvimento, apresenta o projeto detalhado do sistema

    desenvolvido, incluindo o levantamento de requisitos e a sua modelagem em UML. O

    captulo tambm discute como foi implementado o sistema.

    No Captulo 4, Implementao, apresentado como foi desenvolvido o sistema, desde

    a sua codificao at os testes e resultados.

    Concluindo, no Captulo 5, apresentam-se as consideraes finais, onde so

    abordados os resultados preliminares, mudanas de algumas estratgias de desenvolvimento

    do projeto, dentre outros.

  • 16

    2 FUNDAMENTAO TERICA

    Este captulo aborda os conceitos de Redes de Computadores, Meios de Transmisso,

    Interligao de Redes, Internet das Coisas, Bluetooth, Microcontroladores (Arduino) e

    Plataforma Android. Neste captulo tambm abordada uma anlise de trabalhos similares.

    2.1 REDES DE COMPUTADORES

    A informtica, apesar de ser jovem em relao aos outros setores industriais

    (automveis, transportes, etc.), teve um grande progresso em um curto perodo de tempo. No

    incio de sua existncia, os sistemas computacionais eram altamente centralizados e

    geralmente instalados em uma sala com paredes de vidro, para poderem ser contemplados.

    Empresas de mdio porte ou universidades contavam com apenas um ou dois computadores e

    as grandes instituies tinham no mximo algumas dezenas. No se imaginava que em apenas

    20 anos haveria milhes de computadores igualmente avanados e do tamanho de um selo

    postal (TANENBAUM, 2003).

    Comer (2007) discute que a motivao para as redes de dados em grande escala no

    foi a partir do desejo de compartilhamento de dispositivos, ou mesmo o fornecimento de uma

    nova forma de as pessoas se comunicarem. Ao invs disso, as primeiras redes foram criadas

    para permitir o compartilhamento de poder computacional em grande escala.

    Atualmente as redes de computadores esto presentes em praticamente tudo o que

    fazemos ou usamos. De acordo com Comer (2007), elas tm crescido explosivamente, sendo

    que h duas dcadas poucas pessoas tinham acesso a uma rede e agora a ligao de

    computadores em rede tem sido usada em cada aspecto dos negcios, incluindo propaganda,

    produo, transporte, planejamento, dentre outros.

    Segundo Tanenbaum (2003), as aplicaes de redes de computadores atendem a

    diversos setores, como os usos tradicionais em empresas e indivduos, redes domsticas e os

    relacionados a usurios mveis, sendo o estudo deste ltimo mais relevante para a

    compreenso deste TTC (Trabalho Tcnico Cientfico).

  • 17

    2.1.1 Usurios Mveis e Redes sem Fio

    A comunicao sem fio no se trata de uma inovao. Uma demonstrao do fsico

    italiano Guglielmo Marconi em 1901, mostrou o funcionamento de um telgrafo sem fio que

    transmitia informaes de um navio para o litoral atravs de cdigo morse. Os mais modernos

    sistemas digitais sem fio tem melhor desempenho, mas continuam com o mesmo princpio

    (TANENBAUM, 2003).

    Atualmente, a computao mvel constitui um dos segmentos de maior crescimento da

    indstria da informtica. Como os usurios procuram ficar conectados em todos os lugares, as

    redes sem fio passam as ser de grande interesse e, medida que se tornam mais difundidas,

    surgem numerosas aplicaes. Por exemplo, computadores sem fio podem dar acesso a salas

    seguras, da mesma forma de como usado o carto com tarja magntica (TANENBAUM,

    2003). Segundo Kurose e Ross (2006), j ficou claro que as redes sem fio e os servios

    mveis vieram para ficar, independentemente do crescimento futuro dos dispositivos sem fio.

    Apesar de as redes sem fio e a computao mvel terem uma grande relao, elas so

    diferentes, pois at mesmo um computador porttil pode estar conectado por fio, perdendo o

    princpio de mobilidade. Quando um viajante est em um hotel com seu laptop e conecta-se a

    Internet atravs de um cabo de rede, percebe-se esta distino entre os dois conceitos

    (TANENBAUM, 2003).

    Segundo Kurose e Ross (2006), fica claro que os ambientes mais interessantes so

    aqueles em que os usurios usufruem da tecnologia sem fio e simultaneamente da mobilidade,

    permitindo, por exemplo, que um passageiro em um carro a 160 km/h, mantenha uma

    chamada de voz sobre IP e vrias conexes TCP ativas, e nesse ponto que se encontram os

    maiores desafios.

    2.1.2 Modelos de Referncia

    De acordo com Tanenbaum (2003), existem duas importantes arquiteturas de rede, o

    modelo de referncia OSI e o modelo de referncia TCP/IP. Atualmente, os protocolos do

    modelo OSI raramente so utilizados, porm, as caractersticas de cada camada ainda so

  • 18

    vlidas. J com o modelo TCP/IP ocorre o contrrio, o modelo em si praticamente no

    utilizado, mas os seus protocolos ainda esto em uso.

    Modelo de Referncia OSI

    Para a transmisso de dados pela rede, o hardware de comunicao bsico utiliza-se de

    mecanismos que podem transferir bits entre dois pontos, mas a utilizao de hardware puro

    para realizar essa comunicao como programar em binrio, o que bastante inconveniente.

    Para facilitar a programao, os computadores acoplados a uma rede usam software complexo

    que abstrai ao programador todos os detalhes e problemas da comunicao de baixo nvel

    (COMER, 2007).

    Para reduo da complexidade do projeto, a maioria das redes organizada como uma

    pilha de camadas. Cada camada oferece determinados servios s camadas superiores,

    isolando-as do detalhamento de implementao desses recursos, ou seja, um determinado item

    de software ou hardware oferece servios aos seus usurios, porm o seu estado interno e

    algoritmos ficam ocultos (TANENBAUM, 2003).

    Com a necessidade de padronizao dos protocolos, a ISO (International Standards

    Organization), desenvolveu uma proposta que foi chamada de Modelo de Referncia ISO OSI

    (Opens Systems Interconnection), pois ela trata da interconexo de sistemas que estejam

    abertos comunicao com outros sistemas (TANENBAUM, 2003). O modelo OSI, como

    chamado, dividido em sete camadas, como se pode ver na Figura 2.

  • 19

    Figura 2. Modelo de referncia OSI.

    Fonte: Adaptado de Comer (2009).

    A seguir, uma breve descrio das camadas do Modelo de Referncia OSI:

    Camada Fsica: envia a cadeia de bits pela rede sem se preocupar com o

    tratamento de problemas que venham ocorrer (SOARES, LEMOS e

    COLCHER, 1995);

    Camada de Enlace de Dados: detecta e corrige os problemas que por acaso

    ocorram na camada fsica (SOARES; LEMOS e COLCHER, 1995);

    Camada de Rede: permite a interconexo das redes heterogneas

    (TANEMBAUM, 2003);

    Camada de Transporte: aceita os dados da camada acima e divide-os em

    unidades menos se necessrio, como tambm repassa essas unidades

    assegurando que todos os fragmentos cheguem corretamente na outra

    extremidade (TANEMBAUM, 2003);

    Camada de Sesso: fornece os mecanismos que permitem estruturar os

    circuitos que chegam da camada de transporte (SOARES; LEMOS;

    COLCHER, 1995);

  • 20

    Camada de Apresentao: transforma adequadamente os dados antes do envio

    para a camada de sesso. Transformaes que dizem respeito compresso de

    textos, criptografia, converso de padres de terminais e arquivos para padres

    de rede e vice-versa (SOARES; LEMOS; COLCHER, 1995);

    Camada de Aplicao: prov uma srie de protocolos comumente necessrios

    para os usurios, por exemplo, o HTTP (Hyper Text Transfer Protocol)

    (TANENBAUM, 2003).

    Modelo de Referncia TCP/IP

    O desenvolvimento da arquitetura TCP/IP foi patrocinada pela DARPA (Defense

    Advanced Research Projects Agency), baseando-se principalmente em um servio de

    transporte a conexo atravs do TCP (Transmission Control Protocol), e um servio de rede

    no orientado a conexo, pelo IP (Internet Protocol) (SOARES; LEMOS; COLCHER, 1995).

    Segundo Tanenbaum e Wetherall (2011), e Comer (2009), o modelo de referncia

    TCP/IP foi criado pensando-se na interligao de redes distintas. Devido a essa possibilidade

    de interligar redes heterogneas que se deve o sucesso deste modelo, passando a constituir a

    base da Internet global.

    O modelo TCP/IP implementa quatro camadas correspondentes as sete do modelo

    OSI, sendo elas a camada de Enlace, a camada de Internet, a camada de Transporte e a

    camada de Aplicao. De acordo com Tanenbaum e Wetherall (2011), cada camada tem as

    seguintes funes:

    Enlace: descrever o que os enlaces devem oferecer para atender a necessidade

    da camada internet, podendo os mesmos ser seriais ou at mesmo do padro

    Ethernet;

    Internet: permitir que os hosts injetem pacotes em uma rede qualquer e que

    eles viajem independentemente do destino;

    Transporte: manter a comunicao entre os hosts pares de origem e destino,

    igualmente como acontece na camada de transporte do modelo OSI;

    Aplicao: fornecer os protocolos de mais alto nvel.

  • 21

    O IP o protocolo da camada de rede denominado como a base de toda a Internet, que

    pode ser vista como um conjunto de redes ou sistemas autnomos que esto interconectados,

    onde no existe uma estrutura real fsica, mas vrios backbones principais construdos a partir

    de linhas de grande largura de banda e roteadores rpidos. Conectados ao backbones esto as

    redes regionais (nvel mdio) e os ISPs (Internet Services Providers), cuja funo prover o

    acesso Internet. Conectados as redes regionais esto mais ISPs, LANs de universidades e

    companhias e outras redes (TANENBAUM; WETHERALL, 2011).

    2.2 MEIOS DE TRANSMISSO

    Segundo Comer (2009), os meios de transmisso podem ser divididos em classes. H

    duas grandes abordagens principais:

    Tipo de caminho: a comunicao pode seguir um caminho exato (fios) ou um

    caminho no especfico (transmisso rdio) e

    Tipo de energia: a energia eltrica usada nos fios, a transmisso a rdio para a

    transmisso sem fio (wireless), e a luz para a fibra ptica.

    Os termos guiado e no guiado so usados para distinguir a transmisso onde os dados

    possuem um caminho especfico, como a realizada atravs de fios, e a transmisso onde no

    possuem caminho definido, como por ondas de rdio, onde os dados trafegam pelo ar. Comer

    (2009) tambm afirma que o meio fsico pode ser classificado de acordo com a forma de

    energia utilizada para transmitir os dados, como ilustrado na Figura 3:

  • 22

    Figura 3. Taxonomia por forma de energia

    Fonte: Adaptado de Comer (2009).

    Dentre os meios de transmisso guiados podem-se citar os meios magnticos, par

    tranado, cabo coaxial, linhas de energia e fibras pticas. J dentre os meios no guiados

    (wireless), o espectro eletromagntico, transmisso de rdio, transmisso de micro-ondas,

    transmisso de infravermelho, transmisso por ondas de luz e transmisso por satlites

    (TANENBAUM; WETHERALL, 2011).

    2.3 INTERLIGAO DE REDES

    Sabendo-se da existncia de muitas redes distintas e com numerosos protocolos

    distribudos em camadas, a interligao das redes no uma tarefa to simples. Seria fcil a

    formao de uma inter-rede (internet), se todas as redes utilizassem uma nica tecnologia de

    rede, como a Ethernet, porm, como essa no a realidade e havendo a necessidade de

    tratamento de problemas de diferentes naturezas, a heterogeneidade das redes dever existir

    (TANENBAUM; WETHERALL, 2011).

  • 23

    A Internet o principal exemplo de interligao de redes, pois uma combinao de

    vrias redes em todo o mundo, permitindo aos usurios se comunicarem com usurios de

    qualquer outra rede, o que significa que os pacotes transitam de uma rede para outra

    (TANENBAUM; WETHERALL, 2011).

    Segundo Kurose e Ross (2007), a Internet uma rede que conecta milhes de

    dispositivos mundialmente. Devido aos muitos equipamentos considerados no tradicionais

    estarem conectados a Internet, como por exemplo, eletrodomsticos, automveis, dentre

    outros, o termo redes de computadores considerado ultrapassado, passando-se a nomear

    esses equipamentos de hospedeiros ou sistemas finais.

    As redes podem se diferenciar de vrias maneiras, dentre elas podem-se citar os

    formatos dos quadros e as tcnicas de modulao. Alguns problemas durante o envio de

    pacotes de uma rede at o seu destino podem ocorrer, por exemplo, se os pacotes so enviados

    por uma rede orientados a conexo e precisam passar por uma rede sem conexo, os mesmos

    podem ser reordenados, assumindo um papel no esperado pelo transmissor e que o receptor

    no tem condies de lidar (TANENBAUM; WETHERALL, 2011).

    De acordo com Tanenbaum e Wetherall (2011), existem duas maneiras de conectar

    redes distintas: uma a criao de dispositivos que se encarreguem de traduzir ou converter

    os pacotes para cada tipo de rede e a outra resolver o problema adicionando uma camada

    comum no topo das redes, sendo que em ambos os casos, os mecanismos devem estar

    localizados entre os limites das redes. Em 1974, Cerf e Kahn defenderam a criao de uma

    camada comum as redes distintas que abstraa as diferenas entre elas que acabou sendo

    dividida em protocolos TCP (Transmission Control Protocol) e IP (Internet Protocol). Quatro

    dcadas mais tarde, o IP se torna a base da Internet moderna, rendendo a Cerf e Hahn o

    Prmio Turing 2004, conhecido informalmente como Prmio Nobel de Cincia da

    Computao. O IP fornece um formato de pacote universal que pode ser reconhecido por

    todos os roteadores, permitindo a transmisso por diversos tipos de redes.

  • 24

    2.4 INTERNET DAS COISAS (IOT)

    O artigo de Mark Weiser, The Computer of 21st Century, publicado na Scientific

    American em 1991, considerado o marco inicial das pesquisas sobre IoT, trazendo a

    primeira publicao sobre computao ubqua. Weiser afirmou que a computao seria

    integrada com as aes e comportamentos mais naturais das pessoas, de forma que no se

    perceberia que esto interagindo com um computador, porm, para isso ser possvel, a

    tecnologia deveria aprender a ser relacionar com os usurios (WEISER, 1991).

    Considerada uma tendncia da Internet do futuro, a IoT vem prospectando-se no

    cenrio das telecomunicaes e est sendo considerada como uma verdadeira revoluo

    tecnolgica da computao e comunicao (ATZORI; IERA; MORABITO, 2010).

    Com o avano das tecnologias de sistemas embarcados, os microprocessadores

    alcanaram vrios segmentos. Atualmente esto presentes em diversos objetos, como relgios,

    eletrodomsticos, automveis, brinquedos, entre outros, e que futuramente a tendncia

    ganharem ainda mais espao, ocupando praticamente todos os tipos de objetos, como roupas,

    portas e janelas, chuveiros, banheira, etc (CAVALLINI, 2008).

    Segundo o paradigma da IoT, esperado que muitos objetos fsicos estaro

    interconectados atravs da Internet, tornando-os responsveis pela maior parte do trfego da

    rede. Tais objetos podero ser quaisquer dispositivos como eletrodomsticos, pneus, sensores,

    atuadores, telefones celulares, entre outros, que podero ser identificados na rede a fim de

    trocarem informaes e executarem tarefas comuns (ATZORI; IERA; MORABITO, 2010).

    De acordo com Atzori, Iera e Morabito (2010), a partir da ampla difuso da IoT,

    mudanas drsticas acontecero na vida cotidiana dos usurios. Tan e Wang (2010), afirmam

    que estas mudanas traro tambm novas oportunidades de negcio, que impulsionada pela

    demanda por parte da populao, resultar em contribuio para a economia.

  • 25

    2.5 AUTENTICAO

    Segundo Baltzan e Philips (2012), a autenticao um mtodo utilizado para verificar

    se as identidades dos usurios so verdicas. Santos (2007), afirma que a autenticao permite

    que um usurio se identifique atravs da utilizao de diversos mecanismos, como login,

    senha, biometria, etc.

    O processo de autenticao de usurios pode utilizar-se de tcnicas que empregam um

    ou mais fatores. Quando se utiliza mais de um fator, a autenticao denominada multifator

    (SANTOS, 2007). De acordo com Baltzan e Philips (2012), as tcnicas de autenticao so

    divididas nas seguintes categorias:

    Algo que o usurio conhea: este tipo de autenticao realizado atravs de

    algo que o usurio conhea, sendo a forma mais comum de fazer a

    identificao de usurios. Santos (2007) chama este mtodo de login simples,

    que baseado em um ID de usurio e senha nicos;

    Algo que o usurio tenha: para realizar a autenticao por este mtodo o

    usurio deve utilizar algo que ele tenha, como um carto inteligente ou um

    token. Este mtodo considerado mais eficiente do que apenas utilizar um

    login simples;

    Algo que parte do usurio: considerado o mtodo mais eficaz para realizar a

    autenticao, pois se utiliza da biometria, realizando a identificao com base

    nas caractersticas fsicas de cada usurio (impresso digital, face, ris, etc.) e,

    portanto, dificultando o roubo ou emprstimo desses dados. Apesar de ser

    relativamente mais seguro, este mtodo caro, deixando de ser o mais atrativo.

    Na Figura 4 so apresentados alguns exemplos para cada tipo de autenticao.

  • 26

    (a) (b) (c)

    Figura 4. Autenticao multifator: (a) Algo que se sabe; (b) Algo que se tem; (c) Algo que

    parte do usurio

    De acordo com Santos (2007), a autenticao simples de login e senha, podem ser

    reforadas com a incluso do conceito multifator.

    2.6 BLUETOOTH

    Devido ao interesse de conectar seus aparelhos celulares com outros dispositivos sem

    a necessidade de utilizao de fios, a L. M. Ericsson com 4 outras empresas (IBM, Nokia,

    Intel e Toshiba), formaram um consrcio para desenvolver um mecanismo sem fio que

    utilizasse rdios de curto alcance, baixa potncia e baixo custo, denominando-o Bluetooth. A

    ideia inicial de apenas conectar perifricos de computadores foi estendida e passou a ser usada

    tambm em LANs sem fio, tornando assim, o padro mais til. A partir dessa mudana, o

    Bluetooth comeou a competir com o 802.11 e tambm a interferir eletricamente com ele

    (TANENBAUM, 2003).

    Em 1999, com o lanamento do Bluetooth 1.0, muitos fabricantes de dispositivos

    eletrnicos passaram a usar o Bluetooth, de celulares e laptops a fones de ouvidos, teclados,

    impressoras entre outros. A verso 2.0 em 2004 adicionou maiores taxas na transferncia de

    dados. Com a verso 3.0 em 2009 foi possvel o emparelhamento combinado com o padro

    802.11 e na verso 4.0 em dezembro de 2009, foi especificado a baixa potncia de operao

    (TANENBAUM; WETHERALL, 2011).

    2.6.1 Arquitetura do Bluetooth

    Uma piconet a unidade bsica de um sistema Bluetooth, consistindo em um n

    mestre e at sete ns escravos ativos em uma distncia de at 10 metros. Na Figura 5, pode-se

  • 27

    observar que podem existir muitas piconets no mesmo ambiente, podendo ser at mesmo

    conectadas por um n de ponte. A essa coleo de piconets interconectadas se chama

    scatternet (TANENBAUM; WETHERALL, 2011).

    Figura 5. Duas piconets formando uma scatternet

    Fonte: Tanenbaum e Wetherall (2011).

    Alm dos sete ns escravos ativos na rede, uma piconet pode ter at 255 ns inativos,

    os quais no podem fazer nada, exceto responder a um sinal de ativao ou de baliza do

    mestre. Essa inatividade faz com que os dispositivos passem para um estado de baixa energia,

    diminuindo a descarga de suas baterias. A comunicao s pode ocorrer entre um mestre e um

    escravo, no sendo permitida a comunicao direta entre os escravos (TANENBAUM;

    WETHERALL, 2011).

    2.6.2 A estrutura de quadro do Bluetooth

    Segundo Tanenbaum e Wetherall (2011), existem vrios formatos de quadros do

    Bluetooth, sendo o mais importante apresentado na Figura 6.

  • 28

    Figura 6. Estrutura do quadro Bluetooth

    Fonte: Tanenbaum e Wetherall (2011)

    O quadro formado primeiramente por um cdigo de acesso, usado tipicamente para

    identificao do mestre e que atravs deste, os escravos ficam conhecendo o destino de cada

    trfego. Depois vem um cabealho com tamanho de 54 bits, com campos tpicos de uma

    camada MAC (Media Acess Control). Em seguida vem o campo de dados, que pode ser de at

    2744 bits, quando a transmisso for de 5 slots, e para apenas um slot de tempo, o formato

    permanece igual, com exceo do fato de o campo de dados ter 240 bits (TANENBAUM;

    WETHERALL, 2011).

    2.7 MICROCONTROLADORES

    Com a evoluo dos computadores e o aparecimento dos circuitos integrados, que

    basicamente o encapsulamento de milhes de transistores em um circuito integrado, sugiram

    os microprocessadores. Devido ao alto poder computacional e seu tamanho reduzido

    significativamente (comparado com os transistores), os microprocessadores ganharam muitas

    aplicaes, sendo usados desde os microcomputadores pessoais at aparelhos eletrnicos e

    equipamentos mdicos. Os microprocessadores, no entanto, no podem fazer nada sozinhos,

    pois necessitam de outros dispositivos externos (memria, barramentos, etc.) para se tornarem

    teis. Sendo assim, surgiram os microcontroladores, que de forma geral tem acoplado em um

    nico chip tudo o que precisam para executar uma determinada aplicao. Mesmo incluindo

  • 29

    vrios perifricos como memrias, barramentos, timers, portas de comunicao, o seu

    tamanho continua reduzido. Apesar de os microcontroladores terem um desempenho menor

    que o dos microprocessadores, eles so ideais para projetos que necessitam de tamanhos

    reduzidos, menor tempo e custo, sendo amplamente difundidos em automao industrial,

    residencial e predial, eletrodomsticos, etc. (OLIVEIRA; ANDRADE, 2006).

    2.7.1 Plataforma Arduino

    O Arduino uma plataforma de computao aberta (open source), baseada em uma

    placa microcontrolada simples e um ambiente de desenvolvimento para incutir o software na

    placa. uma ferramenta que permite desenvolver objetos interativos, tendo como entrada

    uma variedade de sensores, podendo tambm controlar luzes, motores e outros meios fsicos

    de sada (ARDUINO, 2013a).

    O ambiente do Arduino foi desenvolvido para permitir que pessoas sem conhecimento

    em software ou em eletrnica consigam desenvolver os seus projetos. Esta simplificao faz

    com que o Arduino seja utilizado em programas educacionais em todo o mundo,

    especialmente por designers e artistas que precisam criar seus prottipos sem a necessidade de

    ter conhecimento profundo dos detalhes tcnicos. Apesar da facilidade de uso, o nvel de

    sofisticao de hardware do Arduino no deixa a desejar, atraindo pessoas que j possuem

    experincia com outros microcontroladores (MARGOLIS, 2011).

    Software

    No Arduino, os softwares so chamados de sketches, que so criados usando um

    ambiente de desenvolvimento integrado ou Integrated Development Environment (IDE). Com

    a IDE possvel escrever, editar e converter o cdigo-fonte para instrues que o hardware do

    Arduino entende. Esta transferncia para a placa realizada atravs de um processo chamado

    uploading (MARGOLIS, 2011).

    Hardware

    Uma placa Arduino tem apenas o controle e resposta dos sinais eltricos, portanto,

    necessrio adicionar componentes especficos para realizar a interao com o mundo real.

    Esses componentes so classificados como sensores e atuadores. Os sensores tem a funo

  • 30

    transformar um aspecto do mundo fsico em um sinal eltrico, como os interruptores e

    acelermetros. J os atuadores, realizam o inverso, transformando um sinal eltrico em algo

    que modifique o ambiente, por exemplo, os LEDs (Light Emitting Diode ou diodo emissor de

    luz) e os motores (MARGOLIS, 2011).

    No site oficial do Arduino (2013b), possvel encontrar uma variedade de placas,

    componentes e at kits para desenvolvimento. Dentre os produtos disponveis, podem-se citar

    as placas Arduino Uno, Arduino Mega ADK e Arduino Nano. A seguir uma descrio breve

    de cada placa mencionada.

    2.7.2 Arduino Uno

    Esta placa, ilustrada na Figura 7, baseada no microcontrolador ATmega328 e contm

    tudo o que o microcontrolador precisa, basta conect-lo a um computador atravs de um cabo

    USB ou outra fonte para iniciar. Possui 14 entradas/sadas digitais, podendo seis ser usadas

    como sadas PWM (Pulse Width Modulation ou modulao da largura de pulso), 6 entradas

    analgicas, um oscilador de cermica de 16 MHz, uma conexo USB (Universal Serial Bus),

    um conector de alimentao, um cabealho ICSP (In Circuit Serial Programming) e um boto

    de reset (ARDUINO, 2013c).

    Figura 7. Viso frontal do Arduino Uno

    Fonte: Arduino (2013c).

  • 31

    O Arduino Uno a placa mais recente da srie de placas Arduino USB e usada como

    referncia para a plataforma Arduino (ARDUINO, 2013c).

    2.7.3 Arduino Mega ADK

    O Arduino Mega ADK baseado no microcontrolador ATmega2560, contendo uma

    interface USB que permite conectar-se diretamente com telefones baseados em Android.

    Possui tambm 54 entradas/sadas digitais, dos quais 15 podem ser usados como sadas PWM,

    16 entradas analgicas, 4 UARTs (Universal Asynchronous Receiver/Transmitter), um cristal

    oscilador de 16 MHz, uma conexo USB, um conector de alimentao, um cabealho ICSP e

    um boto reset (ARDUINO, 2013d). Na Figura 8 apresentada esta placa.

    Figura 8. Viso frontal do Arduino Mega ADK

    Fonte: Arduino (2013d).

    O Arduino Mega ADK foi projetado para ter compatibilidade com a maioria dos

    shields projetados para o UNO, Diecimila e Duemilanove e para ser usado com o sistema

    operacional Android. Existe uma documentao no site do desenvolvedor do Android

    disponvel para consulta (ARDUINO, 2013d).

    2.7.4 Arduino Nano

    O Arduino Nano (apresentado na Figura 9), um pequeno, completo e amigvel

    protoboard baseado no microcontrolador ATmega328 (Arduino Nano 3.0) ou ATmega168

  • 32

    (Arduino Nano 2.x), contendo praticamente as mesmas funcionalidades do Arduino

    Duemilanove, porm em um pacote diferente. O Nano a menor verso completa das placas

    Arduino, tendo uma entrada mini-USB em vez de uma entrada USB padro. Fisicamente ele

    no possui uma entrada auxiliar e nem um jumper para selecionar a fonte de alimentao, pois

    ele chaveia automaticamente para a maior fonte sem necessitar do jumper (ARDUINO,

    2013e).

    Figura 9. Viso frontal do Arduino Nano

    Fonte: Arduino (2013e).

    As placas mais populares contm uma entrada USB que utilizada para prover energia

    para a placa, como tambm fazer o uploading do software para a mesma. Dentre os shields

    disponveis pode-se citar o Arduino Ethernet Shield, o Arduino Wifi Shield e o Arduino

    Motor Shield (ARDUINO, 2013b).

    2.7.5 Diferenciais

    Comparando o Arduino com outros microcontroladores que oferecem funcionalidades

    similares, podem-se citar alguns diferenciais (ARDUINO, 2013a):

    Baixo custo: so relativamente baratos em comparao com outras

    plataformas. Pode-se construir uma placa prpria ou adquirir uma placa pr-

    montada que pode custar menos de 50 dlares;

    Multiplataforma: o Arduino pode ser executado em Windows, Macintosh OSX

    e sistemas operacionais Linux, enquanto que a maioria dos outros esto

    limitados a Windows;

  • 33

    Ambiente de programao simples e claro: o ambiente de fcil utilizao at

    mesmo por iniciantes, porm tambm suficientemente flexvel a utilizao

    por usurios avanados;

    Software extensvel e open-source: o software do Arduino publicado como

    cdigo aberto, permitindo a programadores experientes criarem extenses

    atravs de bibliotecas C++;

    Hardware extensvel e open-source: o Arduino baseado nos

    microcontroladores Atmel ATmega8 e ATMEGA168 e os seus mdulos

    publicados sob uma licena Creative Commons, permitindo aos projetistas com

    mais experincia criarem suas prprias verses dos mdulos, estendendo e

    melhorando-os. At mesmo usurios inexperientes podem fazer uma verso

    protoboard, a fim de entenderem o seu funcionamento e economizarem

    dinheiro.

    Na Internet, fruns e comunidades do Arduino (conhecido como Arduino Playground),

    oferecem projetos e solues que inspiram e do suporte aos usurios no desenvolvimento de

    seus prprios projetos (MARGOLIS, 2011).

    2.8 PLATAFORMA ANDROID

    O Android uma plataforma completa destinada tecnologia mvel, a qual inclui um

    sistema operacional, middleware, aplicativos e interface com o usurio. Foi desenvolvido com

    o propsito de permitir aos programadores a utilizao de todos os recursos que um aparelho

    mvel oferece, sendo construdo para ser uma plataforma realmente aberta. Dessa forma, uma

    aplicao pode fazer uso de qualquer funcionalidade do ncleo do aparelho, por exemplo,

    efetuar chamadas, utilizar a cmera e enviar mensagens de texto (PEREIRA; SILVA, 2009).

    O Android est sempre em evoluo e devido propriedade de ser open source, pode

    ser continuamente adaptado incorporando novas funcionalidades. Atravs da disponibilizao

    do Android SDK, um kit composto de ferramentas e APIs (Application Programming

    Interface) necessrias, pode-se iniciar o desenvolvimento de aplicativos para a plataforma

    utilizando a linguagem de programao Java (PEREIRA; SILVA, 2009).

  • 34

    Para Meier (2012), o Android composto de vrias partes necessrias e dependentes,

    incluindo os seguintes itens:

    Um documento de definio de compatibilidade (CDD) e uma sute de testes

    de compatibilidade (CTS), que tm a funo de descrever as capacidades

    necessrias para um dispositivo suportar a pilha de software;

    Um kernel Linux, cuja funo fornecer uma interface de baixo nvel com o

    hardware, com o gerenciador de memria e com o controlador de processos,

    ambos otimizados para dispositivos mveis e embarcados;

    Bibliotecas abertas para o desenvolvimento de aplicaes, tendo incluso

    SQLite, WebKit, OpenGL (Open Graphics Library) e um gerenciador de

    mdia;

    Um ambiente de execuo que utilizado para executar e hospedar os

    aplicativos, incluindo a mquina virtual Dalvik;

    Um framework de aplicao que expe os servios do sistema para a camada

    de aplicao, incluindo um gerenciador de janelas, gerenciador de localizao,

    banco de dados, telefone e sensores;

    Uma interface de usurio que serve para hospedar e executar os aplicativos;

    Um conjunto de aplicaes pr-instaladas;

    Um kit de desenvolvimento de software (SDK Software Development Kit),

    usado para criar os aplicativos, contendo ferramentas, plugins e a

    documentao necessria para iniciar o desenvolvimento.

    De acordo com Meier (2012), a filosofia aberta do Android permite a qualquer

    desenvolvedor resolver deficincias na interface de usurio ou at mesmo em aplicaes

    nativas, simplesmente escrevendo uma extenso ou com a substituio das mesmas. Desde o

    acesso a hardware, incluindo cmera, GPS e sensores, a transferncia de dados com Wi-fi,

    Bluetooth e NFC (Near Field Communication), o SDK do Android inclui todas as APIs

    necessrias para o desenvolvimento de aplicativos que utilizem estes recursos.

  • 35

    Muitos podem duvidar da segurana do Android, j que seus componentes podem ser

    modificados. Pessoas com ms intenes podem fazer um cdigo malicioso e execut-lo nos

    celulares. Entretanto, o Android tem uma forte segurana, visto que executado sobre um

    ncleo Linux, sempre que uma aplicao for instalada, cria-se um novo usurio Linux para o

    programa, com diretrios que sero usados pelo aplicativo, porm somente para aquele

    usurio. Dessa forma os aplicativos ficam isolados, exigindo-se uma permisso caso algum

    aplicativo deseja acessar informaes de outro aplicativo (PEREIRA; SILVA, 2009).

    2.8.1 Arquitetura

    Conforme se pode observar na Figura 10, a arquitetura do Android est estruturada nas

    seguintes camadas (PEREIRA; SILVA, 2009):

    Aplicaes: a camada superior, onde se encontram todos os aplicativos

    fundamentais, cliente de e-mail, mapas, navegadores, calendrios, programas

    de SMS, gerenciador de contatos, etc;

    Framework: nesta camada (Application Framework) que esto todas as APIs

    e os recursos que os aplicativos necessitam, como classes visuais, caixas de

    texto, listas, botes e at mesmo um navegador web embutido. Os principais

    elementos desta camada so:

    o Activity Manager: controla o ciclo de vida de todas as activities;

    o Package Manager: se comunica com o resto do sistema e informa quais

    pacotes esto sendo utilizados no dispositivo e as suas respectivas

    capacidades;

    o Window Manager: gerenciador de janelas que determina qual estar

    ativa;

    o Content Providers: o responsvel pela troca de dados entre os

    aparelhos e a troca de informaes entre aplicativos;

    o View System: fornece recursos grficos para a aplicao, como botes,

    layouts e frames.

  • 36

    Bibliotecas: nesta camada est um conjunto de bibliotecas C/C++ utilizadas no

    sistema. Agregam-se tambm bibliotecas de multimdia, visualizao de

    camadas 2D e 3D, renderizao 3D, funes de acesso ao banco SQLite, etc.

    As bibliotecas principais so a Freetype, System C library, Webkit, SQLite,

    Surface Manager, Media Libraries, Lib WebCore e 3D libraries.

    Android Runtime: a camada do ambiente de execuo uma instncia da

    mquina virtual Dalvik, onde criada para todas as aplicaes executadas no

    Android.

    Linux Kernel: a camada do nvel mais baixo, que abstrai o hardware do resto

    da pilha de software.

    Figura 10. Arquitetura do Android

    Fonte: Pereira e Silva (2009).

  • 37

    2.8.2 Diferenciais

    O Android apresenta alguns elementos que outras plataformas de desenvolvimento

    para dispositivos mveis podem no possuir. Podem-se citar os seguintes itens (MEIER,

    2012):

    Aplicaes do Google Maps: permite aos desenvolvedores adicionarem

    funcionalidades que permitem visualizar, manipular, e fazer anotaes em um

    mapa do Google;

    Aplicaes e servios em segundo plano: dispe de um suporte completo para

    a criao de aplicativos em segundo plano com base em um modelo orientado

    a eventos;

    Compartilhamento de dados e comunicao entre processos: com a utilizao

    dos Intents e dos Contents Providers as aplicaes podem trocar mensagens e

    compartilhar dados;

    Igualdade das aplicaes: no existem diferenas entre as aplicaes nativas e

    as de terceiros no Android, isso permite aos consumidores substituir todas as

    aplicaes nativas por outras que preferir;

    Wi-Fi Direct e Android Beam: com a utilizao dessas inovadoras formas de

    comunicao possvel incluir recursos como compartilhamento e streaming

    de mdias;

    Widgets para tela inicial, protetores de tela animados e interativos: possvel

    criar janelas para as aplicaes na tela inicial do telefone.

    A maioria das plataformas de desenvolvimento mvel existentes exclusiva. Ao

    contrrio, o Android incentiva a mudana, ou seja, todos os aparelhos vm com aplicativos

    padres que os consumidores esperam de um telefone novo, mas com a capacidade de

    poderem ser completamente customizados de acordo com o gosto de cada um (MEIER,

    2012).

  • 38

    2.9 TRABALHOS SIMILARES

    Esta seo apresenta o estado da arte de sistemas automatizados com utilizao de

    dispositivos microcontroladores. No final desta seo apresentado um comparativo dos

    sistemas pesquisados.

    2.9.1 DroidLar Automao residencial atravs de um celular Android

    O DroidLar um sistema de automao residencial que utiliza as plataformas Arduino

    e Android e um protocolo de comunicao sem fio chamado ZigBee, que empregado na

    comunicao entre os controladores dos dispositivos e o servidor, denominado SAR (Servio

    de Automao Residencial). Na Figura 11 so mostrados todos os elementos do sistema

    (EUZBIO; MELLO, 2011).

    Figura 11. Elementos do DroidLar

    Fonte: Euzbio e Mello (2011).

    A aplicao Android utiliza uma conexo IP para a comunicao, enquanto que os

    controladores conectados na rede ZigBee realizam a troca de mensagens. O SAR serve como

    ponte entre as duas partes do sistema (EUZBIO; MELLO, 2011).

    O sistema utiliza mdulos Xbee Series 2.5 para realizar a comunicao entre os

    dispositivos e o SAR. Nos kits Arduino estes mdulos foram conectados ao shield XBee e no

  • 39

    SAR atravs de um adaptador serial conectado a uma porta USB. Os mdulos Xbee foram

    configurados como roteadores, caracterizando uma rede em malha, dessa forma, cada

    controlador de dispositivo pode encaminhar mensagens para os outros roteadores, aumentado

    a possibilidade de interao com dispositivos que esto fora do alcance do rdio. Os mdulos

    do DroidLar foram configurados sem criptografia, a fim de reduzir o tamanho da informao

    contida em um pacote. Dois tipos de procedimentos so executados pelos controladores de

    dispositivos (EUZBIO; MELLO, 2011):

    Atuao: executa aes de ligar, desligar, aumentar ou diminuir a intensidade

    da potncia de um dispositivo eletrnico, como por exemplo, uma lmpada;

    Relatrio: contm informaes de configurao de um dispositivo, como por

    exemplo, o estado (ligado, desligado, etc.) e o nmero de dispositivos.

    enviado sempre que o controlador ligado ou quando o SAR solicita.

    O SAR a parte central do DroidLar, sua funo gerenciar os controladores de

    dispositivos, enviando comandos ou recebendo informaes e interagindo com o cliente

    Android. Funciona com uma ponte entre as duas tecnologias de rede sem fio, ZigBee e

    802.11. Para a aplicao realizar a comunicao com o cliente Android, o computador se

    conecta a uma rede IP, enquanto que a comunicao com os kits Arduino realizada atravs

    dos mdulos XBee (inclusive nos Arduinos). Este mdulo XBee configurado como

    coordenador da rede ZigBee, tornando-o responsvel pelas configuraes desta rede. O

    Servlet tambm responsvel pelas mensagens de controle dos dispositivos, onde esto

    contidas informaes como o tipo de ao a serem tomados pelo dispositivo, valores para a

    execuo desta ao e o endereo do dispositivo. So estas mensagens que executam as

    funcionalidades do servidor, desde a autenticao do usurio at o agendamento dos perfis por

    parte do usurio (EUZBIO; MELLO, 2011).

    O DroidLar utiliza uma aplicao especfica para a plataforma Android que faz o

    controle dos eletroeletrnicos da residncia, criando e gerenciando os perfis do usurio. Os

    perfis permitem que um grupo de dispositivos seja programado para ligar/desligar em

    determinados perodos. Para obter-se a comunicao com o SAR, o telefone com a aplicao

    Android deve estar conectado a uma rede IP. Na abertura da aplicao a tela inicial (Figura

    12-a), apresenta as opes de controlar os dispositivos da residncia, alterar os perfis e editar

  • 40

    as configuraes para a conexo com o SAR. Na primeira execuo da aplicao a tela de

    configuraes (Figura 12-b) apresentada, a fim de autenticar o usurio no servidor. Nas

    execues posteriores a tela inicial apresentada, uma vez que as configuraes j esto

    salvas A aplicao Android utiliza uma conexo IP para a comunicao, enquanto que os

    controladores conectados na rede ZigBee realizam a troca de mensagens. O SAR serve como

    ponte entre as duas partes do sistema (EUZBIO; MELLO, 2011).

    (a) (b)

    Figura 12. Telas da aplicao. (a) tela inicial; (b) tela de configuraes

    Fonte: Euzbio e Mello (2011).

    2.9.2 Sistema de automao residencial baseado em Bluetooth usando

    celulares

    O sistema apresentado por Piyare e Tazil (2011), compreende um projeto de

    automao residencial baseado no uso de celulares e de baixo custo. Os aparelhos da casa so

    conectados a uma placa Arduino BT, e para a comunicao do celular com a placa utilizada

  • 41

    uma conexo sem fio. O sistema permite conectar novos dispositivos realizando poucas

    alteraes. O software foi escrito para ser executado em celulares com a plataforma Symbian.

    Na Figura 13, apresentado o sistema descrito.

    Figura 13. Sistema de automao residencial

    Fonte: Piyare e Tazil (2011).

    A parte de hardware do sistema se resume em dois componentes, um celular e uma

    placa Arduino BT. No celular, rodada uma aplicao escrita na linguagem Python que

    permite ao usurio acessar e controlar os aparelhos da residncia. A aplicao em Python se

    comunica com o Arduino definindo um protocolo de comunicao ad-hoc entre os dois

    dispositivos e permitindo controlar o comportamento da placa Arduino. Os pacotes contendo

    os comandos so enviados pelo celular. Uma vez que nestes pacotes esto os comandos que

    determinam o estado dos aparelhos, atravs do microcontrolador ATmega168 projetado o

    circuito analgico de acordo com a definio de cada sada. Diferentes tipos de aparelhos so

    conectados nas portas de sada digital do Arduino BT por meio de rels, a fim de fornecer

    tenso suficiente (PIYARE; TAZIL, 2011).

    O software verifica se o Bluetooth est ativado no celular. Se estiver ativado ento o

    processo de descoberta de dispositivos executado, verificando se j existem dispositivos

    predefinidos armazenados no celular. Caso existam, os dispositivos so listados para que o

    usurio selecione um deles, e depois de selecionado o software verifica se o mesmo est no

    intervalo e se ele um dispositivo transmissor da placa Arduino BT. Depois de confirmado o

    transmissor Bluetooth, armazenado os endereos de todos os controladores ligados a placa.

  • 42

    A interface de usurio consiste basicamente como apresentada na Figura 14, onde na tela

    principal esto listadas as lmpadas com seus respectivos estados (ON/OFF) e o menu Opes

    e Sair.

    Figura 14. Interface de Usurio

    Fonte: Piyare e Tazil (2011).

    2.9.3 Domtica: Controle de automao residencial utilizando celulares

    com Bluetooth

    O sistema proposto por Abreu e Valim (2011), consiste no gerenciamento de uma

    residncia atravs de uma interface em um aparelho celular com a utilizao da tecnologia

    Bluetooth. O celular se comunica com o microcontrolador responsvel pelo controle da

    automao residencial.

    O sistema foi divido em dois mdulos principais: o mdulo controlador e o mdulo

    conversor. O mdulo controlador trata-se de um software que realiza a comunicao do

    celular com o microcontrolador atravs do Bluetooth. O mdulo conversor trata-se de um

    firmware que converte os comandos enviados pelo celular para o protocolo X-10. Dessa

    forma, torna-se possvel realizar a comunicao com objetos da residncia que j utilizam

    esse protocolo. Na Figura 15, apresentada uma viso geral do projeto (ABREU; VALIM,

    2011).

  • 43

    Figura 15. Comunicao com objetos da residncia atravs de celular

    Fonte: Abreu e Valim (2011).

    Para a implementao do mdulo controlador foi utilizado um celular Nokia N95 com

    um aplicativo desenvolvido para a gesto da domtica. O celular citado possui o sistema

    operacional Symbian, que tem por linguagem nativa o C++. Por meio da API JSR-82

    realizada a comunicao sem fio atravs do Bluetooth (ABREU; VALIM, 2011).

    O mdulo controlador apresenta uma interface que permite a visualizao dos

    dispositivos para cada cmodo da residncia. Quando feito o acionamento de uma mudana

    de estado (ligado/desligado/intensidade) de algum dispositivo, enviado pelo mdulo

    controlador ao mdulo conversor um pacote de 3 bytes. O primeiro byte identifica o incio da

    transmisso (Start TX), o segundo corresponde ao comando a ser transmitido, e o ltimo

    identifica o fim da transmisso (End TX) (ABREU; VALIM, 2011).

    O mdulo conversor tem a funo de converter o pacote de dados enviado pelo

    controlador para o padro X-10 e encaminhando para o quadro de automao da residncia.

    Foram definidos recursos de hardware que atendessem critrios como a disponibilidade do

    produto no Brasil, custo, possibilidade de trabalhar como mestre na comunicao e a

    compatibilidade com o microcontrolador PIC. Na Figura 16, so apresentados os hardwares

    selecionados para este mdulo (ABREU; VALIM, 2011).

  • 44

    Figura 16. Componentes de hardware do mdulo conversor

    Fonte: Abreu e Valim (2011).

    O desenvolvimento do firmware para o PIC18F252 foi realizado utilizando o

    compilador CCS (verso 4.049). Este tem com funo principal o monitoramento dos pacotes

    que so enviados atravs da interface Bluetooth, como tambm a converso destes pacotes.

    Para a validao dos dois mdulos anteriormente mencionados, foi implementado um terceiro

    mdulo. Trata-se de outro software que simula uma residncia. Atravs de uma planta baixa

    tem-se a visualizao de vrios cmodos, e em cada cmodo esto dispositivos que sero

    controlados (ABREU; VALIM, 2011).

    2.9.4 DomoWeb

    Zandon e Valim (2012) apresentam um sistema de automao residencial que

    independe de outros sistemas, de baixo custo, e com uma interface nica, simples e intuitiva, a

    fim de realizar o controle, configurao, monitoramento e acionamento dos dispositivos de

    uma residncia. O sistema permite usufruir de suas funcionalidades a partir de qualquer lugar,

    pois se trata de um sistema Web. Atravs de um navegador, pode-se ter acesso por qualquer

    dispositivo que o suporte, seja ele um computador, celular, etc.

  • 45

    No sistema tambm possvel, alm das configuraes bsicas, a realizao de tarefas

    como programar a ativao de dispositivos em determinada data e adicionar e remover

    dispositivos conforme a necessidade. A plataforma consiste basicamente em um servidor

    embarcado, formado por uma placa Arduino Mega 2560 e um shield Ethernet, sendo

    conectado a ele um driver de acionamento que permite acionar os dispositivos que se deseja

    controlar, e via Ethernet o Arduino conectado no switch da residncia. Na Figura 17

    apresentada uma viso macro do sistema (ZANDON; VALIM, 2012).

    Figura 17. Viso macro do sistema DomoWeb

    Fonte: Zandon e Valim (2012).

    Seguindo o princpio de um sistema autnomo, foi proposta a implementao de um

    servidor Web embarcado, ou seja, a implementao do sistema na prpria plataforma que atua

    nos dispositivos da residncia. O Arduino, alm do baixo custo, possui bibliotecas TCP/IP

    para utilizao com o controlador Ethernet (ZANDON; VALIM, 2012).

    O DomoWeb tem a interface baseada em pginas HTML e um servidor embarcado

    implementado em C/C++ com base em bibliotecas do Arduino. Em conjunto com o HTML

    foram utilizadas tecnologias de pginas dinmicas (ZANDON; VALIM, 2012).

    Para atender todas as funcionalidades do sistema, a memria flash de 256 KB do

    Arduino Mega 2560 seria insuficiente, havendo a necessidade de armazenamento dos dados

  • 46

    na memria externa microSD (disponvel no Ethernet shield). Uma vez que o Arduino no

    possui um sistema operacional, no h a possibilidade de utilizar um banco de dados

    convencional, sendo os dados estruturados em XMLs (Extend Markup Language)

    (ZANDON; VALIM, 2012).

    As telas do sistema implementadas no formato HTML, onde se optou por adicion-las

    em uma nica pgina com a finalidade de diminuir o trfego de dados pelo Arduino. Uma

    desvantagem da utilizao do Arduino que ele dispe de baixos recursos de memria e

    processamento, tendo que haver cautela no desenvolvimento para utilizar o mnimo de

    processamento possvel. Com a utilizao do XML no microSD, a cada mudana que ocorre,

    o XML tem que ser carregado para a memria, onde realizada uma comparao de String

    para verificar as alteraes e por fim o XML gravado novamente, causando lentido no

    sistema (ZANDON; VALIM, 2012).

    A interface de usurio (UI) foi feita utilizando a biblioteca jQuery UI, que uma rica

    biblioteca que oferece componentes grficos (janelas, botes, animaes, etc.) para o

    desenvolvimento WEB. Na Figura 18, apresentada a tela de ambientes do sistema, onde

    possvel fazer o controle dos dispositivos j configurados (ZANDON; VALIM, 2012).

    Figura 18. Pgina de ambientes do DomoWeb

    Fonte: Zandon e Valim (2012).

  • 47

    O sistema permite agrupar os dispositivos por ambiente, uma vez que um ambiente

    esteja configurado, pode-se configurar um cenrio. Com a utilizao dos cenrios, pode-se

    programar um conjunto de aes, como a programao para ligar/desligar os dispositivos de

    um determinado ambiente nos horrios que se desejar. Para assegurar que apenas pessoas

    autorizadas tenham acesso ao sistema, foi implementado um controle de acesso com usurio e

    senha (ZANDON; VALIM, 2012).

    2.9.5 Anlise comparativa

    Aps a anlise dos trabalhos similares, apresentado um comparativo com algumas

    caractersticas identificadas em cada um deles, como se pode observar no Quadro 1.

    Quadro 1. Comparativo dos trabalhos similares Autores Ano Custo Microcontrolador Plataforma

    de Software

    Protocolo de

    comunicao

    Euzbio e Mello 2011 No Informado Arduino Android ZigBee

    Piyare e Tazil 2011 Baixo Arduino Symbian Bluetooth

    Abreu e Valim 2011 No Informado PIC Symbian Bluetooth

    Zandon e Valim 2012 Baixo Arduino Web Wifi/Ethernet

    Com esta anlise, foi possvel identificar que a maioria dos trabalhos utilizam a

    plataforma Arduino e apenas um destes utilizou como plataforma de software o Android,

    porm utilizando outro protocolo de comunicao, o ZigBee. Este trabalho props a utilizao

    do Arduino e Android, com a comunicao entre o dispositivo mvel e o Arduino realizada

    atravs do Bluetooth, e a comunicao entre o Arduino e o servidor atravs do padro

    Ethernet.

  • 48

    3 DESENVOLVIMENTO

    Neste captulo, so apresentados os recursos utilizados para realizar o

    desenvolvimento do sistema proposto, que inclui viso geral, especificao dos requisitos e a

    modelagem do sistema.

    Na primeira subseo, exposta uma viso geral do sistema, explicando o que ser o

    sistema com algumas informaes das tecnologias que sero utilizadas. Em seguida, na

    segunda subseo, so identificados os requisitos, que se dividem em requisitos funcionais e

    no-funcionais. A partir do levantamento e especificao dos requisitos, apresentada a

    modelagem do sistema (terceira subseo), onde esto os casos de uso, diagrama de

    sequncia, diagrama de classes e o prottipo de telas. Os casos de uso proporcionam uma

    viso das funcionalidades do sistema e o diagrama de sequncia apresenta as atividades e

    como elas interagem em uma sequncia temporal. Em seguida, o diagrama de classes,

    identifica os tipos de objetos e como se relacionam no sistema e o prottipo de telas, apresenta

    a interface de usurio, definindo os componentes grficos necessrios para a interao.

    3.1 VISO GERAL

    O sistema consiste em uma aplicao Android rodando em um dispositivo mvel que

    permite ao usurio acionar um fecho eletromagntico. Este, por sua vez, embutido no

    batente da porta funcionando juntamente com fechaduras mecnicas, do tipo que movimenta a

    lingueta com o uso da maaneta pelo lado interno, e com o uso de chaves pelo lado externo.

    Na Figura 19, apresentado o fecho da Amelco, modelo FE61, que foi utilizado neste

    projeto.

  • 49

    Figura 19. Fecho eletromagntico Amelco FE61

    O dispositivo mvel se comunica com o microcontrolador, que faz autenticao em

    uma base de dados externa, permitindo ou no o acionamento do fecho eletromagntico.

    O prottipo para controlar a fecho eletromagntico baseado em uma placa Arduino

    UNO, sendo aplicao cliente desenvolvida para a plataforma Android verso 2.3 ou superior.

    O protocolo de comunicao utilizado pelo dispositivo mvel para enviar os dados para o

    Arduino UNO o Bluetooth 2.0, e a comunicao entre o Arduino UNO e o servidor que

    contm o banco de dados, atravs do protocolo Ethernet. Para realizar o acionamento do fecho

    eletromagntico usado um atuador do tipo rel ou transistor, que o Arduino controla.

    O SGBD (Sistema de Gerenciamento de Banco de Dados) utilizado o MySQL

    verso 5 ou superior, uma vez que a implementao do projeto de banco de dados no foi

    abordada neste trabalho, sendo assim, h apenas uma tabela com os campos de usurio, senha

    e permisso com a finalidade de validar a autenticao do usurio.

    Ao executar a aplicao, verificado se o Bluetooth do dispositivo est ligado. Caso

    afirmativo, a aplicao apresenta uma tela com campos de usurio e senha. Caso contrrio, a

    aplicao pede permisso ao usurio para ligar a conexo Bluetooth, sucedendo o mesmo que

    no caso afirmativo anteriormente. Para enviar os dados, o usurio conecta-se ao mdulo

    Bluetooth do Arduino e depois deste procedimento, digita seu id e senha enviando os dados

    para o Arduino, como apresentado na Figura 20.

  • 50

    Figura 20. Comunicao do dispositivo mvel com o Arduino

    O Arduino recebe os dados e faz uma requisio ao servidor, enviando-os atravs de

    uma pgina dinmica que simula o envio de um formulrio HTML. O servidor por sua vez,

    pesquisa no banco de dados (Figura 21), retornando a resposta para o Arduino.

    Figura 21. Comunicao do Arduino com o servidor

    Arduino Uno +

    mdulo Ethernet +

    mdulo Bluetooth +

    mdulo rel

    Servidor Apache +

    MySQL

    Arduino Uno +

    mdulo Ethernet +

    mdulo Bluetooth +

    mdulo rel

    Smartphone

    Android

    Tablet Android

  • 51

    O servidor verifica se os dados do usurio constam no banco de dados e o Arduino

    aciona o atuador, fazendo a abertura do fecho eletromagntico e permitindo o acesso para o

    usurio, como se pode observar na Figura 22. Quando os dados no conferem, o acesso no

    permitido.

    Figura 22. Acionamento do fecho eletromagntico

    3.1.1 Escopo

    Neste trabalho no foi prevista a criptografia dos dados em nenhum momento da

    comunicao. A proposta discorrida neste trabalho foi a utilizao das tecnologias citadas a

    fim de realizar o controle de acesso utilizando-se de uma forma de autenticao multifator,

    que conforme descrita anteriormente consiste na autenticao com base em algo que o usurio

    possua (ex. aparelho celular) e em algo que o usurio saiba (ex. usurio e senha).

    3.2 REQUISITOS

    Nesta subseo so apresentados os requisitos, divididos em funcionais e no-

    funcionais do sistema proposto.

    Fecho

    Eletromagntico

    Amelco FE61

    Arduino Uno +

    mdulo Ethernet +

    mdulo Bluetooth +

    mdulo rel

  • 52

    3.2.1 Requisitos funcionais

    Os requisitos funcionais identificam as caractersticas e as funcionalidades gerais de

    um sistema. Os requisitos funcionais definidos para o sistema proposto so:

    REF 01: o sistema deve acionar um fecho eletromagntico por meio de um

    dispositivo microcontrolado;

    REF 02: o sistema deve permitir ao usurio acionar um fecho eletromagntico;

    REF 03: o sistema deve restringir o acionamento do fecho eletromagntico

    mediante algo que o usurio possua (dispositivo mvel com aplicativo);

    REF 04: o sistema deve restringir o acionamento do fecho eletromagntico

    mediante algo que o usurio saiba (usurio e senha cadastrada previamente em

    um banco de dados);

    REF 05: o sistema deve utilizar um protocolo de comunicao comum entre a

    unidade microcontrolada e o dispositivo mvel;

    REF 06: o sistema deve utilizar uma base de dados externa para a autenticao

    dos usurios;

    REF 07: a unidade microcontrolada deve possuir conexo permanente com a

    base de dados externa.

    3.2.2 Requisitos no-funcionais

    Nos requisitos no-funcionais, so estabelecidas as qualidades ou restries do

    sistema. Para o sistema proposto, foram definidos os seguintes requisitos:

    RNF 01: a aplicao mvel deve ser implementada para o sistema operacional

    Android verso 2.