78
UNIVERSIDADE DE SÃO PAULO ESCOLA DE ENGENHARIA DE SÃO CARLOS DEPARTAMENTO DE ENGENHARIA ELÉTRICA Automação Residencial de baixo custo por meio de dispositivos móveis com sistema operacional Android Autor: Lucas Bragazza Beghini Orientador: Prof. Dr. Evandro L. L. Rodrigues São Carlos 2013

Beghini Lucas Bragazza

Embed Size (px)

DESCRIPTION

asdada asda ad asd asda dadadasdaddadada

Citation preview

  • UNIVERSIDADE DE SO PAULO

    ESCOLA DE ENGENHARIA DE SO CARLOS

    DEPARTAMENTO DE ENGENHARIA ELTRICA

    Automao Residencial de baixo custo por meio de

    dispositivos mveis com sistema operacional

    Android

    Autor: Lucas Bragazza Beghini

    Orientador: Prof. Dr. Evandro L. L. Rodrigues

    So Carlos

    2013

  • Lucas Bragazza Beghini

    Automao residencial de baixo

    custo por meio de dispositivos

    mveis com sistema operacional

    Android

    Trabalho de Concluso de Curso

    apresentado Escola de Engenharia de So

    Carlos, da Universidade de So Paulo

    Curso de Engenharia Eltrica com nfase

    em Eletrnica

    ORIENTADOR: Prof. Dr. Evandro Lus Linhari Rodrigues

    So Carlos

    2013

  • AUTORIZO A REPRODUO TOTAL OU PARCIAL DESTE TRABALHO, POR QUALQUER MEIO CONVENCIONAL OU ELETRNICO, PARA FINS DE ESTUDO E PESQUISA, DESDE QUE CITADA A FONTE.

  • Agradecimentos

    A Deus, por sempre me dar foras para superar os obstculos encontrados.

    A meus pais, pelo apoio incondicional em todos os momentos, e por terem

    fornecido todo o suporte necessrio para minha formao.

    A todos os meus familiares, em especial minha tia Lucia, pelos conselhos e

    auxlio na reviso dos textos, e a meu tio Bruno, pelas discusses sempre pertinentes

    sobre o tema e pelo emprstimo de sua cmera IP pessoal.

    minha namorada, Samara, por todo o carinho e pelo auxlio com a reviso de

    textos e formatao desta monografia.

    A meu orientador, Evandro, pelos conselhos, cobranas e ensinamentos, e por

    sua competncia em ministrar a matria "Aplicao de Microprocessadores II", que foi

    de fundamental importncia para realizao deste trabalho.

    A meus amigos, por tornarem esses 5 anos de graduao ainda mais

    especiais.

    A todos vocs, o meu sincero obrigado.

  • Resumo O objetivo deste trabalho foi a implementao de um sistema de automao

    residencial de baixo custo, utilizando um Arduino Uno como central de automao,

    com acesso via internet de qualquer lugar mundo. Foi desenvolvido um aplicativo para

    celulares com sistema operacional Android, capaz de controlar alguns processos de

    uma residncia de acordo com as necessidades do usurio, tais como: controle de

    alimentao de animais de estimao, sistemas de iluminao e alarme. Para criao

    do aplicativo foi utilizado o App Inventor, que possui uma interface grfica de

    programao, possibilitando aos usurios sem experincia com programao em

    linguagem Java, o desenvolvimento de aplicativos. O binmio custo-benefcio foi

    alcanado indicando que o valor agregado dos benefcios aos usurios tais como:

    praticidade, segurana e simplicidade, na execuo das tarefas com baixo custo de

    investimento, seja o principal estmulo para investimentos em melhorias na automao

    residencial.

    Palavras-chave: Automao Residencial, Arduino, Ethernet Shield, Android, App

    Inventor

  • Abstract

    The objective of this work was the implementation of a low cost home

    automation system, using an Arduino Uno as central automation, with access through

    the Internet from anywhere in the world. It was developed an application for mobile

    phones with Android operating system, capable to control some processes of a

    residence according to user needs, such as :control of feeding pets, lighting and alarm

    systems. To create the application was used App Inventor, which has a graphical

    interface programming, enabling users without programming experience in Java

    language, application development. The cost-benefit was achieved indicating that the

    value of user benefits such as convenience, security and simplicity, in performing the

    tasks with low investment cost, be the main stimulus for investments and

    improvements in home automation systems.

    Keywords: Home Automation, Arduino, Ethernet Shield, Android, App Inventor

  • Lista de Figuras

    Figura 2.1 - O projeto .................................................................................................. 21 Figura 2.2 - Arduino Uno ............................................................................................. 22 Figura 2.3 - Arduino Uno e Ethernet Shield ................................................................. 25 Figura 2.4 - Interface de Programao ....................................................................... 26 Figura 2.5 - Intranet e Internet .................................................................................... 27 Figura 2.6 - Hierarquia de domnios ............................................................................ 29 Figura 2.7 - Funcionamento do servidor...................................................................... 30 Figura 2.8 - Tela de desenvolvimento do aplicativo .................................................... 32 Figura 2.9 - Editor de blocos do App Inventor ............................................................. 33 Figura 2.10 a) Encapsulamento b) Circuito integrado .......................... 35 Figura 2.11 - Representao do motor de passo unipolar ........................................... 36 Figura 2.12 - Representao do motor de passo bipolar ............................................. 37 Figura 2.13 - Constituio de motores de im permanente ......................................... 37 Figura 2.14 - Sequncias de acionamento .................................................................. 38 Figura 3.1 - Redirecionamento de fluxo pelo no-ip ...................................................... 40 Figura 3.2 - Regra de roteamento ............................................................................... 41 Figura 3.3 - Atualizao do DDNS .............................................................................. 41 Figura 3.4 - Circuito para controle de lmpadas .......................................................... 42 Figura 3.5 - Interruptor paralelo e rel ......................................................................... 43 Figura 3.6 - Circuito de implementao do alarme ...................................................... 44 Figura 3.7 - Fluxograma para alimentao via internet ............................................... 47 Figura 3.8 - Cmera IP ............................................................................................... 48 Figura 3.9 - Esquema de ligao motor de passo ....................................................... 49 Figura 3.10 - Desenho ilustrativo do sistema de alimentao ..................................... 49 Figura 3.11 - Telas de interao com o usurio .......................................................... 50 Figura 4.1 - Amostra da pgina ................................................................................... 55 Figura 4.2 - Aplicativo em funcionamento ................................................................... 57

  • Lista de Siglas

    CLPs (Controladores Lgicos Programveis)

    PC (Personal Computer)

    LED (Light Emitting Diode)

    LCD (Liquid Crystal Display)

    KB (Kilobyte)

    ARM (Advanced RISC Machine)

    SRAM (Static Random Access Memory)

    SPI (Serial Peripheral Interface)

    TCP/IP (Transmission Control Protocol) / IP (Internet Protocol)

    SMTP (Simple Mail Transfer Protocol)

    FTP (File Transfer Protocol)

    HTTP - (HyperText Transfer Protocol)

    DNS (Domain Name System)

    gTLDs (Generic Top Level Domains)

    ccTLDs (Country Code Top Level Domains)

    DDNS (Dynamic Domain Name System)

    DHCP (Dynamic Host Configuration Protocol)

    MIT (Massachusetts Institute of Technology)

    USB (Universal Serial Bus)

    PIR (Passive Infrared)

    PIC (Peripherical Interface Controller)

    SMS (Short Message Service)

    IDE (Integrated Development Environment)

  • SMTP (Simple Mail Transfer Protocol)

    TLS (Transport Layer Security)

    SSL (Security Sockets Layer)

    GSM (Global System for Mobile Communications)

  • Sumrio

    1.Introduo ................................................................................................................ 17

    1.1 Objetivos ................................................................................................... 20

    2. Embasamento Terico ............................................................................................ 21

    2.1 Arduino.......................................................................................................... 21

    2.2 Ethernet Shield .............................................................................................. 23

    2.3 Interface de Programao ............................................................................. 25

    2.4 Acesso externo ao Arduino ........................................................................... 26

    2.4.1 Intranet e Internet ............................................................................... 26

    2.4.2 DNS e DDNS ...................................................................................... 27

    2.5 App Inventor .................................................................................................. 31

    2.6 Sensor PIR .................................................................................................... 34

    2.7 Motores de passo .......................................................................................... 35

    3.Metodologia ............................................................................................................. 39

    3.1 Configurao para acesso via internet .......................................................... 39

    3.2 Controle de lmpadas ................................................................................... 42

    3.3 Alarme residencial ......................................................................................... 44

    3.4 - Alimentao de animais de estimao ........................................................ 47

    3.5 Criao do aplicativo ..................................................................................... 50

    4. Resultados e Discusses ........................................................................................ 55

    5.Concluses .............................................................................................................. 61

    5.1 Trabalhos Futuros ......................................................................................... 61

    Referncias ................................................................................................................ 63

    Apndice A -Cdigo Arduino ....................................................................................... 66

    Apndice B - Projeto no App Inventor ......................................................................... 71

    Anexo A - Datasheet W5100 ....................................................................................... 75

  • 17

    1.Introduo

    A automao residencial, tambm conhecida como domtica, corresponde a

    utilizao das inovaes tecnolgicas para satisfazer as necessidades e,

    principalmente, o conforto dos integrantes de determinada habitao. A palavra

    domtica tem origem na palavra latina "Domus" que significa "Casa", unida a palavra

    "Robtica", que a automatizao e controle de qualquer processo. A rea est em

    crescente evoluo nas ltimas dcadas, auxilada pelo avano da tecnologia e

    aproximao da mesma com atividades ligadas ao cotidiano. Tem como principal

    origem a automao industrial, enriquecida com o surgimento dos CLPs

    (Controladores Lgicos Programveis) durante a dcada de 60. Dessa maneira, a

    domtica permite ao usurio controlar dispositivos eletrnicos de sua residncia

    atravs de interfaces de controle (EUZBIO, M. V.M. & MELLO, E. R., 2013).

    Algumas empresas de tecnologia buscaram transferir o crescente

    desenvolvimento da microeletrnica para aplicaes em residncias de modo a

    oferecer solues para automatizao de processos afetos a rea. Contudo,

    perceberam que para a implementao da automao residencial imprescindvel que

    todo o sistema funcione com bom nvel de robustez, principalmente com relao a

    segurana, alm de oferecer uma interface simples e objetiva de comunicao com o

    usurio, considerando que este no possui necessariamente conhecimento tcnico

    para operar um sistema mais complexo. Devido a estes motivos, a rea da automao

    residencial no acompanhou a evoluo da automao industrial, que acabou

    desenvolvendo-se mais rapidamente. Segundo Bortoluzzi (2013), "a dcada de 70

    pode ser considerada o marco inicial da automao residencial, quando foram

    lanados nos EUA os primeiros mdulos inteligentes chamados X-10". O protocolo X-

    10 foi desenvolvido para controle remoto de dispositivos utilizando a prpria rede

    eltrica como canal de comunicao. Particularmente, esta era uma caracterstica

    interessante do sistema, pois permitia o controle de dispositivos remotos sem que

    fosse necessria uma alterao na infraestrutura eltrica da residncia.

    Mais adiante, na dcada de 80, com a popularizao dos computadores

    pessoais (PCs), pde-se pensar em um PC como central de automao. Entretanto, a

    grande desvantagem desse sistema o elevado consumo, devido a necessidade de

    manter o PC sempre ligado. A partir desse problema, partiu-se para o

    desenvolvimento de dispositivos embarcados que os substitussem, atravs da

    utilizao de microprocessadores e microcontroladores.

  • 18

    Desde ento, foram sendo incorporados alguns meios de comunicao com a

    central de automao, constituda por um microcontrolador atuando em um sistema

    embarcado. Com a popularizao da internet de banda larga, essa tecnologia passou

    a ser altamente explorada, possibilitando tambm tcnicas de monitoramento no s

    presenciais, mas tambm distncia, sendo possvel dessa forma controlar a

    residncia atravs de uma Web page (CRUZ,2009). Outros meios, como por exemplo

    o Bluetooth, padro de comunicao desenvolvido para integrao entre celulares e

    perifricos, tambm foram incorporados, com o objetivo de, por exemplo, controlar

    lmpadas pequena distncia (SILVA, B.C.R & CNDIDO, L.A.A, 2011).

    Atualmente possvel compor sistemas para automao residencial com bom

    nvel de controle, intermediado por sistemas embarcados cada vez mais poderosos,

    com acesso remoto via internet ou via sistema de telefonia mvel. Com a crescente

    popularizao de smartphones, cada vez mais estimulante a criao de aplicativos,

    atravs de ferramentas acessveis ao usurio, para se controlar os processos

    residenciais sem a necessidade da utilizao de um navegador para abertura de uma

    Web page.

    Alm disso, a integrao entre os processos a serem controlados e o

    aproveitamento total da central de automao, em questo de capacidade do sistema,

    so fatores importantes a serem considerados, visto que necessrio apenas uma

    central para controlar vrias aplicaes, o que determina um melhor custo-benefcio do

    que implement-las separadamente.

    Neste contexto, a proposta deste trabalho o controle de alguns processos

    residenciais escolhidos que esto presentes no dia-a-dia dos habitantes de uma

    residncia, como por exemplo: controle de lmpadas, alarme e alimentao de

    animais de estimao, tudo por meio de um smartphone.

    O controle de lmpadas tem como principal objetivo satisfazer o conforto dos

    integrantes de determinada habitao, eliminando a necessidade de se utilizar o

    interruptor para tal tarefa. Ademais, pode ser utilizado tambm por questes de

    segurana, acendendo a lmpada em determinada ocasio onde essa ao se faa

    necessria, principalmente quando o morador se encontra ausente.

    J o sistema de alarme para segurana de residncias vem ganhando bastante

    mercado nos ltimos tempos devido ao aumento da violncia, principalmente nos

    grandes centros urbanos. Desta forma, este trabalho prope o desenvolvimento de um

    sistema de alarme residencial de baixo custo, funcionando em conjunto com as outras

  • 19

    aplicaes, e que informe ao usurio, imediatamente, em seu celular, quando houver

    algum movimento suspeito no momento em que o alarme estiver ativado, alm de

    disparar uma sirene de segurana.Tambm possvel ativar ou desativar este mesmo

    alarme de qualquer lugar do mundo, via internet.

    A terceira e ltima aplicao desenvolvida para esta monografia um sistema

    de alimentao canina, ou de qualquer outro animal de estimao, via internet. A

    motivao para o desenvolvimento desse sistema permitir ao dono do animal em

    questo, monitor-lo a distncia e aliment-lo de acordo com a necessidade aps a

    verificao, em tempo real, da quantidade de comida que ainda resta no recipiente

    atravs de uma cmera.

    Em Maro do ano de 2012 o americano Nat Morris criou um mecanismo de

    alimentao canina via internet por intermdio do Twitter (DAILYMAIL,2012). O

    sistema era composto por um microprocessador Nanode (um microprocessador de

    cdigo aberto com conexo com a internet integrada, da mesma famlia do Arduino e

    que utiliza tambm o ATMega328 como microcontrolador) e um motor de passo de

    uma impressora HP Deskjet 500. Para que o co fosse alimentado era necessrio

    apenas enviar um comando para a conta @FeedToby noTwitter. Porm, como tal

    comando poderia ser enviado por qualquer pessoa, rapidamente o americano passou

    a ter problemas com quantidades ilimitadas de comida, o que o obrigou a limitar as

    pores em duas vezes ao dia. H tambm no mercado alimentadores baseados em

    temporizadores, que, de tempo em tempo, alimentam o animal. Eles tem como

    desvantagem a ausncia de um sistema de monitoramento que informe o usurio se

    h comida disponvel, ou se o co est de fato se alimentando, alm de serem

    alternativas de alto custo.

    Portanto, a idia deste trabalho integrar o mdulo de alimentao canina

    central de automao, funcionando em conjunto com as outras aplicaes, e acionado

    por meio de um aplicativo prprio, controlado somente pelo seu dono e monitorado por

    uma cmera que se mantm todo o tempo conectada internet. A aplicao citada, no

    entanto, no foi construda, foi desenvolvida apenas a idia para a soluo.

  • 20

    1.1 Objetivos

    Aproveitando a popularizao dos smartphones e tablets e as facilidades a eles

    agregadas, como acesso a internet e suporte de aplicativos, o objetivo do projeto o

    controle de processos residenciais, tais como: iluminao, alarme e alimentao de

    animais, com baixo custo de implementao, por meio de dispositivos mveis que

    utilizem o sistema operacional Android. O sistema em questo foi desenvolvido pela

    Google e tem como principal vantagem o acesso livre do usurio a hardware e

    software, permitindo a criao de aplicativos que atendam a uma necessidade

    especfica. Tal caracterstica foi aproveitada no projeto com a criao de um aplicativo,

    atravs de uma ferramenta de fcil acesso ao usurio, o App Inventor, que, em

    comunicao com uma plataforma de hardware e atuadores, controle determinados

    processos de uma residncia, de acordo com as necessidades do habitante.

  • 21

    2. Embasamento Terico

    Neste captulo ser apresentada toda a fundamentao terica necessria para

    o desenvolvimento desta monografia, bem como alguns componentes que foram

    utilizados e que merecem um maior aprofundamento terico a respeito de sua

    composio e funcionamento. O diagrama de blocos do sistema completo pode ser

    verificado na Figura 2.1.

    Figura 2.1 - O projeto

    2.1 Arduino

    Segundo McRoberts (2011,p.22), "O Arduino o que chamamos de plataforma

    de computao fsica ou embarcada, ou seja, um sistema que pode interagir com seu

    ambiente por meio de hardware e software."

    Graas a esta caracterstica, sua aplicabilidade no mundo eletrnico muito

    vasta, sendo possvel o controle de uma srie de dispositivos, os quais podemos citar:

    sensores, motores eltricos, LEDS, displays LCD, chaveamento de transistores, dentre

    outros.

  • 22

    O Arduino surgiu em 2005, na Itlia, criado por um professor chamado

    Massimo Banzi, que desejava ensinar a seus alunos um pouco de eletrnica e

    programao de dispositivos. Como seus alunos eram de um curso de Design, ensin-

    los eletrnica sem uma base construda no era uma tarefa simples. A inexistncia de

    algo barato no mercado e que tivesse ferramentas poderosas, tambm dificultavam as

    idias de Massimo. Devido a esses fatores, o professor, com auxlio de David

    Cuartielles, decidiram criar sua prpria placa, com a ajuda do aluno de Massimo,

    David Mellis, que ficou responsvel por criar a linguagem de programao do Arduino

    (BOEIRA, 2013). Assim, apareceu para o mundo uma das mais populares aplicaes

    de eletrnica de hoje em dia e que tem se espalhado rapidamente pelo planeta.

    O fato que mais chama ateno em relao ao Arduino a liberdade dada ao

    usurio. Tanto o software quanto o hardware so livres, de modo que qualquer pessoa

    tenha acesso. Inclusive qualquer usurio pode desenvolver seu prprio Arduino,com a

    ressalva de que no use este mesmo nome em sua placa de circuito impresso.

    A Figura 2.2 mostra o Arduino Uno, um dos modelos mais simples de Arduino

    existentes no mercado e utilizado neste trabalho.

    Figura 2.2 - Arduino Uno (McROBERTS,2011)

  • 23

    As caractersticas do sistema so as seguintes, seguindo o site oficial do

    produto (ARDUINO-1, 2013).

    -Microcontrolador: ATmega328

    -Tenso de operao: 5V

    -Tenso de entrada(recomendada): 7-12V

    -Tenso de entrada (limites): 6-20V

    -Pinos de entrada/sada digitais: 14 (6 podem fornecer sada PWM (Modulao por

    Largura de Pulso) )

    -Pinos de entrada analogica: 6

    -Corrente DC por pino de E/S: 40 mA

    -Memria Flash: 32 KB

    -SRAM: 2 KB

    -EEPROM: 1 KB

    -Frequncia de clock : 16 MHz

    Embora seja limitado para aplicaes consideradas de grande porte, devido a

    pouca capacidade de processamento e o baixo nmero de portas digitais e analgicas

    disponveis, o Arduino Uno ainda uma ferramenta poderosa para vrios tipos de

    aplicaes, alm de se tratar de uma opo vivel no mercado em termos financeiros.

    2.2 Ethernet Shield

    Outra vantagem do Arduino a existncia de vrios shields que permitem ao

    usurio estender a capacidade do sistema ou especificar uma aplicao desejada. Os

    shields so placas de circuito impresso que so encaixados placa principal e

    cumprem funo especfica no sistema.

    Dentro desse contexto, o Ethernet Shield, compatvel com Arduino Uno,

    responsvel por fazer a conexo do Arduino com a internet, atravs de um cabo de

    rede. Segundo o site oficial (ARDUINO-2, 2013), a forma de comunicao com a placa

    principal feita utilizando o barramento SPI (Serial Peripheral Interface), atravs dos

    pinos 10, 11, 12 e 13. No pino 10 feita a seleo do W5100, chip da WIZnet. Ele

  • 24

    fornece o protocolo TCP/IP para o Arduino na rede, possibilitando toda a comunicao

    com outro dispositivo via internet (para mais detalhes ver datasheet no Anexo A).

    O protocolo TCP/IP o principal protocolo de envio e recebimento de dados via

    internet. Por se tratar na verdade de um conjunto de protocolos integrados, pode

    tambm ser conhecido como "Pilha de Protocolos". dividido em 4 camadas distintas,

    de forma a garantir a integridade dos dados que trafegam pela rede (TECHMUNDO,

    2013). So as seguintes:

    Camada de Aplicao: Trata-se da camada mais prxima ao usurio. Essa

    camada utilizada para enviar ou receber informaes de outros programas atravs

    da rede. Nesta mesma, possvel encontrar outros tipos de protocolos como SMTP

    (para email), FTP (transferncia de arquivos) e o mais conhecido, HTTP (para navegar

    na internet). Uma vez que os dados tenham sido processados pela camada de

    aplicao, eles so enviados para a camada de transporte.

    Camada de transporte: Tem por funo principal receber os dados

    provenientes da camada anterior e dividi-los em blocos de dados, tambm conhecidos

    como pacotes.

    Camada de rede: Feita a diviso, os dados empacotados so recebidos e

    anexados ao endereo virtual (IP) do dispositivo remetente e do destinatrio.

    Camada de Interface: Tem por funo especificar os detalhes de como os

    dados so enviados fisicamente pela rede.Os protocolos utilizados nessa camada

    dependem do tipo de rede que est sendo utilizada. O tipo mais comum utilizado

    atualmente o Ethernet.

    Em suma, estes so os processos que ocorrem no W5100 para se receber ou

    enviar um dado via internet.

    Para montagem do sistema, basta encaixar o Ethernet Shield no Arduino Uno,

    nos terminais correspondentes, e ligar o cabo de rede proveniente do roteador na

    entrada RJ45 do shield. A Figura 2.3 ilustra o sistema j montado:

  • 25

    Figura 2.3 - Arduino Uno e Ethernet Shield (ARDUINOECIA,2013)

    Pode-se observar na Figura 2.3 o Ethernet Shield encaixado sobre a placa de

    Arduino Uno. Cabe ressaltar que este encaixe, conforme visto anteriormente, acaba

    ocupando 4 pinos digitais do Arduino, diminuindo para 10 portas digitais disponveis a

    capacidade do sistema, no caso do Arduino Uno.

    O restante do processo feito via software. necessrio a incluso da

    biblioteca Ethernet no cdigo e a configurao do IP que o Arduino ter na rede.

    2.3 Interface de Programao

    Mais uma vantagem do Arduino a interface amigvel de programao e

    comunicao com o microcontrolador. A conexo feita do computador com o Arduino

    via USB, permitindo o upload de programas para o AtMega328. A interface disponvel

    pode ser verificada na Figura 2.4.

  • 26

    Figura 2.4 - Interface de Programao

    A interface da Figura 2.4, alm das caractersticas j citadas, permite a

    compilao do programa, incluso de bibliotecas e alguns exemplos de aplicaes.

    Ademais, tambm permite um monitoramento da comunicao serial (Serial Monitor),

    muito til para identificao de erros no cdigo, observao do comportamento do

    sistema e at mesmo envio de comandos por este meio em determinada aplicao. A

    linguagem de programao utilizada a linguagem C.

    2.4 Acesso externo ao Arduino

    A forma de acesso externo ao Arduino no um processo simples e requer

    alguns conhecimentos que sero expostos a seguir.

    2.4.1 Intranet e Internet

    Intranet uma rede privada de uso exclusivo em determinado local, ou seja, de

    acesso restrito. Pode ser usada em empresas e em residncias. Constituem a

    tradicional rede local e portanto no permite acesso externo.

  • 27

    Internet a rede mundial de computadores e portanto um conglomerado de

    redes locais. No possui acesso restrito e possvel acess-la externamente de

    qualquer lugar do mundo.

    Portanto, acessar qualquer dispositivo pela intranet ou pela internet so

    processos totalmente distintos. A Figura 2.5 ilustra o processo.

    Figura 2.5 - Intranet e Internet

    O acesso pela Intranet exemplificado na cor vermelha, ou seja, a partir de um

    computador ou dispositivo mvel, acessa-se a rede local conectando-se ao roteador,

    que por sua vez envia o comando ao Arduino.

    J o exemplo destacado na cor verde, um acesso pela Internet. De qualquer

    lugar do mundo possvel acessar o roteador, que por sua vez envia os comandos

    dados ao Arduino. Entretanto, necessrio saber qual IP o roteador e o servidor ou

    domnio ligado a ele possui na rede. Esta ser uma questo abordada nos prximos

    tpicos.

    2.4.2 DNS e DDNS

    O servio DNS (Domain Name System) utilizado para a converso de

    endereos IP a partir de nomes de domnio que possuem formato numrico. Ele

    elimina a necessidade de se ter que lembrar um determinado nmero para o endereo

    de um site, basta lembrar o endereo tradicional, com letras do alfabeto. Em outras

    palavras, h duas formas de acessar uma pgina na internet: pelo nome de domnio

    ou pelo endereo IP dos servidores nos quais ela est hospedada. Para tornar

  • 28

    desnecessria a digitalizao da sequncia numrica no navegador sempre que se

    quiser visitar um site, o DNS realiza a tarefa de traduzir as palavras que compem a

    URL para o endereo IP do servidor, direcionando assim, o usurio para o local

    desejado.

    A forma de se implementar este servio ocorre por meio de vrios bancos de

    dados espalhados ao redor do mundo, de forma que, quando se digita algum endereo

    no navegador, solicita-se aos servidores de DNS do respectivo provedor de internet

    (ou outros que se tenha especificado) que encontre o endereo IP associado ao

    referido domnio. Caso estes servidores no tenham esta informao, eles se

    comunicam com outros que possam ter.

    Com o objetivo de tornar esse processo de busca mais prtico, foram criados

    nveis hierrquicos para os domnios. O primeiro nvel, e mais importante, o

    chamado Servidor Raiz (Root Server). A sua funo responder diretamente s

    requisies de registros da zona raiz, retornando uma lista dos servidores de nome

    designados para o domnio apropriado. Atualmente, existem 13 servidores deste tipo

    no mundo inteiro, sendo que 10 deles esto nos Estados Unidos ( 2 na Europa e 1 na

    sia). Em caso de falha de algum deles, os outros garantem a integridade do sistema.

    A hierarquia seguida com domnios que apresentam extenses grafadas como:

    .com, .net, .org, .info, .edu e outros. Estas so chamadas de gTLDs (Generic Top

    Level Domains).H tambm terminaes relacionadas a pases, chamadas de ccTLDs

    (Country Code Top Level Domains)I, como por exemplo: .br para o Brasil, .ar para a

    Argentina, .fr para a Frana e assim por diante (INFOWESTER,2013). A Figura 2.6

    ilustra o nvel hierrquico mencionado e o exemplo da posio no organograma do site

    (REGISTRO, 2013).

  • 29

    Figura 2.6 - Hierarquia de domnios (REGISTRO, 2013)

    Dessa forma, caso o servio de DNS do provedor de internet no encontre o

    domnio desejado, ele direcionar a busca a um Servidor Raiz que, por sua vez,

    direcionar ao nvel hierrquico imediatamente inferior, e assim sucessivamente at

    encontrar o domnio especificado. O servio do provedor de internet ento armazena

    esse endereo em um cache de DNS. Assim no necessrio fazer uma nova busca

    caso solicitado novamente o mesmo domnio.

    Um outro fator a ser considerado que, geralmente, clientes de provedores de

    internet no possuem IP fixo. Essa uma exclusividade de empresas,instituies de

    ensino ou de outras entidades que necessitam deste fator. O problema que sem um

    IP fixo, impossvel o acesso externo (via internet), j que o servidor DNS aponta para

    um IP especfico e se este mudar constantemente, os dados DNS deixam de ser

    vlidos. A soluo para este impasse o uso do DDNS (Dynamic Domain Name

    System).

  • 30

    O funcionamento do DDNS ocorre da mesma forma que o servidor

    DNS,fornecendo um banco de dados contendo as relaes entre o domnio e os

    endereos numricos. A diferena que agora este banco de dados pode ser

    atualizado a pedido do proprietrio do domnio. O proprietrio do domnio acessa o

    servidor DDNS que por sua vez envia informaes do IP do domnio ao servidor DNS.

    Analisando sob outro ponto de vista, o servidor DDNS uma ponte entre o

    cliente e o domnio a ser acessado, no caso deste trabalho, gerado pelo Arduino, que

    viabiliza o acesso pela internet a esse dispositivo. A Figura 2.7, retirada do site

    (DIPOL, 2013), ilustra bem o processo.

    Figura 2.7 - Funcionamento do servidor DDNS (DIPOL,2013)

    O DHCP (Dynamic Host Configuration Protocol) um protocolo cliente/servidor

    que fornece automaticamente um host de IP com seu endereo IP e outras

    informaes de configurao relacionados, como o gateway padro e mscara de sub-

  • 31

    rede. Em redes domsticas, configurado no roteador e fornece um endereo de IP

    exclusivo para acessar aquela rede especfica.Neste trabalho, assim como no exemplo

    da Figura 2.6, o servidor DDNS usado proveniente do no-ip.

    O no-ip um site onde possvel alocar servidores DDNS gratuitamente. Basta

    fazer o cadastro e configurar o servidor de maneira que atenda as necessidades do

    usurio. Feito isso, basta acessar no navegador o endereo configurado para o

    servidor criado no site e o trfego ser direcionado ao domnio gerado pela sua rede

    domstica, que neste caso contemplada pelo Arduino e o Ethernet Shield.

    2.5 App Inventor

    O App Inventor uma ferramenta para criao de aplicativos que possui uma

    interface grfica de programao, possibilitando ao usurio sem experincia com

    programao em linguagem Java, desenvolver aplicaes para dispositivos com

    sistema operacional Android. Foi originalmente colocado a disposio pela Google em

    Dezembro de 2010 e repassada ao MIT (Massachusetts Institute of Technology), que

    responsvel por manter o sistema ativo desde Dezembro de 2011.

    A interface utiliza a biblioteca Java de cdigo aberto Open Blocks para criao

    de um ambiente visual de programao, semelhante a um diagrama de blocos. A

    biblioteca citada acima distribuda pelo MIT e proveniente das teses de mestrado de

    Ricarose Roque, Professor Eric Klopfer e Daniel Wendel. O compilador que traduz a

    linguagem de blocos visual para aplicao em Android utiliza a estrutura de linguagem

    Kawa (linguagem de programao para plataforma Java), dentre outros dialetos da

    mesma (APPINVENTOR, 2013).

    Seguindo Wolber et al. (2011) o objetivo do usurio unir esses blocos em

    uma espcie de "quebra-cabeas", de modo a satisfazer sua necessidade de

    aplicao. Essa uma caracterstica importante do sistema, pois no permite a

    alocao de determinados blocos onde no seria possvel aloc-los. A justificativa dos

    criadores para o desenvolvimento da ferramenta a utilizao do sistema para se

    engajar idias poderosas atravs da aprendizagem rpida e contnua.

    Embora parea intuitivo, a utilizao do App Inventor ainda requer

    conhecimentos bsicos de lgica de programao e um estudo detalhado dos blocos

    que compem o sistema, principalmente para aplicaes com elevado grau de

    complexidade.

  • 32

    Para dar incio a criao de um novo aplicativo basta acessar o site

    (APPINVENTOR) e clicar na aba "Invent". Os projetos ficam hospedados na nuvem e

    podem ser acessados de qualquer lugar, sendo apenas necessrio fazer login em sua

    conta do Google. Na mesma pgina, pode-se ainda acessar tutoriais de

    desenvolvimento, guias de iniciao, alm de um frum entre os usurios, todos estes

    disponveis somente na lngua inglesa.

    Aps a criao de um novo projeto, a tela inicial de desenvolvimento aparece

    como na Figura 2.8. nesta onde se comea a criao do aplicativo. possvel

    customizar o seu app de acordo com sua criatividade incluindo botes, imagens,

    cores, telas secundrias e outros recursos que desejar. Alm disso, necessrio

    incluir elementos que no esto diretamente ligados ao design do aplicativo, mas que

    sero utilizados futuramente na montagem do diagrama de blocos do sistema, como

    por exemplo, para o caso deste trabalho, o componente "Web" (que fornece funes

    para HTTP GET) e o "TinyWebDb" (componente que se comunica com um servidor

    Web para armezenar,transferir ou recuperar informaes). S possvel tratar todos

    esses elementos no-visveis na montagem do diagrama de blocos, se os mesmos

    tiverem sido includos nesta tela de desenvolvimento.

    Figura 2.8 - Tela de desenvolvimento do aplicativo

  • 33

    Aps desenvolvida a primeira parte preciso construir o diagrama de blocos do

    aplicativo, atravs da aba "Open Blocks Editor". Cada tela de desenvolvimento criada,

    corresponde a uma aplicao que precisa ser desenvolvida no Editor de Blocos.

    necessrio que o programa Java esteja instalado no computador. A Figura 2.9 ilustra o

    ambiente de desenvolvimento.

    Figura 2.9 - Editor de blocos do App Inventor

    Na aba "Built-in" encontram-se todos os elementos genricos para criao da

    aplicao, separados por cores de acordo com o tipo de dado para facilitar o

    entendimento do usurio. Na aba "MyBlocks" esto todos os blocos referentes aos

    elementos que o usurio incluiu na tela inicial de desenvolvimento. Cabe ao usurio

    montar esses blocos, respeitando suas funcionalidades, para concluir a aplicao.

    Aps construda a aplicao, o usurio tem duas opes para test-la. A

    primeira a utilizao do emulador disponvel no prprio programa. A segunda fazer

    a comunicao com o celular via USB. Neste ltimo caso, necessrio fazer o

    download do aplicativo MIT AICompanion, disponvel gratuitamente na Play Store, e

    pare-lo, atravs de um cdigo de segurana, com o computador.Uma vez

    estabelecida a comunicao, possvel alterar o aplicativo criado no computador e

    este ser modificado em tempo real no celular, otimizando os processos de testes.

  • 34

    Realizados os testes, o usurio tem mais uma vez duas opes para transferir

    a aplicao definitivamente para seu smartphone. Ambas ocorrem atravs da aba

    "Package for Phone" na tela inicial de desenvolvimento (Figura 2.8). A primeira

    mediante a utilizao da porta USB do PC diretamente, sendo necessrio, neste caso,

    estabelecer a conexo com o aplicativo MIT AICompanion, conforme descrito no

    pargrafo anterior. A outra fazer o download para o computador do arquivo com

    extenso ".apk" e transferir ao smartphone via Bluetooth, Email ou qualquer outro meio

    de comunicao possvel entre os dois. Cabe ressaltar que ao instalar no celular o

    aplicativo possvel que as configuraes de segurana do celular o bloqueiem, visto

    que ele no um aplicativo proveniente da Play Store. Neste caso, ser necessrio

    alterar as configuraes de segurana do celular, permitindo a instalao de

    aplicativos que no so do Android Market.

    De fato, o App Inventor uma ferramenta poderosa para criao de aplicativos

    dos mais variados tipos. O editor de blocos contempla quase todas as caractersticas

    necessrias para criao de aplicativos dos mais simples aos mais complexos. Alm

    disso, a interface amigvel com o usurio constitui uma importante caracterstica do

    sistema, principalmente para usurios sem experincia com programao em

    linguagem Java.

    2.6 Sensor PIR

    O Sensor PIR (Passive Infrared Sensor) um sensor de movimento capaz de

    detectar nveis de radiao infravermelha. A radiao infravermelha existe no espectro

    eletromagntico com um comprimento de onda maior do que a luz visvel ao ser

    humano. Portanto ela no pode ser vista, mas pode ser detectada. Objetos que geram

    calor tambm geram radiao infravermelha e a estes objetos pode-se incluir animais

    e o prprio corpo humano. O termo "passivo" refere-se ao fato do sensor no gerar e

    nem irradiar alguma energia para o propsito de deteco.

    O Sensor PIR possui um circuito integrado que tem por funo amplificar os

    sinais analgicos de deteco e modular, a partir dele, um sinal de sada em nvel

    digital. Assim, quando detectada a presena de um intruso, este sinal de sada

    permanece em nvel alto por um determinado tempo. Caso contrrio, ele permanece

    em nvel baixo. Este mesmo sinal vai para a entrada do microcontrolador, que vai

    interpret-lo adequadamente. As Figuras 2.10 a) e 2.10 b) ilustram, respectivamente, o

  • 35

    encapsulamento do sensor e o circuito mencionado acima, representado pelo chip

    BISS0001.

    Figura 2.10 a) Encapsulamento b) Circuito integrado

    (LADYADA,2013)

    Trata-se de um componente de baixo custo e alta eficincia, possuindo um

    alcance de at 7 metros e um ngulo de abrangncia para deteco de movimento

    superior a 100. Alm disso, por no necessitar de uma alta tenso de alimentao (de

    3 a 5V) ideal para utilizao com microcontroladores PIC ou outros dispositivos do

    gnero, que trabalham com tenso de aproximadamente 5V, assim como o Arduino.

    2.7 Motores de passo

    O motor de passo pode ser definido como um transdutor, que converte pulsos

    eltricos em movimento mecnico de rotao. A rotao do eixo do motor

    caracterizada por um ngulo incremental de passo, para cada pulso de excitao.

    Esse ngulo incremental (que corresponde a um passo) geralmente especificado na

    folha de dados do motor e repetido precisamente a cada pulso, que, por sua vez, pode

    ser gerado por um circuito externo ou por um microcontrolador. O erro que possa

    existir num determinado ngulo incremental, geralmente menor que 5%, e no

    acumulativo.

    Motores deste tipo so comumente utilizados quando a aplicao requer uma

    grande preciso de posio do eixo do motor.O motor de passo possibilita um controle

    de velocidade, direo e distncia, podendo em certas ocasies, dispensar-se o

    controle em malha fechada (ou realimentao), bastando para tal que o torque

  • 36

    produzido pelo motor seja suficiente para movimentar a carga acoplada. O circuito

    responsvel pela atuao constitudo por um circuito sequencial (controlador) e um

    estgio amplificador de sada (driver).

    De acordo com Jones (1998), motores de passo podem ser classificados em

    dois tipos, em relao existncia ou no de derivao central nas bobinas que

    compem seu enrolamento:

    Unipolar : Os motores de passo unipolares so reconhecidos pela derivao central

    em cada uma das bobinas que o constituem. O nmero de fases corresponde a duas

    vezes o nmero de bobinas, uma vez que cada bobina se encontra dividida em duas.

    Na Figura 2.11, encontra-se a representao de um motor de passo unipolar de 4

    fases (1a, 2a, 1b e 2b).

    Figura 2.11 - Representao do motor de passo unipolar (JONES,1998)

    Normalmente, a derivao central das bobinas ligada ao positivo da fonte de

    alimentao e os extremos de cada bobina so ligados seqencialmente ao terra por

    um circuito apropriado (controlador mais driver), conforme o modo de acionamento

    adotado, para se produzir um movimento contnuo de rotao.

    Bipolar : Os motores bipolares so constitudos por bobinas sem derivao central.

    Por este fato, estas bobinas devem ser energizadas de tal forma que a corrente

    eltrica flua na direo inversa a cada dois passos para permitir o movimento contnuo

    do rotor.Em outras palavras, a polaridade deve ser invertida durante o funcionamento

    do motor, o que requer um controle apropriado e um pouco mais complexo,

    geralmente realizado atravs de um circuito conhecido como Ponte H. De forma geral,

    este circuito eletrnico constitudo por 4 chaves que so acionadas de modo

    alternado, com a finalidade de permitir que haja a inverso de polaridade.

  • 37

    Na Figura 2.12, representa a configurao das bobinas nos motores bipolares.

    Nota-se que agora tem-se o nmero de fases igual ao nmero de bobinas que

    compem o enrolamento do motor.

    Figura 2.12 - Representao do motor de passo bipolar (JONES,1998)

    Os motores de passo bipolares so conhecidos por sua relao

    tamanho/torque: eles proporcionam um maior torque (aproximadamente 40% a mais),

    comparativamente a um motor unipolar de mesmas dimenses. Tal questo se deve

    ao fato de que quando se energiza uma fase, magnetiza-se ambos os plos em que a

    fase (ou bobina) est instalada. Assim, o rotor sofre a ao de foras magnticas de

    ambos os plos, ao invs de apenas um, como acontece no motor unipolar.

    O funcionamento bsico de um motor de passo de m permanente, dispositivo

    de baixo custo altamente utilizado em aplicaes no industriais, condicionado

    energizao sequencial das bobinas que o constituem, conforme mencionado

    anteriormente. Na Figura 2.13, observa-se a constituio de motores deste tipo.

    Figura 2.13 - Constituio de motores de im permanente (KEMPER, 2013)

  • 38

    Ao energizar-se uma bobina, cria-se um campo magntico que atrai o plo

    magntico contrrio do im localizado no rotor. Quando se desliga essa primeira

    bobina e energiza-se a prxima, o im do rotor segue esse campo magntico e d um

    passo no sentido desejado. H ainda outras alternativas de controle, ao invs de

    apenas se energizar uma bobina por vez, como por exemplo a tcnica de meio passo

    (Half Step). Na Figura 2.14, ilustra-se a sequncia de acionamento por meio passo e

    passo inteiro para motores bipolares e unipolares.

    Figura 2.14 - Sequncias de acionamento (BRITES, F.G & SANTOS, V.P.A, 2008)

    Existem tambm outros tipos de motores de passo diferentes do motor de im

    permanente, como o motor de relutncia varivel e o motor de passo hbrido, que no

    sero abordados nesta monografia.

  • 39

    3.Metodologia

    Para as aplicaes descritas nessa seo, foi inicialmente construda uma

    pgina, desenvolvida diretamente na interface de programao do Arduino, em

    linguagem HTML, para ilustrar e implementar a aplicao de um controle de lmpadas,

    com botes de controle, de forma a ligar/desligar cada uma delas por meio da intranet

    e, posteriormente, da internet. O intuito principal da criao desta pgina foi obter uma

    maior familiarizao com o Arduino e compreender as dificuldades envolvidas no

    processo de execuo de comandos e respostas por meio da internet. Entretanto, este

    no o objetivo principal desta monografia, e, aps validadas as questes j citadas,

    foi desenvolvido um aplicativo para Android objetivando no somente o controle de

    lmpadas, j implementado anteriormente, como tambm o controle de outros dois

    processos de uma residncia: alarme e alimentao de animais de estimao, de

    acordo com a necessidade do usurio.

    O conceito principal de funcionalidade do sistema, de forma geral, simples:

    cada boto de controle, inserido no aplicativo, controla, de qualquer lugar do mundo,

    uma ou mais sadas digitais do Arduino que, com auxlio de circuitos auxiliares,

    realizam a ao desejada. Alm disso, o Arduino envia feedbacks ao usurio,

    informando qual o estado atual de cada aplicao.

    Nesta seo, sero aprofundados estes conceitos, descrevendo e detalhando os

    mtodos utilizados para realizao das aplicaes mencionadas, bem como a forma

    de configurao do no-ip e roteador para o acesso externo, alm da criao do

    aplicativo com auxlio do App Inventor.

    O software desenvolvido no Arduino e o projeto no App Inventor, encontram-se

    nos Apndices A e B, respectivamente.

    3.1 Configurao para acesso via internet

    Para o acesso ao Arduino via internet com auxlio do no-ip necessria a

    realizao de alguns passos que sero descritos a seguir. Primeiramente, importante

    frisar que a porta recomendada pelo no-ip a porta 80, a padro de comunicao.

    Contudo, alguns provedores de internet bloqueiam esta porta, justamente para que

    no se possa armazenar sites em casa. Assim, caso esta no esteja disponvel,

    necessrio redirecionar o fluxo de informaes para uma outra porta, que esteja

  • 40

    disponvel pelo provedor de internet. Para descobrir se uma porta est disponvel ou

    no, pode-se acessar o site (CONYOUSEEME,2013) e testar a porta no espao

    correspondente. O servio tentar ento "enxergar" o seu IP pblico atravs da porta

    escolhida. Caso consiga, a porta est aberta pelo seu provedor de internet, caso

    contrrio ser necessrio tentar uma outra porta, at que se obtenha sucesso. Aps

    descoberta uma porta que esteja acessvel, executa-se o processo exemplificado na

    Figura 3.1, onde o fluxo foi redirecionado para porta 8888 atravs da configurao no

    site do no-ip.

    Figura 3.1 - Redirecionamento de fluxo pelo no-ip

    O "IP Address" o IP atual da rede domstica, descoberto automaticamente

    pelo prprio site.

    Aps a configurao do servidor como desejado, necessrio criar

    manualmente uma regra de roteamento nas configuraes do roteador,atravs da

    opo "Virtual Server". Toda informao que vier atravs da porta 8888,

    redirecionada para o endereo de IP que foi configurado para o Arduino via software.

    Na Figura 3.2 pode-se observar o ocorrido. O roteador utilizado foi o D-Link-524.

  • 41

    Figura 3.2 - Regra de roteamento

    O endereo de IP 192.168.0.199 foi configurado no Arduino via software com

    auxlio da biblioteca do Ethernet Shield, como pode ser observado no Apndice A.

    Por ltimo, necessrio configurar o roteador como na Figura 3.3, para

    atualizar o no-ip com o endereo de IP da rede onde se encontra o Arduino, evitando

    que o acesso a ele seja bloqueado mesmo que este IP se altere.

    Figura 3.3 - Atualizao do DDNS

  • 42

    Desta maneira, o roteador atualiza o no-ip periodicamente, informando qual o

    IP necessrio para acess-lo.

    3.2 Controle de lmpadas

    Para o controle de lmpadas utilizou-se o circuito da Figura 3.4.

    Figura 3.4 - Circuito para controle de lmpadas

    Na base de Q1 encontra-se uma sada digital do Arduino, acionada por um

    boto via internet. Caso haja corrente na base do transistor (sada do Arduino em nvel

    alto), este funciona como uma chave, ativando a bobina do rel U1, fechando o

    contato auxiliar e, consequentemente, acendendo a lmpada. Caso contrrio, ela

    permanece apagada. O diodo D1 protege o sistema contra fora-eletromotriz reversa.

    O circuito da Figura 3.4 bastante comum em aplicaes envolvendo

    microcontroladores. Ele permite que se controle dispositivos que demandem uma

    corrente da ordem de 100 a 500 vezes maior (dependendo do ganho do transistor

    utilizado) do que a corrente mxima de sada de uma porta digital do microcontrolador.

    Para o caso do Arduino, por exemplo, e do BC547A, utilizado nesta monografia,

    possvel controlar uma corrente de at aproximadamente 4A no coletor do transistor,

    visto que cada porta digital demanda no mximo 40mA de corrente e o transistor

    citado possui um ganho de corrente prximo a 100. Este fator aumenta muito a

    quantidade e a variedade de aplicaes que o sistema pode suportar. Alm disso,o

  • 43

    uso deste circuito constitui tambm um importante fator de segurana, que impede um

    possvel dano ao sistema. Como a tenso instantnea em uma bobina qualquer

    dada pela indutncia da mesma multiplicada pela variao da corrente em funo do

    tempo, e como a corrente varia muito rapidamente no indutor, esta tenso instantnea

    pode assumir um valor muito grande, o que pode ocasionar os chamados surtos de

    tenso, que por sua vez podem queimar o transistor ou afetar o microcontrolador. Por

    isso, a utilizao do diodo D1, que impede que estes surtos cheguem ao circuito de

    aplicao, mantendo sempre uma tenso de no mximo 0,7V (queda de tenso no

    diodo) a mais que a fonte de alimentao na bobina, valor que o transistor suporta

    sem maiores problemas.

    Na prtica, recomendvel a utilizao do rel substituindo um interruptor

    paralelo de forma que, ou um, ou outro, liguem ou desliguem o sistema quando for

    desejado. Assim, possvel controlar as lmpadas pela internet ou da forma

    convencional. O esquema de ligao proposto encontra-se na Figura 3.5.

    Figura 3.5 - Interruptor paralelo e rel

    Para este trabalho, foi construdo um circuito para apenas uma lmpada

    independente. Contudo, o conceito extensvel a vrias lmpadas, caso este seja o

    intuito do projeto.

  • 44

    3.3 Alarme residencial

    O circuito utilizado para implementao do alarme pode ser observado na

    Figura 3.6.

    Figura 3.6 - Circuito de implementao do alarme

    Para simulao de uma sirene utilizou-se um disco piezoeltrico. Trata-se de

    um dispositivo simples, feito de uma fina camada de cermica, envolta por um disco

    metlico. Materiais piezoeltricos, tem a capacidade produzir eletricidade quando a

    eles aplicada alguma presso mecnica. O efeito contrrio tambm verdadeiro. Ao

    se aplicar um campo eltrico em um material deste tipo, o mesmo muda de forma,

    provocando um efeito sonoro audvel conforme o disco se deforma. Portanto, ao ser

    aplicada uma tenso nos terminais de um objeto deste tipo,por meio de uma das

    sadas digitais do Arduino, o disco passar a vibrar em uma nica frequncia,

    produzindo sons.

    Aps ter sido desenvolvido o circuito de aplicao e a parte de software para

    comandar a leitura do sensor de movimento e ativao da sirene quando for detectada

    a presena de intrusos, implementou-se as notificaes ao usurio quando o alarme

    disparado. A priori, a inteno era utilizar as prprias notificaes do aplicativo, da

    mesma forma que outros aplicativos conhecidos utilizam, como o Facebook e o

  • 45

    Whatsapp, por exemplo. Porm, embora seja uma requisio constante dos usurios

    nos fruns especializados, o App Inventor ainda no possui uma forma de gerar

    notificaes em tempo real. Ele no tem a capacidade de manter as aplicaes "vivas"

    enquanto o celular no est sendo utilizado. Dessa forma, caso o usurio no esteja

    utilizando o aparelho mvel, ele no verificaria o disparo do alarme em tempo real,

    mas somente quando voltasse a utiliz-lo. Partiu-se ento para uma outra soluo que

    resolvesse este impasse e o mtodo escolhido foi a utilizao do Twitter.

    O Twitter uma rede social e servidor para microblogging, que permite aos

    usurios o envio e recebimento das atualizaes pessoais de outros contatos (em

    textos de at 140 caracteres, conhecidos como "tweets"), por meio do website do

    servio, por SMS e por softwares especficos de gerenciamento. O servio gratuito

    pela internet e qualquer usurio com acesso a rede ou a algum dispositivo mvel com

    essa funcionalidade pode criar uma conta e usufruir do sistema sem nus financeiro.

    Estima-se que atualmente cerca de 500 milhes de pessoas ao redor do mundo

    utilizem a rede social.

    No segundo semestre deste ano de 2013 o Twitter atualizou seu sistema para

    aplicaes de celular implementando as "Notificaes Push" (em tempo real), assim

    como outros aplicativos j utilizavam. Ademais, ele possui a interessante caracterstica

    de poder enviar SMS do servidor diretamente para celulares tambm de forma gratuita

    (por enquanto somente para as operadoras TIM e Nextel, pois as outras s permitem o

    envio do SMS do celular para o Twitter, e no ao contrrio), em situaes especficas

    que o usurio pode configurar dentro do prprio microblog (como menes ou tweet de

    algum amigo especfico). Particularmente, esta uma caracterstica importante para a

    aplicao desejada, pois elimina a necessidade de estar em um local com acesso a

    internet para receber a notificao proveniente do alarme, visto que ela pode ser feita

    via mensagem SMS.

    Embora seja uma ferramenta interessante, o acesso ao Twitter por meio do

    Arduino no um processo fcil e foi mudado recentemente. Segundo McRoberts

    (2011,p.420),

    A partir de 31 de agosto de 2010, o Twitter alterou sua poltica no que

    se refere ao acesso ao site utilizando aplicativos de terceiros. Um

    mtodo de autenticao, conhecido como OAuth, agora utilizado,

    tornando muito mais difcil "twittar" diretamente a partir de um

    Arduino; antes dessa alterao, esse processo era muito mais fcil.

    Enviar mensagens pelo Twitter, neste momento, s possvel

  • 46

    utilizando um recurso externo. Em outras palavras, necessrio

    enviar o tweet para um site, ou proxy, que twittar em seu nome,

    utilizando o token OAuth (cdigo de acesso).

    O protocolo OAuth fornece uma forma padronizada de acessar dados

    protegidos. De fato, a biblioteca do Twitter e o cdigo exemplo, que vem inseridos com

    a IDE (interface de programao) ao baix-la, no funcionam mais por esse motivo.

    Assim, utilizou-se um servidor proxy para tornar possvel as postagens por meio do

    Twitter.

    Servidor proxy um servidor que atende a requisies repassando os dados

    do cliente a frente. Um usurio conecta-se a ele, requisitando algum servio (neste

    caso o acesso ao servidor do Twitter) e este repassa a requisio para o servidor

    destinatrio. Um servidor proxy pode, opcionalmente, alterar a requisio do cliente ou

    a resposta do servidor e, algumas vezes, pode disponibilizar este recurso sem nem

    mesmo se conectar ao servidor especificado. Em redes de computadores, pode

    tambm atuar como um servidor que armazena dados em forma de cache, guardando

    informaes para melhorar a rapidez de conexo a servidores que j foram acessados

    anteriormente.

    O servidor citado como proxy o (ARDUINOTWEET,2013). O site foi

    desenvolvido por um usurio do Arduino, denominado Neocat, e que utiliza seu

    domnio para enviar o tweet com o protocolo de autenticao OAuth. Para enviar um

    "tweet" necessrio instalar a biblioteca Twitter.h, desenvolvida por ele, substituir a

    anterior e obter um token (verso criptografada do seu nome de usurio e senha),

    ambos disponveis em seu site. Ainda h um exemplo de cdigo a se implementar

    para "twittar". Embora dezenas de usurios utilizem este mesmo caminho para

    "twittar", recomenda-se, por questes de segurana ao utilizar um servidor proxy, a

    criao de um novo perfil annimo no Twitter apenas com o intuito de monitoramento

    de sua residncia, assim como foi feito neste trabalho.

    Realizada a conexo, configurou-se dentro do prprio Twitter a obteno de

    notificaes toda vez que o perfil casamonitor, criado exclusivamente para este

    projeto, mencionar o perfil pessoal do autor desta monografia. Assim, basta configurar,

    via software, na IDE do Arduino, a mensagem a ser "twittada" como uma meno ao

    perfil que se deseja notificar. A forma de fazer isso atravs do Twitter "@ + nome do

    usurio".

  • 47

    Finalmente, necessrio baixar o aplicativo do Twitter em seu celular Android,

    cadastrar sua conta pessoal no mesmo e ativar a sincronizao de conta para permitir

    tambm as notificaes em tempo real.

    3.4 - Alimentao de animais de estimao

    Para viabilizar o desenvolvimento do sistema de alimentao via internet,

    simulou-se o uso do motor de passo unipolar Mitsumi M42SP-5 (ou similar),controlado

    pelo Arduino, que responsvel por abrir e fechar o compartimento onde fica

    armazenada a comida do animal, despejando a mesma no recipiente adequado, a

    partir de um comando dado pelo usurio ao aplicativo instalado em seu celular. Um

    outro comando dado para fechar o compartimento e interromper a alimentao. Alm

    disso, utilizou-se uma Cmera IP para se obter imagens do recipiente de comida,

    indicando se h ou no algum alimento no mesmo. O fluxograma representado na

    Figura 3.7.

    Figura 3.7 - Fluxograma para alimentao via internet

    Uma Cmera IP um dispositivo capaz de transmitir imagens e receber

    informaes atravs da internet. Ela conectada ao roteador via Wireless (existem

    tambm modelos que so conectadas por cabo de rede) e portanto tambm possui um

  • 48

    IP na rede. Conforme j foi discutido na Seo 2.4, para acess-la externamente

    necessrio a utilizao de um servidor DDNS, que pode ser disponibilizado pelo no-ip.

    Dessa forma, utilizou-se para acesso a cmera o mesmo procedimento descrito na

    Seo 3.1, criando-se um novo Host denominado (cameracanil.zapto.org) e utilizando-

    se, desta vez, a porta 8080 de comunicao. Portanto possvel acessar as imagens

    do local onde a cmera se encontra de qualquer dispositivo que tenha conexo com a

    internet, como por exemplo um smartphone, bastando acessar o domnio descrito

    acima atravs do navegador. O modelo de cmera utilizado foi a Edimax IC-3110W,

    semelhante ilustrada na Figura 3.8.

    Figura 3.8 - Cmera IP (STARDOT,2013)

    Para simulao do motor de passo, foi selecionado um motor com configurao

    unipolar, que possui um controle mais fcil de ser implementado, por no necessitar

    de inverso de polaridade das bobinas, conforme explicado na Seo 2.7. Foram

    ligados 4 Leds, cada um a uma sada digital do Arduino, simulando as 4 bobinas de

    um motor de passo, que, energizadas sequencialmente, so responsveis pelo

    movimento do mesmo. Quando for necessria a troca de sentido, basta inverter a

    sequncia. Entretanto, cabe ressaltar que na prtica no possvel ligar os 4 fios

    provenientes das bobinas do motor direto na sada do microprocessador por questes

    j apontadas anteriormente. necessrio um circuito de acionamento semelhante ao

    da Figura 3.4 para cada bobina ou seno um driver que o substitua, como por exemplo

    o CI ULN2003. A Figura 3.9 mostra a ligao do motor de passo Mitsumi M42SP-5

    juntamente com o ULN2003. Tambm necessria uma fonte de alimentao externa

    para alimentar o motor de 12 a 24VDC.

  • 49

    Figura 3.9 - Esquema de ligao motor de passo

    J a Figura 3.10, representa um desenho ilustrativo (fora de escala) do sistema

    de alimentao, feito a mo livre e digitalizado posteriormente, onde a central de

    automao corresponde ao Arduino e o Ethernet Shield.

    Figura 3.10 - Desenho ilustrativo do sistema de alimentao

  • 50

    3.5 Criao do aplicativo

    Por fim, desenvolveu-se um aplicativo capaz de comandar todas as aplicaes

    descritas anteriormente. Utilizou-se neste processo o App Inventor, detalhado na

    Seo 2.5. As 3 telas de interao com o usurio e os respectivos componentes

    utilizados para posterior tratamento no Editor de Blocos, esto representados na

    Figura 3.11

    Figura 3.11 - Telas de interao com o usurio

    A primeira tela a tela inicial, onde ser necessrio inserir a senha do usurio

    para permitir o acesso s outras telas. Dessa forma, em caso de furto do celular ou em

    outra circunstncia onde o smartphone possa ficar exposto a outros indivduos,

    ningum estar apto a acessar a tela principal de controle da residncia, a menos que

    possua a senha do aplicativo. A senha para acesso definida no Editor de Blocos, e

    para o caso desta monografia foi definida como "tcc". Em caso de senha incorreta,

    exibi-se uma notificao alertando para este fato. O boto "Sair" fecha a aplicao.

    A tela "Config" a tela onde ser necessrio incluir o IP pblico da rede que

    hospeda o Arduino. Inicialmente, tentou-se fazer esse acesso atravs dos mtodos j

    citados nesta monografia, com auxlio do no-ip. Alguns problemas, que sero

    discutidos no prximo o captulo, ocorreram e foi necessrio o desenvolvimento de um

    outro mtodo para substituir o servio de DDNS fornecido pelo no-ip.

    Para soluo deste impasse, foi elaborada uma soluo atravs do prprio

    Arduino. A nova funo designada a este consiste em acessar um site especializado

  • 51

    em descobrir IP's, periodicamente, interpretar esse dado fornecido pelo site e verificar

    se o mesmo igual ou diferente do dado armazenado na memria. Se for diferente,

    significa que o IP da rede mudou, e ento novamente utiliza-se o Twitter para notificar

    o usurio que o IP foi modificado e qual esse novo nmero. O usurio ento,

    obtendo essa informao, acessa a tela de configuraes do aplicativo a atualiza o IP

    da sua rede para esse novo nmero, inserindo-o e clicando em "Submit".

    O site escolhido foi o (CHECKIP,2013). Ao acess-lo, obtm-se o seguinte

    cabealho no formato HTML:

    CurrentIP CheckCurrent IP Address:

    177.34.170.35

    que pode ser decifrado de modo a se obter somente o endereo numrico do IP. O

    trecho de cdigo correspondente a esta funo foi adaptado do blog

    (JOSEMATM,2013).

    Interpretado o IP da rede, esse dado armazenado na memria de programa

    do microcontrolador do Arduino, verificando, a cada acesso ao site, se o novo valor

    obtido igual ou diferente do armazenado. Em caso de diferena, esse novo valor

    ser armazenado na memria de programa, mas ser ainda necessria uma

    converso de tipos de dados para transmiti-lo ao Twitter. O nmero de IP devolvido

    pela funo um numro de 32 bits ou do tipo uint_32 . Portanto,ser necessrio

    transform-lo em 4 vetores de 8 bits (ou uint_8) e depois imprim-lo em um vetor de

    caracteres (atravs da funo sprintf) antes de transmit-lo com auxlio da biblioteca

    Twitter.h.

    Realizada a converso de dados e a transmisso, o usurio notificado e cabe

    a ele acessar o aplicativo e atualizar esta informao. No necessrio colocar este

    nmero todas as vezes que abrir o aplicativo. Este nmero de IP fica armazenado no

    celular, a menos que se exclua os dados do aplicativo nas configuraes do aparelho

    ou que se instale o mesmo novamente. Uma vez colocado o dado e em caso de no

    se ter recebido notificaes, basta teclar "ok" quando acessar a tela "Config" que o

    usurio ser direcionado tela principal.

    Na tela principal, encontram-se todos os comandos para as 3 aplicaes

    desenvolvidas. Os botes interpretam se as sadas do Arduino esto em nvel alto ou

    baixo, indicando ao usurio, por meio de cores (verde para ligado e vermelho para

    desligado), qual o status de determinada aplicao. O boto "Desligar" no somente

    o boto que desliga a sirene do alarme, mas tambm um indicador de status se o

  • 52

    alarme est disparado ou se est desligado, mudando de cor e indicando visualmente

    ambos os casos. Por fim, para a alimentao canina, possvel acessar a cmera

    localizada no canil e visualizar se h comida ou no no recipiente ou tambm se no

    h nada de errado com o animal. Caso o usurio necessitar alimentar o co, basta o

    mesmo clicar na imagem indicada. Se o compartimento estiver fechado, o texto da

    imagem permanecer pedindo por comida. Em contrapartida, se o mesmo estiver

    aberto, o co exibe uma mensagem de agradecimento. O boto de configuraes

    retorna para a tela "Config" caso seja necessria alguma alterao na mesma.

    Segue abaixo uma descrio de todos os componentes do App Inventor

    utilizados e suas funes dentro do sistema:

    Notifier: Os blocos que esto presentes nesse componente so capazes de

    exibir vrios tipos de notificaes ao usurio do aplicativo, incluindo mensagens SMS

    ou simples alertas na forma de texto.Foi utilizado neste projeto com a finalidade de

    notificar o usurio na tela inicial, no caso deste ter inserido uma senha incorreta para

    tentar acessar o aplicativo.

    Tiny DB: Permite que o usurio armazene informaes dentro do prprio

    aplicativo e as recupere a qualquer momento. Este recurso foi utilizado para

    armazenar a IP pblica do usurio na rede e repass-la varivel "ip", utilizada na

    Tela Principal. Para utilizao deste componente em telas diferentes, como aconteceu

    neste estudo, foi necessrio inclu-lo em ambas, conforme observado na Figura 3.11.

    Clock: Fornece ao usurio a opo de criar eventos que executem

    determinada ao em intervalos regulares de tempo definidos pelo usurio. Para este

    trabalho, sua funo foi prover um intervalo de tempo de 1s para se acessar o domnio

    onde se encontra o Arduino (com auxlio do componente Web), de forma a permitir a

    obteno da resposta das portas digitais, fornecendo o feedback para o aplicativo

    periodicamente. Esse componente s funciona quando o celular est ativo, e esta

    justamente a questo determinante que inviabilizou as notificaes em tempo real pelo

    App Inventor.

    Web: Componente que fornece funes para requisio HTTP GET e HTTP

    POST. Esse foi o componente utilizado para se fazer uma requisio e acessar o

    domnio gerado pelo Arduino a partir da varivel "ip".

    TinyWebDB: Componente que se comunica com um domnio na internet e tem

    por funo transmitir, armazenar e recuperar informaes. Foi utilizado para passar as

    intrues ao Arduino, via internet com auxlio do componente Web.

  • 53

    Activity Starter: Contm funes que conseguem iniciar atividades dentro do

    aplicativo, como abertura de novos cones, acionamento da cmera do aparelho,

    dentre outras. Foi utilizado como um boto com o link necessrio para se acessar a

    Cmera IP a partir do navegador por meio do endereo que ela possui na internet,

    gerado pelo no-ip.

    O projeto para cada uma das telas, com as funes fornecidas pelos

    componentes citados, encontra-se no Apndice B.

  • 54

  • 55

    4. Resultados e Discusses

    Uma amostra da pgina HTML construda para testes de comandos ao Arduino

    atravs da internet, pode ser visualizada na Figura 4.1.

    Figura 4.1 - Amostra da pgina

    O acesso ao Arduino atravs dos botes da pgina HTML foi realizado com

    sucesso, sendo testado na Intranet e tambm na Internet, esta ltima forma de acesso

    realizada com auxlio do no-ip, atravs do domnio (tcclucas.zapto.org), aps todo o

    procedimento descrito na seo 3.1. Implementou-se tambm o circuito da Figura 3.4

    para testes do acionamento de lmpadas via internet, tambm realizado com sucesso.

    A respeito da confeco da pgina, esta questo no foi aprofundada por no ser o

    objetivo deste trabalho. Uma vez testada a conexo com o Arduino via internet para o

    acionamento de lmpadas, foi dado prosseguimento ao trabalho com a criao do

    aplicativo, este sim objetivo principal do mesmo.

    A respeito da criao do aplicativo, o principal problema apresentado foi

    justamente o acesso externo ao Arduino. Inicialmente, foi feita a tentativa de realiz-lo

    atravs do acesso ao domnio gerado pelo no-ip, de maneira anloga realizada

    atravs da pgina HTML. Dessa maneira, no seria necessrio saber qual o IP do

    Arduino na rede, bastava decorar o endereo do domnio, mesmo que este mudasse

    com decorrer do tempo, conforme foi exposto na Seo 2.4.2. Definiu-se ento uma

    varivel "ip" no Editor de Blocos da Tela Principal do App Inventor e atribuiu-se a ela o

    endereo do domnio (com letras do alfabeto). Toda vez que se precisasse fazer uma

    requisio ao servidor (HTTP GET), essa varivel seria chamada. Todavia, no foi

  • 56

    possvel realizar a requisio desta forma, atravs do componente Web. O indicativo

    do app era de que era impossvel a obteno de uma resposta do servidor requisitado,

    embora o domnio apontasse para o endereo numrico do IP pblico da rede onde se

    encontra a central de automao. No entanto, quando a varivel "ip" foi colocada

    diretamente na forma numrica, com o IP da rede, a requisio foi feita com

    sucesso.Tratou-se portanto de um problema de DNS, onde no foi possvel traduzir o

    endereo com letras do alfabeto para o formato numrico, utilizando os blocos

    disponveis no App Inventor. Aps muitas pesquisas, estudo de todos os componentes

    do App Inventor e contato via internet com fruns e blogs especializados no assunto,

    no foi possvel solucionar essa questo.

    Foi implementada uma outra soluo, j descrita na Seo 3.5, para substituir o

    servio de DDNS fornecido pelo no-ip. Inicialmente, essa soluo sobrecarregou o

    sistema, pois agora o Arduino teria que acessar o site que identifica o IP pblico da

    rede a cada execuo do cdigo, que fica em um loop infinito, o que acarretava em

    uma requisio a cada 2 segundos, aproximadamente. Dessa forma, o tempo de

    resposta do sistema para qualquer requisio proveniente do aplicativo, aumentou

    cerca de alguns segundos para ser processada. A soluo para este caso foi inserir

    uma varivel contadora ("cont") no cdigo do programa, de modo que o site s fosse

    acessado aps esta atingir um valor determinado. Assim, a requisio agora feita de

    cerca de 5 em 5 minutos, evitando a sobrecarga do sistema. Um outro problema

    encontrado foi que, se em alguma requisio ao site, ocorresse algum problema, ou de

    origem do provedor de internet ou do prprio servidor que hospeda o site, o valor

    obtido para varivel que identifica o IP da rede ("ipAtual") era 0.0.0.0. Como essa

    varivel diferente daquela que estava armazenada na memria de programa, era

    postada uma notificao ao usurio, atravs do Twitter, informando que o IP havia

    mudado e que o novo valor era 0.0.0.0, o que obviamente no se tratava se uma

    informao verdadeira. Esse problema foi solucionado criando-se uma varivel

    "ipnulo" e atribuindo-se a ela o valor do IP com os zeros, de forma a s enviar a

    notificao ao usurio se a varivel obtida atravs do site fosse, no somente diferente

    da varivel contida na memria de programa, mas tambm diferente da varivel

    "ipnulo". Ademais, a soluo de notificao ao usurio funcionou corretamente, assim

    como todas as outras funcionalidades do aplicativo. Na Figura 4.2, pode-se observar o

    funcionamento do mesmo.

  • 57

    Figura 4.2 - Aplicativo em funcionamento

    A respeito das aplicaes desenvolvidas, cabem algumas consideraes. Em

    relao ao alarme, a soluo implementada por meio de notificaes via Twitter

    mostrou-se eficaz, apontando todas as vezes que o alarme foi disparado,

    imediatamente. Foi feita tambm a tentativa de fazer o sistema de notificaes via

    email, atravs do protocolo SMTP (Simple Mail Transfer Protocol). Trata-se de um

    protocolo padro de envios de emails atravs da internet, relativamente simples, onde

    um ou vrios destinatrios so especificados e depois transfere-se a mensagem. A

    conexo com o servidor de email destinatrio foi realizada com sucesso, mas a

    mensagem no foi transferida. Isso ocorreu devido aos servidores de email usarem

    atualmente o protocolo de autenticao TLS (Transport Layer Security) ou o seu

    antecessor, o SSL (Security Sockets Layer) para receber e transmitir mensagens.

    Os protocolos TLS/SSL so protocolos baseados em criptografia, que

    estabelecem segurana de comunicao via internet para alguns servios especficos,

    como email (SMTP), por exemplo. So protocolos complexos que, por serem

  • 58

    criptogrficos, exigem uma grande capacidade de processamento e, portanto, so de

    impossvel realizao em um Arduino Uno ou em qualquer outro microcontrolador de 8

    bits. Contudo, cabe ressaltar que a soluo por meio do Twitter atendeu

    completamente s solicitaes e que tambm possvel configurar, dentro da prpria

    rede social, o envio de emails toda vez que houver uma meno de perfil, se o usurio

    julgar necessrio este recurso, alm das notificaes em tempo real atravs do

    aplicativo.

    Tratando-se ainda da questo das notificaes, o Twitter tambm capaz de

    enviar mensagens SMS gratuitamente para o nmero de celular especificado nas

    configuraes da rede social, conforme mencionado na Seo 3.3. Dentro desse

    contexto, o Arduino tambm possui um shield especfico para enviar SMS para

    celulares.Trata-se do Shield GSM. Para o envio de mensagens, necessrio o uso de

    um chip para celulares, o que acarreta custos adicionais de acordo com a operadora

    escolhida. Entretanto, o uso deste shield uma alternativa interessante, pois pode

    funcionar como redundncia ao sistema, em caso de alguma falha proveniente do

    Twitter ou do servidor proxy que faz a requisio a este servio para o envio das

    notificaes,ou para simples envio de SMS, para usurios que no possuem celulares

    das operadoras TIM ou Nextel (as nicas que suportam o servio de mensagens SMS

    atravs do Twitter neste momento).J para os usurios que no possuem acesso a

    internet pelo seu smartphone em tempo integral, este shield de fundamental

    importncia, pois as notificaes no dependero mais do acesso rede.

    Finalizando a discusso a respeito do alarme residencial, cabe ressaltar que o

    disco piezoeltrico para produo de sons foi escolhido apenas para efeito de

    simulao, no dispondo de uma capacidade sonora suficiente para ser aplicado a um

    alarme residencial. Para um melhor desempenho deste tipo de dispositivo recomenda-

    se o uso de uma outra sirene mais potente, sendo necessrio o uso de circuitos

    auxiliares para sua ativao, semelhantes ao da Figura 3.4, utilizado para controle de

    lmpadas.

    Em relao alimentao de animais de estimao, tambm importante fazer

    algumas consideraes. A escolha da Cmera IP, deveu-se, sobretudo, a substituio

    de todos os sensores que seriam necessrios para monitoramento da aplicao.

    Graas a sua versatilidade, possvel monitorar no somente o animal, mas tambm

    se h comida no recipiente de rao e se h comida no compartimento de

    alimentao, substituindo eventuais sensores que teriam que ser utilizados para essas

    finalidades.O modelo de cmera descrito neste trabalho no dispe de movimento

  • 59

    mecnico e rotativo controlado via internet, mas existem determinados modelos que

    possuem essa funcionalidade, essencial para monitoramento dessa aplicao.

    Ademais, tambm necessria uma ateno especial ao local onde a cmera est

    instalada, pois ela no possui uma resoluo adequada longa distncia,

    impossibilitando uma viso ntida do sistema como um todo nessa ocasio. Se no for

    possvel instal-la em local adequado para suprir essa necessidade, ser necessrio

    fazer um tratamento de imagem antes da mesma chegar a seu destino final, que o

    celular. Mais uma vez, esbarra-se nas limitaes de capacidade do Arduino Uno para

    realizar esta tarefa, impossibilitando o usurio de realiz-la atravs deste dispositivo.

    Tambm foi considerada a possibilidade de fazer um monitoramento do

    recipiente de comida por meio de um sensor de fora resistivo, que identificaria, a

    partir da massa total do recipiente, se seria necessrio, ou no, a alimentao do

    animal. Particularmente, seria um artifcio proveitoso, pois forneceria a possibilidade

    de notificar o usurio na falta de alimento. Contudo, por necessitar de testes com um

    prottipo construdo, este sistema no foi implementado. Ainda assim, seria

    necessria sua atuao em conjunto com a cmera, para comprovar que a notificao

    no estava sendo mascarada por um peso extra no recipiente, que pode ser inclusive

    o prprio corpo do animal.

    Por fim, importante destacar o papel do Arduino no sistema como um

    componente totalmente passivo em relao ao aplicativo que o comanda. Embora o

    mesmo identifique se as portas do Arduino esto em nvel alto ou baixo, informando ao

    usurio qual o estado atual das aplicaes, a requisio sempre feita a partir do

    celular e nunca da central de automao. Para o Arduino fazer uma requisio ao

    aparelho, necessrio um servidor intermedirio, como no caso deste trabalho, o

    Twitter. Isso se deve ao fato da inexistncia de um servidor presente no celular, que

    possibilitaria a comunicao direta entre ambos. J existem alguns servidores para

    Android desenvolvidos, e futuramente podem ser tornar alternativas interessantes na

    questo da automao residencial.

  • 60

  • 61

    5.Concluses

    A partir dos fatos relatados e resultados expostos, conclui-se que foi possvel

    realizar o objetivo deste projeto atravs dos mtodos propostos. No contexto atual do

    controle de residncias atravs de sistemas embarcados, utilizando

    microprocessadores como central de automao, o Arduino Uno mostrou ser uma

    ferramenta de fcil implementao e com uma boa relao custo-benefcio para o

    controle de alguns processos residenciais, embora limitado em alguns aspectos, como

    capacidade de processamento de dados e portas de sada disponveis. Alm disso, a

    utilizao do App Inventor para criao de aplicativos mostrou ser uma alternativa

    vivel para aproximar os usurios do sistema operacional Android, que no tem

    experincia em programao Java, com a criao de aplicativos, rea cada vez mais

    explorada com a popularizao de smartphones e tablets.

    Ademais, a rea ligada a automao residencial est em crescente evoluo, e

    a tendncia a utilizao de sistemas mais robustos e com maior capacidade de

    processamento de dados, integrando o maior nmero possvel de aplicaes e

    fazendo com que o binmio custo-benefcio tenha cada vez mais importncia.

    Em linhas gerais pode-se concluir que os benefcios gerados pelo aplicativo

    com baixo custo de investimentos apontam um cenrio de possibilidades que pode ser

    extendido a outros segmentos, usando sistemas similares, como por exemplo o setor

    de sade: monitoramento de pacientes, de crianas e idosos, adequando-os s

    necessidades de cada usurio.

    5.1 Trabalhos Futuros

    Para trabalhos futuros, sugere-se a utilizao de uma ferramenta com mais

    recursos que o Arduino Uno, como por exemplo o Arduino Mega, que possui mais

    capacidade para processamento de dados e portas de sada, a fim de que se possa

    controlar mais processos residenciais. Tambm para aplicaes consideradas de

    grande porte, recomenda-se o uso do Wi-fi shield, onde no necessrio a conexo

    diretamente com o cabo de rede, j que a mesma feita via Wireless. A conexo via

    cabo de rede pode inviabilizar aplicaes onde o Arduino necessita ficar em uma

    distncia muito grande do roteador.

  • 62

    Contudo, tambm merecem ser analisadas outras plataformas de hardware e

    software atuando em sistemas embarcados, como por exemplo a RaspBerryPi,

    principalmente atuando em conjunto com o Arduino na central de automao.

    Entretanto, essa plataforma, embora seja uma ferramenta muito mais poderosa, exige

    do desenvolvedor um pouco mais de experincia em programao e um conhecimento

    de Linux.

    Pode-se tambm construir o sistema de alimentao canina, verificando a

    questo do sensoriamento por sensores de fora resistivos e implementando

    notificaes ao usurio na ausncia de comida no recipiente.

  • 63

    Referncias

    APPINVENTOR. Site oficial do App Inventor. Disponvel em: Acesso em 20.Out. 2013

    ARDUINOECIA. Arduino Uno e Ethernet Shield. Disponvel em: Acesso em 10 Ago. 2013

    ARDUINOTWEET. Post messages from Arduino and Ethernet Shield. Disponvel em: Acesso em: 20.Out.2013 ARDUINO-1. Arduino Uno. Disponvel em: Acesso em 20 Out. 2013 ARDUINO-2. Arduino Ethernet Shiled. Disponvel em: Acesso em 20 Out. 2013 BOEIRA, Marcelo. 2013. O que Arduino? Disponvel em: < http://blog.marceloboeira.com/arduino/o-que-e/> Acesso em: 22 Out .2013

    BORTOLUZZI, Matias. Blog SRA Engenharia, Histrico da automao residencial,2013 Disponvel em:. Acesso em: 10 Set. 2013

    BRITES, F.G & SANTOS, V.P.A,. Motores de Passo. Universidade Federal Fluminense.Curso de engenharia de Telecomunicaes. Programa de Educao Tutorial.Niteri,RJ,2008.

    CANYOUSEEME. Open Port Check Tool. Disponvel em: Acesso em 20.Out.2013 CHECKIP. Indentify IP Adress. Disponvel em: . Acesso em: 20.Out. 2013. CRUZ, Renan Pontes. Desenvolvimento de um Sistema de Superviso Via Web Aplicado Automao Residencial. Universidade Federal do Rio Grande do Norte. Trabalho de Concluso de Curso.Natal, RN, 2009.

    DAILYMAIL, 2012. Meet the dog fed his 'Tweet Treats' by contraption controlled remotely by Twitter. Disponvel em: Acesso em: 03.Ago.2013

    DATASHEET W5100. Disponvel em: (). Acesso em 20.Out.2013

    DIPOL. Funcionamento do DDNS. Disponvel em: Acesso em 15. Jun. 2013

  • 64

    EUZBIO, M. V.M. & MELLO, E. R. Droidlar- Automao Residencial atravs do celular Android. Sistemas de Telecomunicaes, Instituto Federal de Santa Catarina.So Jos, SC, 2011.

    INFOWESTER,2013. O que DNS?. Disponvel em: < http://www.infowester.com/dns.php>. Acesso em: 15 Out. 2013

    JONES, Douglas W. Control of Stepping Motors A Tutorial.The University Of Iowa .Department Of Computer Science, 1998. Disponvel em :Acesso em 05.Out.2013

    JOSEMATM. Actualiza tu DDNS desde Arduino. Disponvel em: Acesso em: 09 Set.2013 KEMPER. Entendendo motores de robs. Disponvel em: Acesso em: 12.Out.2013 LADYADA. Sensor Pir. Disponvel em: Acesso em 20. Out. 2013 MCROBERTS, Michael. Arduino Bsico. Edio original em Ingls publicada pela Apress Inc., Copyright 2010 pela Apress, Inc.. Edio em Portugus para o Brasil copyright 2011 pela Novatec Editora.

    NO-IP. Alocao de servidores DDNS. Disponvel em: Acesso em 13 Abr. 2013 REGISTRO. Hierarquia de Domnios. Disponvel em: Acesso em 07 Set. 2013 SILVA, B.C.R & CNDIDO, L.A.A. Sistema de Controle Residencial baseado na plataforma Arduino. Trabalho de Concluso de Curso (Bacharelado em Cincia da Computao) Instituto Unificado de Ensino Superior Objetivo, Goinia, 2011.Disponvel em: Acesso em: 15 Out. 2013

    STARDOT. Cmera IP. Disponvel em: Acesso em: 13.Ago.2013

    TECHMUNDO, 2013. O que TCP/IP?. Disponvel em: Acesso em: 13.Ago. 2013

    WOLBER et al. App Inventor- Create Your Own Android App. Published by OReilly Media, Inc., 1005 Gravenstein Highway North, Sebastopol, CA 95472. First Edition, 2011.

  • 65

  • 66

    Apndice A -

    Cdigo Arduino

    #include

    #include

    #include

    #include

    byte mac[] = { 0xDE, 0xAD,

    0xBE, 0xEF, 0xFE, 0xED };

    IPAddress ip(192,168,0,199);

    //ip que o Arduino ter na

    Intranet

    IPAddress

    gateway(192,168,0,1); //ip do

    roteador

    EthernetServer server(8888);

    //porta de acesso ao servidor

    EthernetClient client;

    // Token para Tweetar (

    http://arduino-

    tweet.appspot.com/)

    Twitter twitter("1673941976-

    xQI9XicACAYPxMMX3g9jJdV8X

    5dWQSzxmfXVT");

    char msg[] = "@LucasBeghini o

    alarme foi disparado"; //

    mensagem quando se dispara o

    alarme

    char msg2[]="@LucasBeghini,

    atualize o ip no aplicativo!";

    char servidorIP[] =

    "checkip.dyndns.org"; // site de

    detecco do ip publico

    IPAddress ipAtual;

    IPAddress ipUltimo;

    IPAddress ipnulo (0,0,0,0);

    int buffalarme=0; // controla se

    alarme est ligado ou desligado

    int buffdog=0; //controla se o

    compartimento est aberto ou

    fechado

    int i=