Tcc Luiz Grilo

download Tcc Luiz Grilo

of 52

Transcript of Tcc Luiz Grilo

  • 1

    UNIVERSIDADE FEDERAL DE CAMPINA GRANDE

    CENTRO DE ENGENHARIA ELTRICA E INFORMTICA

    DEPARTAMENTO DE ENGENHARIA ELTRICA

    CURSO DE GRADUAO EM ENGENHARIA ELTRICA

    LUIZ CLAVER PEREIRA GRILO

    DESENVOLVIMENTO DE UM SISTEMA DE AUTOMAO RESIDENCIAL

    BASEADO EM MICROCONTROLADOR

    Campina Grande, Outubro de 2013

  • 2

    LUIZ CLAVER PEREIRA GRILO

    DESENVOLVIMENTO DE UM SISTEMA DE AUTOMAO RESIDENCIAL

    BASEADO EM MICROCONTROLADOR

    Trabalho de Concluso de Curso submetido

    Unidade Acadmica de Engenharia

    Eltrica da Universidade Federal de

    Campina Grande como parte dos requisitos

    necessrios para a obteno do grau de

    Bacharel em Cincias no Domnio da

    Engenharia Eltrica.

    rea de Concentrao: Controle e

    Automao

    Orientador: Prof. Dr. Pricles Rezende

    Barros

    Campina Grande, Outubro de 2013

  • 3

    LUIZ CLAVER PEREIRA GRILO

    DESENVOLVIMENTO DE UM SISTEMA DE AUTOMAO RESIDENCIAL

    BASEADO EM MICROCONTROLADOR

    Trabalho de Concluso de Curso submetido

    Unidade Acadmica de Engenharia

    Eltrica da Universidade Federal de

    Campina Grande como parte dos requisitos

    necessrios para a obteno do grau de

    Bacharel em Cincias no Domnio da

    Engenharia Eltrica.

    Aprovado em / /

    _____________________________________________________

    Professor

    Universidade Federal de Campina Grande

    _____________________________________________________

    Professor Dr. Pricles Rezende Barros

    Universidade Federal de Campina Grande

  • 4

    AGRADECIMENTOS

    Agradeo aos meus pais: Marcelo Bezerra Grilo e Tnia Maria Augusto Pereira,

    por terem me ensinado a viver! Com eles aprendi a gostar de estudar, viajar, apreciar e

    fazer msica, respeitar as pessoas, no fazer coisas erradas e a fazer boas festas!

    Aos meus irmo: Simone Augusto Pereira e Marcelo Grilo Jr, pela pacincia. Em

    particular ao mais novo, por ter me aguentado nos diversos momentos em que estivemos

    juntos, na msica no esporte e nos estudos.

    Aos meus amigos, os quais no vou citar nomes, caso contrrio posso me

    complicar depois. Com vocs aprendi o que so todos aqueles adjetivos bonitos que

    usamos nos poemas e nas letras de msicas. Como sei que nem todos vo ler esse

    relatrio, ento fao um especial agradecimento aos amigos que conheci na poca da

    universidade. Alguns foram apenas colegas de disciplina ou de estudos. Mas fico feliz

    por ter conhecido pessoas que tenho a certeza e vontade de manter contato pelo resto da

    vida, todos vocs so parcela importante nessa conquista.

    Finalmente agradeo a todos os que fizeram e fazem o curso de Engenharia

    Eltrica na UFCG. Aos professores, em especial o Prof. Pricles Rezende Barropor ter

    incentivado e apoiado a ideia de fazer um trabalho envolvendo automao residencial e

    arduino, ao secretariado em especial a Adail e Tchay, que tornam a nossa vida mais fcil

    e doce no tratar dos problemas.

    Foi bom, foi divertido e que venha muito mais!

    Muito obrigado a todos e at a prxima!

  • 5

    RESUMO

    A automao residencial vem alavancando ndices de 35% de crescimento no mercado

    nacional. Isso se deve ao barateamento dos produtos e popularizao de novas

    tecnologias que facilitam a implementao do projeto. A automao residencial pode ser

    subdivida em trs segmentos: automao da segurana, controle multimdia e controle e

    automao de acionamentos de iluminao e outros circuitos. Um projeto completo

    contempla as trs variaes, mas uma vantagem desse tipo de sistema a sua

    modularidade, possibilitando ao cliente a instalao sucessiva do sistema. Esse trabalho

    tem como objetivo desenvolver um sistema de automao residencial, contemplando

    automao da segurana, acionando alarmes atravs da leitura de sensores; e o controle

    de acionamentos de circuitos de iluminao e irrigao, tudo isso utilizando o

    microcontrolador Arduino como unidade de processamento central. Os principais

    objetivos so desenvolver um sistema que seja menos invasivo no processo de instalao

    na residncia, que possa ser controlado localmente atravs do smartphone com sistema

    operacional Android, utilizando comunicao bluetooth, e que tambm possa ser

    controlado de forma remota atravs da internet e, finalmente, que seja um sistema de

    baixo custo. Um prottipo da instalao eltrica monofsica de uma casa foi desenvolvido

    para validar a arquitetura do sistema de automao proposto e servir como fonte de

    estudos para desenvolvimento e aperfeioamento em futuros projetos de automao

    residencial.

    Palavras chave: Automao residencial; controle; bluetooth; android; instalaes

    eltricas.

  • 6

    LISTA DE FIGURAS

    Figura 1 - Diagrama da arquitetura proposta para o sistema de automao residencial. ........... 10

    Figura 2 - Instalao eltrica necessria para acionamento das cargas atravs dos interruptores

    ou de comandos bluetooth via celular. ........................................................................................ 11

    Figura 3 - Placa de desenvolvimento Arduino, com microcontrolador ATMEL de 8 bits. ....... 13

    Figura 4 Diagrama de blocos do microcontrolador Atmega328, unidade de processamento do

    Arduino Uno R3. ......................................................................................................................... 14

    Figura 5 Tela do software utilizado para escrever os sketchs e programar o Arduino. .......... 18

    Figura 6 Diversos shields para ser utilizado como mdulo de expanso das funcionalidades

    de hardware do Arduino. ............................................................................................................. 19

    Figura 7 Shield Ethernet, acoplado ao Arduino agrega a funo de acesso internet via

    TCP/IP. ........................................................................................................................................ 20

    Figura 8 Troca de informaes entre mestre e escravo atravs de protocolo de comunicao

    SPI. .............................................................................................................................................. 21

    Figura 9 Pinos utilizados pela comunicao SPI do shield de expanso ethernet................... 22

    Figura 10 Topologia de acesso ao servidor do Arduino de forma remota via internet. .......... 23

    Figura 11 Pacote de dados em uma comunicao serial assncrona. ...................................... 25

    Figura 12 Hardware bluetooth utilizado para comunicao entre Arduino e smatphone. ...... 26

    Figura 13 Conexo entre o mdulo bluetooth e o Arduino. .................................................... 27

    Figura 14 Mdulo de construo da interface grfica do aplicativo no AppInventor. ............ 28

    Figura 15 Mdulo de programao do AppInventor. Programao intuitiva atravs da

    utilizao de blocos para construo da lgica. .......................................................................... 28

    Figura 16 Sensor de presena infravermelho. ......................................................................... 29

    Figura 17 sensor de umidade do solo. ..................................................................................... 30

    Figura 18 Sensor detector de chama e sensor detector de gs. ................................................ 31

    Figura 19 Interruptor paralelo ou three-way, necessrio para fazer a instalao eltrica com

    acionamento em dois pontos distintos de forma simultnea. ...................................................... 31

    Figura 20 Circuito de Acionamento de um rel para controle de carga. ................................. 32

    Figura 21 Placa com quatro rels acionado por sinal TTL 5 V, com sadas 220 Vca 10A. . 33

    Figura 22 Circuito para promover dimerizao com o Arduino e um triac. ........................... 34

    Figura 23 fotografia da placa de controle de potncia de cargas. ........................................... 34

    Figura 24 Vistas do sistema de prottipo construdo para testar o sistema de automao

    residencial proposto. ................................................................................................................... 36

    Figura 25 Construo do prottipo e verso final j com as conexes eltricas efetuadas

    conjuntamente com o sistema de automao residencial. ........................................................... 37

    Figura 26 Diagrama multifilar da instalao eltrica do prottipo, onde RLn so os rels do

    mdulo de acionamento de cargas e U1 o circuito de controle de potncia entregue a carga,

    apresentado anteriormente........................................................................................................... 38

    Figura 27 Tela inicial do aplicativo......................................................................................... 40

    Figura 28 Tela de seleo da conexo com hardware bluetooth ou retorno para tela anterior.

    ..................................................................................................................................................... 40

    Figura 29 Tela de controle dos dispositivos de instalao eltrica do prottipo, trs lmpadas

    (ao liga / desliga) e uma carga luminosa, (ao aumenta ou diminui intensidade luminosa). . 41

    Figura 30 Captura da tela de controle do sistema via internet. ............................................... 41

    Figura 31 Algoritmo para processamento dos dados recebidos na comunicao bluetooth e

    acionamento das sadas digitais. .................................................................................................. 43

    Figura 32 - Cdigo para o sketch do Arduino. ........................................................................... 44

  • 7

    SUMRIO

    1. INTRODUO ................................................................................................................... 8

    2. ARQUITETURA DO SISTEMA ..................................................................................... 10

    3. DESCRIO DETALHADA DO SISTEMA ................................................................ 12

    3.1 Unidade central de processamento .......................................................................... 12

    3.1.1 O Microcontrolador ATMega328 .................................................................... 13

    3.2 Descrio do Software do Arduino ........................................................................... 17

    3.3 Mdulo de expanso e conectividade com a internet ............................................. 18

    3.4 Conexo com a Internet ............................................................................................ 22

    3.5 Controle sem fio via comunicao bluetooth ........................................................... 23

    3.6 Smartphone Android e AppInventor ...................................................................... 27

    3.7 Mdulos de entrada e sada ...................................................................................... 29

    4 DESENVOLVIMENTO DO PROTTIPO EXPERIMENTAL .................................. 35

    4.1 Construo do prottipo experimental.................................................................... 35

    5 TESTES E RESULTADOS .............................................................................................. 39

    5.1 Aplicativo Domotic Blue Server ................................................................................ 39

    5.2 Mdulos de Controle e Lgica no Arduino ............................................................. 41

    5.2.1 Controle dos Rels ............................................................................................. 42

    5.2.2 Automatismos atravs dos sensores ................................................................. 42

    5.2.3 Pgina Web do Servidor Implementado ......................................................... 44

    6 CONCLUSO E TRABALHOS FUTUROS.................................................................. 46

    7 BIBLIOGRAFIA ............................................................................................................... 47

    8 ANEXOS ............................................................................................................................ 48

  • 8

    1. INTRODUO

    Ao terminar o expediente no fim do dia, um indivduo, antes de sair do trabalho,

    acessa a internet do seu smartphone e verifica atravs de cmeras a situao de sua casa.

    Aciona iluminao externa e interna e pode escolher alguns cenrios de recepo, que

    incluem som ambiente ou temperatura padronizada. Ao chegar casa, o porto se abre

    automaticamente ao reconhecer o veculo e registra a sua entrada. J dentro da casa o

    indivduo pode acionar o sistema multimdia e assistir a programao gravada da TV ou

    verificar as tarefas realizadas automaticamente ao longo do dia, como por exemplo, a

    irrigao do jardim, devido deteco de um baixo nvel de umidade no solo.

    O cenrio descrito anteriormente no fictcio e hoje em dia possibilitado

    atravs de sistemas de automao residencial. Segundo dados da Associao Brasileira

    de Automao Residencial (Aureside), o crescimento do mercado de automao

    residencial no Brasil de 35% ao ano. O crescimento se deve a reduo nos custos das

    tecnologias e ao aumento do nmero de empresas e servios especializados na rea.

    Os servios de automao residencial podem ser divididos em trs segmentos:

    automao da segurana, controle multimdia e automao e controle de acionamentos de

    iluminao e outros circuitos. Um projeto completo contempla as trs variaes, mas uma

    vantagem desse tipo de sistema a sua modularidade, possibilitando ao cliente a

    instalao sucessiva do sistema. Por exemplo, possvel fazer um projeto de automao

    para controle de iluminao e acionamento de eletrodomsticos; em seguida, pode-se

    instalar um mdulo de segurana contendo cmeras e controles de acesso; por fim,

    possvel instalar um sistema multimdia para controle da televiso e som ambiente.

    O desenvolvimento tecnolgico outro fator que incentiva o uso de automao

    residencial. O avano e barateamento dos microprocessadores e, principalmente, o

    desenvolvimento de tecnologias de comunicaes, como a internet e os telefones mveis,

    possibilitam portabilidade e um controle descentralizado dos sistemas. Alm disso, redes

    de comunicao sem fio possibilitam projetos menos invasivos a estrutura de construo

    da casa.

    Esse projeto apresenta como proposta a implementao de um sistema de

    automao residencial de baixo custo, utilizando um microcontrolador Arduino como

    fonte central de processamento. O controle do sistema feito atravs de um smartphone

    com sistema operacional Android, utilizando comunicao bluetooth e tambm atravs

    da internet, utilizando o protocolo TCP/IP. O controle convencional, atravs de

  • 9

    interruptores, para acionar circuitos de iluminao, por exemplo, continua coexistindo

    com os novos controles de automao, podendo ser necessria apenas a substituio de

    interruptores simples por interruptores paralelos, nos casos onde esses interruptores no

    estavam previstos.

    O projeto visa contemplar a automao da segurana, verificando vrios

    parmetros de interesse atravs de sensores: deteco de chamas, vazamento de gs, e

    sensor de presena; e o controle e automao de acionamentos, possibilitando ao usurio

    o controle de iluminao, irrigao e acionamentos de cargas diversas, como por exemplo,

    intensidade luminosa de determinado ambiente.

    Para validao e testes do sistema, foi desenvolvido um prottipo de uma

    instalao eltrica monofsica de uma residncia. O prottipo contm trs lmpadas,

    simulando o circuito de iluminao; uma lmpada dimerizavel, simulando o controle de

    intensidade luminosa; uma vlvula eltrica, para simular um sistema de irrigao. Quatro

    interruptores simulam os acionamentos convencionais dos circuitos de iluminao e

    irrigao, uma tomada ainda disponibilizada, para fornecer a alimentao necessria ao

    funcionamento do sistema. Circuitos de acionamento a rel e a chaveamento com TRIAC

    foram utilizados para auxiliar no processo de acionamento automtico das cargas.

    Sensores, LEDS e buzinas so utilizados para interagir com o meio e fornecer sinalizaes

    para o usurio.

  • 10

    2. ARQUITETURA DO SISTEMA

    O sistema de automao residencial proposto visa automatizar o controle de tarefas

    cotidianas e possibilitar ao usurio que controle acionamento de cargas ou acompanhe o

    status do sistema atravs do smartphone ou da internet. Tambm importante que o

    sistema seja pouco invasivo na instalao em uma residncia e que possua componentes

    de baixo custo. A Figura 1 um diagrama geral da arquitetura proposta para

    desenvolvimento do sistema.

    Figura 1 - Diagrama da arquitetura proposta para o sistema de automao residencial.

    O sistema possui uma unidade central de processamento, onde os sinais de entrada

    de sensores e interruptores ou atravs de protocolo de comunicao so processados para

    gerar as respectivas sadas desejadas. Os sinais de sada so enviados para mdulos de

  • 11

    acionamento de carga ou interfaces com o usurio, como LEDs e sonorizadores. A

    interface entre o smartphone e o sistema se d atravs de um mdulo de comunicao

    bluetooth. O sistema ainda possui hardware dedicado para se conectar internet, de forma

    que seja possvel receber e enviar comandos de um usurio remotamente.

    O sistema se conecta aos interruptores da rede eltrica residencial existente,

    devendo a nica adaptao a ser feita, caso necessrio, seja a substituio dos

    interruptores simples por interruptores paralelos. A nica instalao eltrica necessria

    para funcionamento do sistema o fio de retorno dos interruptores, que deve ser

    conectado em paralelo com a placa de rels utilizada. A Figura 2 apresenta um detalhe da

    conexo eltrica entre os dois componentes, de forma que seja possvel acionar as cargas

    atravs dos interruptores ou do smartphone de forma independente.

    Figura 2 - Instalao eltrica necessria para acionamento das cargas atravs dos interruptores ou de

    comandos bluetooth via celular.

  • 12

    3. DESCRIO DETALHADA DO SISTEMA

    Nesse captulo sero apresentados a descrio de cada parte integrante do sistema

    de automao residencial desenvolvido e previamente apresentado na arquitetura geral.

    Tambm sero apresentados conceitos tericos referentes a protocolos de comunicao e

    dispositivos utilizados no desenvolvimento do projeto.

    3.1 Unidade central de processamento

    No sistema de automao residencial desenvolvido, a unidade central de

    processamento responsvel controle dos sinais de entrada e sada digitais e analgicos,

    pelo processamento dos protocolos serial e SPI, pela execuo das funes desenvolvidas

    para controle do relgio e das lgicas de acionamento de rels e sensores, e tambm pela

    gerao de um servidor que processa as requisies HTTP recebidas via internet. O

    hardware escolhido para ser unidade central de processamento foi o sistema

    microcontrolador Arduino.

    A plataforma Arduino foi desenvolvida no Instituto de Design de Interao Ivrea,

    na Itlia, em meados de 2005, pelo professor Massimo Banzi. O objetivo de seu

    desenvolvimento era o de construir uma plataforma de hardware e software capaz de

    controlar e mensurar o mundo fsico atravs do processamento de entradas e sadas, que

    abstrasse ao mximo a parte eletrnica, permitindo que o foco fosse mantido no

    desenvolvimento da ideia base do projeto. Denominou-se tal plataforma de Arduino

    (Figura 3), nome de origem germnica Hardwin, hard (forte) e win (amigo), e que em

    italiano tornou-se Arduino.

    A plataforma possui a documentao aberta, disponibilizando todos os

    esquemticos de hardware e bibliotecas para as mais diversas aplicaes e uma IDE de

    programao em C/C++. Utiliza um microcontrolador de oito bits como unidade de

    processamento. Apresenta um design especfico de forma que outros mdulos (Shields)

    possam ser facilmente adicionados para agregar funcionalidades. As suas principais

    caractersticas so:

  • 13

    Figura 3 - Placa de desenvolvimento Arduino, com microcontrolador ATMEL de 8 bits.

    Microcontrolador ATmega328;

    14 E/S digitais (das quais 6 so PWM);

    6 entradas analgicas 10 bits de resoluo;

    Comunicao Serial, SPI e I2C on board;

    16 MHz de clock;

    Reset por software;

    3.1.1 O Microcontrolador ATMega328

    O microcontrolador ATmega328 a unidade central de processamento da placa

    de desenvolvimento Arduino. O seu funcionamento pode ser resumido atravs do

    diagrama funcional (Figura 4), que apresenta as estruturas de hardware presentes no

    dispositivo.

  • 14

    Figura 4 Diagrama de blocos do microcontrolador Atmega328, unidade de processamento do Arduino Uno R3.

  • 15

    O ncleo AVR tem trinta e dois registradores de uso geral, estando todos

    conectados Unidade Lgica Aritmtica. O AVR permite que dois registradores

    independentes sejam acessados em uma nica instruo, executada em um nico ciclo de

    clock. Essa caracterstica operacional resulta em uma arquitetura mais eficiente, alm de

    permitir obter taxas de transferncia de dados 10 vezes mais rpidas do que os

    microcontroladores CISC1 convencionais.

    Alm dos registradores descritos posteriormente, h ainda trs temporizadores /

    contadores com modos de comparao, interrupes interna e externa, serial programvel

    USART, uma porta SPI, um Watchdog Timer2 com oscilador interno, e cinco modos

    selecionveis de economia de energia.

    No modo de wait-state da CPU, os mdulos: SRAM,Timer/Counters, USART,

    porta SPI e a interrupo continuam funcionando. No modo de economia de energia, o

    temporizador assncrono continua funcionando, permitindo ao usurio manter um

    temporizador de base enquanto o resto do dispositivo encontra-se hibernando.

    O modo ADC de reduo de rudo interrompe a CPU e todos os mdulos E/S,

    exceto, o temporizador assncrono ADC, para minimizar o rudo de comutao durante

    as converses ADC.

    No modo de wait-state, o oscilador est em funcionamento enquanto o resto do

    dispositivo hiberna, o que permite um start-up rpido e com baixo consumo de energia.

    A AVR ATmega328 suportada por um pacote completo de programas e

    ferramentas de desenvolvimento de sistemas, incluindo compiladores C, Macro

    Assemblers e depurador/simulador de programa. A plataforma Arduino consiste em um

    arcabouo de hardware e software auxiliares ao AVR para facilitar o desenvolvimento

    de solues que utilizem este microchip da fabricante ATMEL.

    A grande diferena entre os vrios modelos de Arduino disponveis no mercado

    reside na memria do microcontrolador, sendo essa uma caracterstica determinante em

    seu desempenho. No microcontrolador ATMega328 h trs tipos de memria: Flash,

    SRAM, EEPROM. A memria Flash utilizada para o armazenamento do programa que

    1 CISC(Complex Instruction Set Computer) uma linha de arquitetura de processadores capaz de executar

    centenas de instrues complexas diferentes. Sendo assim, extremamente verstil. Os processadores

    baseados em um conjunto de instrues complexas contm microprogramao, ou seja, um conjunto de

    cdigos de instrues, que so gravadas no processador, permitindo-lhe receber as instrues dos

    programas e execut-las, utilizando as instrues contidas na sua microprogramao.

    2 Wacthdog Timer um dispositivo eletrnico temporizador que dispara um reset ao sistema, se o programa

    principal devido a alguma condio de erro deixar de fazer reset no Watchdog timer.

  • 16

    carregado no microcontrolador para ser executado, bem como para o armazenamento

    do bootloader. O bootloader responsvel pelo gerenciamento da inicializao do

    microchip, e desempenha algumas tarefas programadas, como determinar quando

    reprogramar ou passar para a aplicao principal.

    A memria SRAM (Static Random Access Memory) a memria utilizada para

    armazenamento das variveis de processamento. Quando o Arduino desenergizado, as

    informaes armazenadas nesta memria so perdidas. Diferentemente de EEPROM

    (Electrically Erasable Programmable Read-Only Memory), que responsvel pelo

    armazenamento de constantes ou dados de configurao, e apresenta longos ciclos de

    gravao e rpida leitura de dados.

    O modelo Arduino Uno Verso 3 tem 32 kB de memria Flash, dos quais 0,5 kB

    so destinados ao bootloader, 2 kB de SRAM e uma EEPROM de 1 kB.

    O ATMega328, assim como outros microcontroladores, oferece ainda um

    conversor A/D. Na converso de um sinal analgico em digital, fazem-se amostragens, e

    representa-se a leitura realizada atravs de um valor equivalente binrio, de acordo com

    a resoluo do conversor A/D. A preciso do conversor determinada pelo nmero de

    bits que o mesmo gera para representar as grandezas analgicas. O conversor A/D do

    ATmega de 10 bits, representando 210 nveis de tenso distintos. Assim, a resoluo do

    conversor pode ser expressa por:

    =2

    em que a tenso de referncia [V]; e n a nmero de bits.

    Desse modo, sendo a opo default da tenso de referncia = 5 V, para o

    Arduino, tm-se uma resoluo de:

    =5

    210= 4,88

    Diz-se, portanto, que o Arduino pode detectar variaes de 5 mV. H, porm, a

    possibilidade de alterar-se o , atravs do pino de entrada . Desse modo, com a

    possibilidade de diminuio da resoluo de referncia, tm-se tambm uma diminuio

  • 17

    dos valores de tenso detectveis e uma consequente diminuio do nvel mximo de

    medio de tenso permitido, o que pode no ser desejvel em determinadas aplicaes.

    O ATmega328 um microcontrolador com elevada capacidade de processamento

    e um conjunto de perifricos diversificado, conferindo, dessa forma, uma soluo

    altamente eficaz para muitas aplicaes de controle embarcado. Quando utilizado na

    placa de desenvolvimento Arduino, se torna uma soluo perfeita para ser a unidade

    central de processamento do nosso sistema de automao, visto que porttil, apresenta

    conjunto de entradas e sadas necessrias e possui documentao aberta disponvel para

    ser acessada e utilizada sem custos adicionais.

    3.2 Descrio do Software do Arduino

    A plataforma de software do Arduino, modelada na linguagem de programao

    Processing3, denominada IDE (Integrated Devolopment Environment), trata-se de um

    programa executado em um computador, que permite a codificao de programas em

    linguagem especfica, sketches, a serem carregados na plataforma de hardware.

    Uma vez requerido o upload do sketch na placa Arduino, o cdigo escrito em

    linguagem especfica traduzido na Linguagem C. Na sequncia, o mesmo compilado

    pelo AVR- GCC, responsvel pela traduo final para a linguagem entendida e conhecida

    pelo microcontrolador, simplificando, dessa forma, a programao de

    microcontroladores.

    Desse modo, o ciclo de programao de um Arduino pode ser resumido como:

    1. Escreve-se o Sketch;

    2. Compila-se o Sketch;

    3. Liga-se a placa a uma porta USB do computador;

    4. Envia-se o Sketch para a placa, atravs da USB;

    5. A placa executa o programa;

    O IDE pode ser executado em qualquer sistema operacional. dividido em trs

    partes: o Toolbar no topo, Sketch Windows no centro e a janela de mensagens na base

    (Figura 05).

    3 Processing uma linguagem de programao de cdigo aberto e ambiente de desenvolvimento integrado

    desenvolvido em 2001 pelo MIT (Massachusetts Institut of Tecnology), construdo para comunidades de

    projetos visuais com o objetivo de ensinar noes bsicas de programao de computador em um contexto

    visual.

  • 18

    Figura 5 Tela do software utilizado para escrever os sketchs e programar o Arduino.

    3.3 Mdulo de expanso e conectividade com a internet

    Como explicado, uma das vantagens do Arduino a possibilidade de expanso

    das suas funcionalidades atravs de mdulos adicionais, tambm conhecidos como

    Shields. Os Shields so placas de circuitos impresso que so encaixadas sobre a placa do

    Arduino e agregam recursos de hardware ao microcontrolador, portanto, apresenta como

    principal caracterstica ter o mesmo design da placa do Arduino UNO. Exemplos de

    Shields desenvolvidos para o Arduino so (Figura 6):

    Arduino GSM Shield agrega conexo atravs de rede GPRS.

    Arduino Bluetooth Shield Agrega conectividade bluetooth ao microcontrolador.

    Arduino WiFi Shield agrega conectividade internet sem fio.

    Arduino Motor Shield circuito para controle de cargas indutivas, como motores.

  • 19

    Arduino Sensor Shield placa desenvolvida para ler sinais de diversos sensores

    analgicos.

    Arduino Ethernet Shield Conecta o microcontrolador a internet atravs de rede

    ethernet.

    Figura 6 Diversos shields para ser utilizado como mdulo de expanso das funcionalidades de hardware do Arduino.

    Para o projeto do sistema de automao residencial, foi escolhido o Shield

    Ethernet com o intuito de promover a conexo do sistema com a internet, utilizando

    protocolo de comunicao TCP/IP. A escolha do Shield Ethernet se justifica pois a

    maioria dos projetos de automao residencial prov acesso internet, de forma que seja

    possvel o usurio verificar o status do sistema ou enviar comandos de forma remota. Ele

    possui menor custo que os demais, apresenta conexo cabeada ethernet com conector

    padro RJ45, o que implica em maior robustez ao sistema, e disponibilidade em estoque

    para aquisio imediata. As principais caractersticas desse shield so listadas a seguir:

    Controlador de ethernet: Wiznet W5100.

    Velocidade da conexo: 10/100 Mb.

    Conector padro RJ45.

    Conexo com o Arduino via protocolo SPI.

    Conector micro-SD, para criar um servidor de arquivos atravs de carto de

    memria.

  • 20

    Figura 7 Shield Ethernet, acoplado ao Arduino agrega a funo de acesso internet via TCP/IP.

    Como explicado, o shield ethernet se comunica com a placa do Arduino atravs

    de protocolo de comunicao SPI (Serial Peripheral Interface). O SPI um protocolo de

    dados serial sncrono, utilizado por microcontroladores para comunicao rpida com um

    ou mais dispositivos perifricos em curtas distncias. Tambm pode ser usado para

    comunicao entre dois microcontroladores.

    Em uma comunicao SPI, sempre h um mestre e um ou mais escravos, que se

    comunicam entre si atravs de uma conexo full-duplex. Os seguintes fios constituem a

    conexo SPI:

    MOSI (Master Out Slave In): Canal responsvel pelo envio de dados do mestre

    para o escravo;

    MISO (Master In Slave Out): Canal responsvel pelo envio de dados do escravo

    para o mestre;

    SCK (Serial Clock): Canal para envio do sinal de clock;

    SS (Slave Select): Canal utilizado pelo mestre para habilitar ou desabilitar a

    conexo com o escravo. Se na conexo existir mais de um escravo, todos

    compartilham os canais citados anteriormente, com exceo deste. Cada escravo

    possui seu SS. E quando este pino estiver em nvel baixo, h conexo com o

    mestre e quando estiver em nvel alto, o escravo ignora as informaes do

    barramento.

    Na comunicao SPI so utilizados dois registradores de deslocamento para a

    troca de informaes, um pertencente ao mestre e o outro ao escravo. Os bits so

    deslocados e enviados um por vez, entre os registradores. medida que um bit

  • 21

    transmitido pelo canal MOSI, outro recebido pelo canal MISO, e aps todos serem

    enviados, os registradores do mestre e do escravo estaro com os dados trocados. A Figura

    8 ilustra a troca de informaes neste tipo de comunicao.

    Figura 8 Troca de informaes entre mestre e escravo atravs de protocolo de comunicao SPI.

    Para utilizar o shield ethernet com o Arduino Uno R3, necessrio adicionar duas

    bibliotecas de software disponibilizadas gratuitamente no site do Arduino, e que so

    instaladas junto com a IDE de programao dos sketchs. As bibliotecas Ethernet.h e

    SPI.h. tem ligao direta com as conexes apresentadas na Figura 9 e possuem funes

    predefinidas para definir IP, escrever pelo canal ethernet, definir um cliente, definir um

    servidor, ler e escrever comandos SPI, definir parmetros de configuraes do protocolo.

  • 22

    Figura 9 Pinos utilizados pela comunicao SPI do shield de expanso ethernet.

    3.4 Conexo com a Internet

    Como descrito, uma das funcionalidades do projeto promover conexo com a

    internet, de forma que seja possvel o usurio verificar o status do sistema ou atuar de

    forma remota, para tomar algumas aes de controle. O meio que o Arduino se conecta a

    internet atravs do shield ethernet apresentado anteriormente, contudo algumas

    adaptaes so necessrias para correto funcionamento da conectividade com a internet.

    No Arduino, com auxlio das funes da biblioteca ethernet.h, disponvel na IDE

    instalada no PC, possvel criar um pequeno servidor HTTP com uma pgina contendo

    as informaes que deseja-se apresentar ao usurio. Contudo, para correta configurao

    do servidor, necessrio que a rede possua IP fixo, e que o roteador da residncia onde o

    sistema for instalado, seja configurado para liberar o acesso de forma remota ao servidor

    criado no Arduino. Tambm no roteador local que espera-se que sejam implementadas

    verificaes de login para segurana do acesso, visto que as limitaes de memria do

    Arduino no permitem que sejam programados muitos recursos.

    A Figura 10 apresenta uma arquitetura da conexo com a internet do sistema de

    automao residencial proposto.

  • 23

    Figura 10 Topologia de acesso ao servidor do Arduino de forma remota via internet.

    3.5 Controle sem fio via comunicao bluetooth

    Outro recurso presente no projeto a possibilidade de controlar os circuitos de

    acionamentos, atravs de um telefone celular, do tipo smartphone, utilizando

    comunicao sem fio. Esse recurso est presente em praticamente todos os sistemas de

    automao residencial encontrados no mercado, portanto uma funcionalidade essencial

    a ser implementada. Para o sistema de automao residencial desenvolvido foi escolhido

    um smartphone com sistema operacional Android com suporte comunicao bluetooth.

    Por ser uma tecnologia que permite uma comunicao sem fios entre dispositivos,

    o bluetooth utiliza a faixa de frequncia de 2.4GHz. Seu padro definido por um grupo

    de empresas (SIG), as quais possuem interesse no dispositivo, que tambm supervisiona

    o desenvolvimento das especificaes, bem como promove e protege a marca.

  • 24

    O bluetooth tem por objetivo prover um meio de baixo custo, baixo consumo de

    energia e baixa complexidade de configurao para interligar dispositivos eletrnicos

    diversos, tais como telefones celulares, notebooks, desktops, cmeras digitais,

    impressoras e perifricos em geral. Por esta capacidade de interligao com dispositivos

    diversos, o Bluetooth foi selecionado como meio de comunicao para o envio dos dados

    deste projeto. Um segundo tipo de comunicao sem fio, diversas vezes utilizado em

    projetos de automao residencial a ZigBee. No foi utilizado ZigBee pois no possvel

    comunicao com smartphones ou computadores de forma simplificada e direta, como

    no caso do bluetooth.

    Os dispositivos que possuem a tecnologia Bluetooth so divididos em trs classes,

    de acordo com a potncia do sinal que podem produzir. As classes so especificadas na

    tabela abaixo.

    Tabela 1- Classes de dispositivos Bluetooth

    Classe Pot Max (mW) Pot Max (Dbm) Cobertura (m)

    1 100 20 100

    2 2.5 4 10

    3 1 0 1

    Dependendo do tipo, os dispositivos bluetooth podem fornecer determinados

    servios para as aplicaes, tais como envio e recebimento de arquivos, conexo a uma

    rede remota atravs do celular, entre outros. O servio de interesse deste trabalho o SPP

    (Serial Port Profile), que permite que um dispositivo estabelea conexo com outro a

    partir da criao de uma porta serial virtual, possibilitando que ambos se comuniquem

    atravs de uma conexo serial sem fio. Tal servio utiliza um protocolo de emular portas

    seriais denominado de RFCOMM.

    A comunicao serial corresponde transmisso e recepo de um bit de dados

    por vez. Existem dois tipos de comunicao serial, a sncrona e a assncrona. Na

    comunicao sncrona, deve haver o envio do sinal de clock entre os dispositivos, j na

    comunicao serial assncrona, no h necessidade de envio do sinal de clock, portanto

    as informaes s necessitam dos canais de dados para serem trafegados. Na comunicao

    serial assncrona, utilizada no servio SPP dos dispositivos bluetooth, os dados so

    enviados em pacotes de bits, resultando em 8 bits de informao (um byte) mais os bits

    de controle. Os bits de controle so os seguintes:

  • 25

    Start Bit: atua como indicador de incio da transmisso, ativando um temporizador

    interno do receptor para gerar o mesmo clock que o transmissor;

    Stop Bit: sinaliza a parada, o trmino do envio do pacote de dado. Pode ser 1 ou

    2 bits;

    Bit de Paridade: responsvel pela conferncia da paridade na informao. Este bit

    opcional e verifica a ocorrncia de erros no envio da informao.

    Para haver uma comunicao consistente, a comunicao serial assncrona

    necessita de configuraes prvias. Ambos os dispositivos precisam preestabelecer

    igualmente a taxa de envio (Baud Rate) dos bits, ou seja, quantos bits por segundos sero

    enviados na conexo, se h o bit de paridade, quantos Stop Bits sero utilizados e se h

    controle de fluxo da informao. A Figura 11 ilustra um tpico pacote de dados enviado

    em uma conexo serial.

    Figura 11 Pacote de dados em uma comunicao serial assncrona.

    O hardware escolhido para implementar a comunicao bluetooth no Arduino foi

    o conversor bluetooth para serial desenvolvido pela empresa Sure Electronics, que

    apresenta as seguinte caractersticas:

    Frequncia de operao: 2,4 GHz a 2,48 GHz;

    Protocolo bluetooth V2.0+EDR;

    Sada de potncia classe 2;

    Hardware de suporte implementado;

    Tenso de operao: sinais TTL (5 V).

  • 26

    Figura 12 Hardware bluetooth utilizado para comunicao entre Arduino e smatphone.

    Esse dispositivo possui apenas dois sinais de sada, um pino para transmisso de

    dados serial, e outro para recepo de dados serial. Alm disso, necessrio fornecer

    alimentao de 5 Vdc e um terra. Ele vem preconfigurado para operar a taxa de

    transmisso e recepo de 9600 bps, portanto configuraes adicionais no so

    necessrias.

    Para enviar e receber sinais no Arduino, basta que seja conectado o sinal TX do

    chip bluetooth a porta RX do Arduino (pino 0) e o sinal RX do chip bluetooth a porta TX

    do Arduino (pino 1), conforme Figura 12. No necessrio incluir nenhuma biblioteca

    extra no sketch a ser compilado, bastando apenas configurar a porta serial do Arduino

    para operar em 9600 bps e utilizar as funes de envio e recepo via porta serial, de

    acordo com a lgica do programa.

  • 27

    Figura 13 Conexo entre o mdulo bluetooth e o Arduino.

    3.6 Smartphone Android e AppInventor

    No segundo trimestre de 2013 foram vendidos 8 milhes de smartphones no

    Brasil, nmero 110% superior em relao ao mesmo perodo do ano anterior. Os dados

    foram divulgados pela consultoria IDC. De acordo com o estudo, pela primeira vez no

    pas, a venda de smartphones superou a de aparelhos convencionais, dominando 54% do

    mercado local. Do total de smartphones comercializados, 90% esto equipados com o

    sistema operacional da Google, o Android.

    Essa uma das principais justificativas para a escolha do Android como sistema

    operacional adotado para desenvolvimento do aplicativo de controle do sistema. Outra

    importante informao que o Android um sistema aberto, programvel em JAVA e

    que possui vasta documentao para elaborao de aplicativos, o que elimina custos

    associados com aquisio de softwares ou hardware especficos para programao dos

    aparelhos.

    A ferramenta utilizada para desenvolver o aplicativo foi o AppInventor, um applet

    JAVA que roda direto do browser, desenvolvido pelo MIT (Massachusetts Institute of

    Technology). No applet possvel construir a interface grfica do aplicativo, inserindo

  • 28

    botes, textos, figuras ou elementos de hardware (conectividade a internet, conexo

    bluetooth, etc) e, em seguida, constri-se a lgica por trs de cada elemento, em uma

    programao fcil e intuitiva atravs do uso de blocos de funes. As Figura 14 e Figura

    15 apresentam capturas de tela do mdulo de construo de interface do AppInventor e

    do mdulo de programao, respectivamente.

    Figura 14 Mdulo de construo da interface grfica do aplicativo no AppInventor.

    Figura 15 Mdulo de programao do AppInventor. Programao intuitiva atravs da utilizao de blocos para construo da lgica.

  • 29

    3.7 Mdulos de entrada e sada

    Em um sistema de controle e automao residencial vrios parmetros so de

    interesse para serem monitorados. A temperatura ambiente, a umidade do solo para

    controle da irrigao, a presena de luminosidade para acionamento da iluminao

    externa, a deteco de presena para acionamento de circuitos de segurana. Para avaliar

    todos esses parmetros so necessrios diversos tipos de sensores.

    No projeto do sistema de automao desenvolvido, foram contemplados trs tipos

    de sensores. Sensor de presena infravermelho. bastante utilizado em projetos de

    segurana e alarmes residenciais para identificar a presena de pessoas em ambientes. Ele

    emite um sinal infravermelho que espalhado pela redoma convexa montada na parte

    superior. O sinal bate em um objeto e refletido de volta a redoma que agrupa os feixes

    em um detector infravermelho. Existem ajustes de temporizao e de sensibilidade, de

    forma que o sensor no capte qualquer variao de movimento instantnea. O sinal de

    sada do sensor um sinal digital, 1 para deteco e 0 para no deteco de presena.

    Figura 16 Sensor de presena infravermelho.

    Como descrito anteriormente, um sensor de umidade do solo til para

    automatizao do processo de irrigao em uma casa. O sensor contm duas barras

    condutoras, separadas por um espaamento. Quando a umidade do solo muito baixa,

    no existe contato entre as duas barras condutoras e o circuito no fechado. Caso a

    umidade do solo aumente, passa a existir condutividade entre as duas barras e o sinal de

    sada aumenta, a medida que a condutividade aumenta. Portanto, a sada desse sensor

  • 30

    um sinal analgico que varia de 0 V a 5 V e linearmente proporcional quantidade de

    umidade do solo: quanto maior a umidade no solo, maior a tenso medida.

    Para ler o valor do sensor no Arduino existem duas possibilidades. A primeira

    consiste em conectar o sensor a uma entrada analgica e medir o valor atual de tenso e

    decidir qual ao tomar a medida que o valor aumenta ou diminui. A segunda maneira

    escolher um valor limite, a partir do qual seria necessrio, por exemplo, ligar a vlvula de

    irrigao, e construir um circuito de acionamento externo que enviasse um sinal para o

    Arduino indicando que o limite foi atingido.

    Figura 17 sensor de umidade do solo.

    O terceiro tipo de sensor utilizado tambm tem relao direta com a segurana da

    residncia. um conjunto de sensor para detectar a presena de gs e chamas. A deteco

    de gs de suma importncia em uma residncia para verificar o vazamento de gs de

    cozinha e prevenir problemas maiores como um incndio. Tambm pode ser utilizado em

    conjunto com um sensor detector de chamas para constatar a presena de fogo e fumaa

    e acionar alarmes de incndio.

    A sada de ambos os sensores um valor analgico variando de 0 V a 5 V,

    proporcional a intensidade de chama ou de gs no ambiente. Ambos os sensores tambm

    possibilitam que se use uma sada digital quando um determinado valor for medido, ou

    seja, atravs dos trimpots configura-se um limiar para que a partir daquele valor, seja

    enviado um sinal ativo da deteco de chama ou de gs no ambiente.

  • 31

    Figura 18 Sensor detector de chama e sensor detector de gs.

    Alm dos sensores como elementos de entrada, so essenciais a existncia de

    interruptores para acionamento de circuitos de iluminao ou irrigao, por exemplo. No

    sistema de automao residencial proposto, pretende-se utilizar interruptores paralelos,

    que permitem a utilizao do esquema three-way, para conexo de dois circuitos para

    acionar uma carga de forma simultnea.

    Figura 19 Interruptor paralelo ou three-way, necessrio para fazer a instalao eltrica com acionamento em dois pontos distintos de forma simultnea.

    Uma das formas mais simples de automao residencial o controle automtico,

    ou diferenciado, de cargas do tipo liga / desliga. A principal carga que se encaixa nesse

    perfil a carga de iluminao. Outros tipos de cargas que podem ser automatizadas

    atravs de controles ON / OFF so eletrodomsticos ou motores de portes de garagem.

  • 32

    O principal elemento de circuito para o controle de uma carga, como descrito

    acima, o rel. Esse componente recebe um sinal de controle a nvel TTL e aciona seus

    contatos eletromecnicos, podendo acionar uma carga de corrente alternada na tenso de

    220 V e at 10 A, mantendo isolado de forma magntica o circuito de acionamento em

    tenso CC, do circuito da carga em tenso CA.

    O circuito de acionamento de um rel tal como apresentado na Figura 20. Para

    cada carga que se deseja controlar o acionamento, necessrio um novo circuito. O

    circuito U3 uma proteo redundante para desacoplar opticamente o circuito de

    acionamento e o circuito da carga.

    Figura 20 Circuito de Acionamento de um rel para controle de carga.

    Apesar de ser um circuito simples de montar e testar, existem placas que podem

    ser compradas prontas e j apresentam montagem industrial e foram previamente testadas.

    O preo dessas placas, quando compradas em sites de importao de eletrnicos sai mais

    em conta do que comprar os componentes e confeccionar uma placa de circuito impresso

    no Brasil. Uma placa comprada em um desses sites pode ser vista na Figura 21.

  • 33

    Figura 21 Placa com quatro rels acionado por sinal TTL 5 V, com sadas 220 Vca 10A.

    Outro mdulo que est presente em sistemas de automao comercial so os

    dimerizadores. Em alguns sistemas esse circuito se apresenta como pulsadores. um

    circuito que diminui a quantidade de potncia entregue a carga, basicamente com o

    objetivo de diminuir o consumo de energia. Em alguns tipos de circuitos utilizado um

    triac para liberar mais ou menos tenso para carga, de acordo com o acionamento. Em

    outros so utilizados sistemas pulsados, controlados por microcontroladores, mais

    comuns em lmpadas fluorescentes que no permitem dimerizao.

    No sistema desenvolvido foi utilizado um circuito com triac, conforme a Figura

    22. O acionamento da potncia entregue a carga feito em uma interface no aplicativo

    no smartphone. O objetivo desse circuito controlar a iluminao ambiente e

    consequentemente, a potncia entregue a uma lmpada halgena, que tem a possibilidade

    de ser dimerizvel.

  • 34

    Figura 22 Circuito para promover dimerizao com o Arduino e um triac.

    Para o caso do circuito de controle de potncia, foi necessrio projetar e montar

    uma placa externa, pois no foi encontrado no mercado um circuito que pudesse ser

    adquirido pronto. O circuito montado foi o apresentado na Figura 22. Na Figura 23, pode

    ser vista uma fotografia da placa aps a montagem e testes de funcionalidade.

    Figura 23 fotografia da placa de controle de potncia de cargas.

  • 35

    4 DESENVOLVIMENTO DO PROTTIPO EXPERIMENTAL

    Com o intuito de validar o sistema de automao residencial proposto, foi pensada,

    projetada e construda uma plataforma experimental de testes. Essa plataforma visa

    simular uma instalao monofsica de uma residncia com seus circuitos de instalao

    eltrica e algumas cargas, no caso do prottipo construdo, apenas cargas de iluminao.

    Os sistemas de hardware descritos anteriormente foram instalados no prottipo de forma

    que seja possvel programar o Arduino medida que modificaes fossem necessrias.

    Nesse captulo so apresentados os diagramas eltricos e aspectos construtivos do

    prottipo desenvolvido para simular a instalao eltrica de um residncia e testar o

    sistema de automao residencial.

    4.1 Construo do prottipo experimental

    A construo de um prottipo para testar o correto funcionamento do sistema de

    automao residencial proposto tem como objetivo verificar a funcionalidade do sistema

    percebendo os automatismos atuando conforme programado no Arduino e o usurio

    atuando nos sistemas de controle para obter as sadas esperadas.

    O prottipo portanto deveria ter como caractersticas:

    Portabilidade: no ser muito grande, podendo ser transportado para ser utilizado

    em apresentaes.

    Baixo Custo: como no o meio fim, os custos com o prottipo deveria ser o

    menor possvel, devendo ser utilizado material reaproveitado de outras

    montagens.

    Simplicidade: com o objetivo de observar o correto funcionamento do sistema de

    automao, o prottipo deve ser simples o bastante para fornecer entradas e sadas,

    no sendo fonte de trabalho extra ou fonte de possveis erros de projeto.

    Baseado nos requisitos mnimos de funcionamento, o prottipo contm trs

    lmpadas fluorescentes para simular o circuito de iluminao de uma residncia. Contm

    uma lmpada halgena que pode ser dimerizvel, para testar o controle de potncia

    entregue as cargas. Contm ainda quatro interruptores eltricos, para ligar e desligar as

    cargas da forma convencional e uma tomada, para alimentar o circuito DC do Arduino e

    dos componentes do sistema de automao. A Figura 24 apresenta um esquemtico

    proposto para a construo do prottipo. Na vista superior pode ser visto o espao

    reservado para as lmpadas e tambm para a instalao do sistema de automao.

  • 36

    Figura 24 Vistas do sistema de prottipo construdo para testar o sistema de automao residencial proposto.

    Aps o levantamento dos componentes necessrio para a montagem, foi feita a

    compra e em seguida a montagem do prottipo. Foram usadas duas chapas de madeira

    para fazer a base horizontal e vertical. Foi utilizado fio de 1 mm para as conexes eltricas

    e foram fincados com pregos as placas de circuitos do sistema de automao residencial.

    As fotografias vistas na Figura 25 exemplificam a evoluo da montagem do projeto e o

    resultado final. Na Figura 26 apresentado o diagrama multifilar da instalao eltrica

    do projeto.

  • 37

    Figura 25 Construo do prottipo e verso final j com as conexes eltricas efetuadas conjuntamente com o sistema de automao residencial.

  • 38

    Figura 26 Diagrama multifilar da instalao eltrica do prottipo, onde RLn so os rels do mdulo de acionamento de cargas e U1 o circuito de controle de potncia entregue a carga, apresentado

    anteriormente.

  • 39

    5 TESTES E RESULTADOS

    Nesse captulo apresentado a concepo e teste de cada parte do sistema de

    forma modular. Sero apresentados algoritmos utilizados para o implementao de cada

    mdulo de controle do sistema e em anexo os cdigos em linguagem proprietria do

    Arduino para executar as funes propostas.

    5.1 Aplicativo Domotic Blue Server

    Como explicado anteriormente foi desenvolvido um aplicativo para o sistema

    operacional Android, de forma que fosse possvel controlar o sistema atravs da conexo

    bluetooth ou internet. Foi utilizado o applet AppInventor, do MIT, que utiliza

    programao em blocos e roda atravs de um web browser, para realizar a programao

    do aplicativo. O programa contm basicamente cinco telas:

    Tela Inicial Assim que o usurio acessa o programa a tela inicial apresentada

    e duas opes de ao so permitidas, a escolha de controlar o sistema atravs do

    bluetooth ou da internet. A seleo feita clicando-se no boto com a opo

    desejada, conforme Figura 27.

    Tela Bluetooth Selecionada a opo de controle via bluetooth, o usurio

    redirecionado para outra tela, onde deve escolher a qual dispositivo bluetooth

    deseja se conectar. Nesse instante, caso o hardware bluetooth do telefone no

    esteja ativado, requisitado que ele seja ligado. A Figura 28 apresenta uma

    captura dessa tela. Nesse momento o elemento voltar introduzido em formato

    de seta, de forma que possvel que o usurio retorne a tela anterior ao clicar

    nesse objeto.

    Tela de Controle Bluetooth Aps conectado corretamente ao dispositivo

    bluetooth as opes de controle do sistema so apresentadas. Basicamente as

    opes se resumem a ligar o desligar uma das trs lmpadas fluorescentes do

    prottipo de testes ou aumentar e diminuir a potncia entregue a lmpada

    halgena. Novamente o objeto voltar apresentado, dessa vez, caso clique sobre

    o objeto o usurio levado para tela inicial (Figura 29).

    Tela Controle Internet Ao clicar na opo internet na tela inicial, o usurio

    redirecionado para a pgina do servidor que roda no Arduino, conectado a rede

  • 40

    local em sua residncia. Essa pgina apresentada em formato web utilizando um

    dos elementos disponveis no AppInventor, conforme Figura 30.

    O Aplicativo compilado diretamente no browser de acesso a internet, e pode ser

    baixado para o computador e instalado em qualquer dispositivo Android que seja de

    verso 2.3 ou superior. Tambm pode ser instalado em tablets Android, contudo a

    formatao de tela pode variar.

    Figura 27 Tela inicial do aplicativo.

    Figura 28 Tela de seleo da conexo com hardware bluetooth ou retorno para tela anterior.

  • 41

    Figura 29 Tela de controle dos dispositivos de instalao eltrica do prottipo, trs lmpadas (ao liga / desliga) e uma carga luminosa, (ao aumenta ou diminui intensidade luminosa).

    Figura 30 Captura da tela de controle do sistema via internet.

    5.2 Mdulos de Controle e Lgica no Arduino

    Como explicado anteriormente, o Arduino funciona como uma placa de

    desenvolvimentos que contm toda a lgica de necessria para processar as entradas

    digitais, analgicas e protocolos de comunicao e acionar os sinais de sada da forma

  • 42

    esperada pelo usurio. Alguns controles so feitos atravs da interao com o usurio,

    utilizando meios como smartphone ou internet, e outros controles so feitos de forma

    automtica, utilizando leituras provenientes de sensores. Essa seo visa explicar a

    programao de cada mdulo de controle no Arduino.

    5.2.1 Controle dos Rels

    Um dos principais controles possveis no sistema ligar ou desligar cargas atravs

    do smartphone, utilizando comunicao bluetooth, ou atravs da internet. Os comandos

    recebidos pelo Arduino, seja por um ou pelo outro meio de comunicao, so processados

    e acionam ou no as sadas digitais da placa, que por sua vez comutam os contatos de um

    rel especfico na placa de rels utilizada. O algoritmo para o controle via comunicao

    bluetooth apresentado na Figura 31 e a traduo em cdigo para o sketch Arduino

    apresentada nos anexos.

    5.2.2 Automatismos atravs dos sensores

    Como explicado anteriormente, o sistema possui alguns sensores para monitorar

    parmetros de interesse. Os sensores tem sua sada em formato analgico, portanto as

    portas do conversor analgico para digital do Arduino foram utilizadas para ler os dados

    e converter em um nmero que pudesse ser utilizado em uma lgica de automatismo.

    Como exemplo podemos citar o sensor de medio da umidade do solo. Esse

    sensor apresente um sinal de sada que varia de 0 V a 5 V, de forma que, quanto maior a

    umidade, maior a tenso medida. Acontece que a sada desse tipo de sensor varia bastante,

    devido a diversos fatores, como por exemplo flutuao na tenso de referncia do

    microcontrolador. Portanto no cdigo do processamento da leitura analgica utilizado

    um filtro por software para ter um valor mdio da medida no tempo e enfim acionar a

    sada digital necessria, no caso um dos rels para acionar uma vlvula. A Figura 32

    apresenta o cdigo utilizado no Arduino.

  • 43

    Figura 31 Algoritmo para processamento dos dados recebidos na comunicao bluetooth e acionamento das sadas digitais.

  • 44

    5.2.3 Pgina Web do Servidor Implementado

    A pgina web do servidor implementado no Arduino tem a restrio bsica de

    ocupar a menor quantidade de memria possvel. Isso tem implicao direta na

    quantidade de comandos client.println(""); utilizados. Portanto um estudo detalhado de

    somente o que foi necessrio foi colocado na pgina. O cdigo HTTP da pgina

    apresentado nos anexos, e a Figura 30, apresentada anteriormente apresenta uma captura

    de tela da pgina.

    O servidor implementado no Arduino faz uso da biblioteca disponibilizada de

    forma gratuita na instalao da IDE. Essa biblioteca possui as seguintes funes que

    foram utilizadas:

    Ethernet.begin(mac, ip, gateway, subnet): configura uma conexo ethernet com

    os respectivos valores de IP, gateway e subnet salvos nas variveis.

    EthernetClient client = server.available(): duas funes utilizadas em conjunto.

    Uma para criar um objeto cliente e outra para verificar se o cliente est disponvel

    para se conectar ao servidor.

    client.connected() e client.available(): funes que retornam 1 ou 0, se o cliente

    est conectado e se ele est disponvel para escrita ou leitura, respectivamente.

    /* FUNO: SensorJardim() PARMETROS: Nenhum RETORNO: Nenhum DESCRIO: Primeiramente a funo calcula uma mdia de 50 valores medidos pelo sensor

    de forma que a medio analgica fique mais suave, uma espcie de filtro por software Aps isso verifica se o valor mdio medido na porta analgica A2 menor que um valor base se for menor, aciona um contato de rel ligado a uma vlvula que por sua vez aciona o sistema de irrigao da casa. O valor medido na porta analgica a umidade do solo. Quando um valor alto significa que o solo est umido, caso contrrio seco.

    */ void SensorJardim(void) { if(samplesJardim

  • 45

    char c = client.read(): Ler dados do cliente. Essa funo l apenas um byte, por

    isso precisa ser executada em loop para ler a quantidade de bytes necessrio para

    conter uma mensagem de requisio.

    client.println(" "): funo utilizada para escrever dados para o cliente conectado.

    Aqui so enviados, por exemplo, as linhas de cdigo da pgina do servidor.

  • 46

    6 CONCLUSO E TRABALHOS FUTUROS

    Foi realizado um projeto de um sistema para automao residencial utilizando

    microcontrolador como unidade central de processamento. Sistemas de automao

    residencial so sistemas modulares, hoje em dia so em sua maioria construdos

    utilizando-se tecnologia dos modernos processadores ou dos robustos CLPs, buscou-se

    realizar uma montagem intermediaria fazendo proveito dos benefcios da portabilidade

    dos microcontroladores para obter um sistema intermedirio entre a performance dos

    processadores e a robustez dos CLP.

    Foi desenvolvido um prottipo para testar e validar o sistema de automao

    desenvolvido. O prottipo teve como objetivo simular a instalao eltrica simplificada

    de uma residncia e permitir que os sinais bsicos de entrada e sada fossem aplicados ao

    sistema desenvolvido no microcontrolador a fim de verificar o correto controle e

    funcionamento das funes pensadas e programadas no Arduino.

    A programao e montagem do sistema ocorreu de forma positiva e o objetivo

    esperado foi alcanado. Um sistema completo para auxiliar no estudo e desenvolvimento

    de tecnologias para automao residencial foi desenvolvido e pode ser usado como

    modelo para estudos mais avanados. Espera-se que recursos presentes em projetos de

    automao residencial similares, possam ser acrescentados ao projeto com auxlio da

    estrutura desenvolvida em futuros trabalhos. Controle de equipamentos via sinais

    infravermelho, incluso de um sistema em tempo real para insero de um log de eventos

    ou programao de aes baseadas no tempo, sejam frutos de trabalhos futuros.

    O presente trabalho aborda vrios aspectos de um projeto de engenharia eltrica,

    ao se debater sobre temas como eletrnica e microeletrnica, instalaes eltricas

    prediais, arquitetura de sistemas e programao de processadores e construo de

    softwares especficos. Tambm contempla a montagem experimental, resultando no

    desenvolvimento de um produto que pode ser usado como modelo para desenvolvimento

    de outros produtos e tecnologias e no levantamento para construo de prottipos e

    atividades experimentais, to importantes no desenvolvimento e formao de um

    profissional de engenharia eltrica.

  • 47

    7 BIBLIOGRAFIA

    COSTA, E. M. M.; LIMA, A. M. N. Sistemas dinmicos a eventos discretos:

    fundamentos bsicos para a moderna automao industrial. Salvador: EDUFBA, 2005.

    GRILO, L. C. P.; GRILO, M. B.; PEREIRA, E. G. Desenvolvimento de um sistema para

    medio de temperatura e umidade com comunicao sem fio num secador solar.

    Congresso Nacional de Engenharia Mecnica (CONEM). So Luis - MA, 2012.

    JOBSTRAIBIZER, F. Criao de aplicativos para celulares com Google Android. So

    Paulo: Digerati Books, 2009.

    McROBERTS, M. Arduino bsico. Trad. Rafael Zanolli. So Paulo: Novatec, 2011.

    PRUDENTE, F. Automao predial e residencial: uma introduo. 1. ed. So Paulo:

    LTC, 2011.

    Revista VEJA. Um lar que obedece ao dono. Edio 2299, 12 de dezembro de 2012, p.

    176-178.

    SURE ELECTRONICS. Bluetooth serial converter UART interface 9600bps users

    guide. P.R.Chine, Sure Electronics Co. Ltd, 2008.

    THOMAZINI. D.; ALBUQUERQUE, P. U. B. Sensores Industriais: fundamentos e

    aplicaes. 7. Ed. rev. e atual. So Paulo: rica, 2010.

    http://arduino.cc/en/Main/ArduinoBoardUno - Acessado em 10/2013

    http://arduino.cc/en/Main/ArduinoEthernetShield - Acessado em 10/2013

  • 48

    8 ANEXOS

    /********************************************** PROGRAMA FINAL DO TCC - DomoticGrilo * LUIZ CLAVER PEREIRA GRILO * [email protected] * **********************************************/ #include #include #include //*****************DEFINIO DOS PINOS DO ARDUINO ************************************* #define sensorIn1 A0 //A0 - ENTRADA ANALGICA 1 (SENSOR DE CHAMAS) INPUT #define releLamp3 5 //5 - REL 3 - LMPADA 3 -> OUTPUT #define releJardim 6 //6 - REL 4 - VLVULA DE IRRIGAO -> OUTPUT #define alarme 7 //7 - ALARME - LED + BUZZER -> OUTPUT #define triacIn 8 //8 - TRIAC - INTERRUPT IN OUTPUT PWM //10- ETHERNNET SHIELD -> INPUT //11- ETHERNNET SHIELD -> INPUT //12- ETHERNNET SHIELD -> INPUT //13- ETHERNNET SHIELD -> INPUT //DEFINIES DAS AES #define action_none 0 #define action_mypin_ON 1 #define action_mypin_OFF 2 //************** DEFINIO DAS VARIVEIS GLOBAIS UTILIZADAS NO PROGRAMA ************ char inByte; //ARMAZENA O BYTE CHEGANDO NA SERIAL boolean estadoRele1 = false; //ARMAZENA O ESTADO DO REL 1 boolean estadoRele2 = false; //ARMAZENA O ESTADO DO REL 1 boolean estadoRele3 = false; //ARMAZENA O ESTADO DO REL 1 boolean estadoRele4 = false; //ARMAZENA O ESTADO DO REL 1 boolean estadoSensorIn2 = false; boolean estadoSensorIn1 = false; long accJardim, accGas, accIn1; int samplesJardim, samplesGas, samplesIn1; int mediaJardim, mediaGas, mediaIn1; //DEFINIES DA REDE byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xBE }; //ENDEREO DO MAC DEFINIDO PELO USURIO byte ip[] = { 192, 168, 0, 177 }; //ENDEREO DE IP, DEFINIDO PELO USURIO byte gateway[] = { 192, 168, 0, 1 }; //internet access via router (opcional) byte subnet[] = { 255, 255, 255, 0 }; //subnet mask (opcional) EthernetServer server(3333); //PORTA DO SERVIDOR. NECESSRIA. String readString = String(30); //string para receber as aes de ligar/desligar os pinos //PINOS DE SADA QUE ESTO SENDO USADOS E PARA O QUE ESTO SENDO USADOS int pinOutRelay = 7; int inByte = 0; //BYTE RECEBIDO PELO BLUETOOTH PARA FAZER A COMPARAO E ATUAR NAS SADAS. //COMANDOS DE CHEGADA DO CLIENT / QUANDO CLICA NOS BOTES NA PGINA ENVIA ESSES COMANDOS PARA O ARDUINO INTERPRETAR String pinOutRelay_OFF = "GET /?out=5&status=0 HTTP/1.1"; String pinOutRelay_ON = "GET /?out=5&status=1 HTTP/1.1"; //VARIVEL PARA GUARDAR A AO ATUAL, PARA INFORMAR AO USURIO O ESTGIO DO(S) PINO(S) EM CONTROLE int current_action; //***********************CONFIGURAES DE SETUP INICIAL****************************** void setup() { //INICIA A PORTA ETHERNET COM AS CONFIGURAES ESCOLHIDAS Ethernet.begin(mac, ip, gateway, subnet); current_action = 0; // INICIA A PORTA SERIAL A 9600 bps Serial.begin(9600); //DEFINE TODOS OS PINOS ONDE ESTO LIGADOS OS RELS, COMO SADA pinMode(releLamp1, OUTPUT); digitalWrite(releLamp1, LOW); pinMode(releLamp2, OUTPUT); digitalWrite(releLamp2, LOW);

  • 49

    pinMode(releLamp3, OUTPUT); digitalWrite(releLamp3, LOW); pinMode(releJardim, OUTPUT); digitalWrite(releJardim, LOW); //DEFINE TODOS OS PINOS ONDE ESTO LIGADOS OS INTERRUPTORES COMO ENTRADA } //********************** PROGRAMA QUE FICA SE REPETINDO ******************************* void loop() { EstadoReles(); //chama a funo de acionamento dos rels por bluetooth serial SensorJardim(); //chama a funo de leitura do sensor de umidade do solo e acionamento de vlvula de irrigao SensorGas(); //chama a funo da leitura do sensor de gs SensorIn1(); //chama a funo da leitura do estado de um terceiro sensor AtivaAlarme(); //chama a funo pra ativar o alarme, se o sinal dos sensores atingir determinado nvel internet(); //chama a funo relgio delay(100); } //LooP //************************ FUNES ********************************************** /* FUNO: EstadoReles() PARMETROS: Nenhum RETORNO: Nenhum DESCRIO: Verifica se o canal de comunicao serial est disponvel. Caso esteja recebe um byte pelo canal Faz 6 (seis) comparaes para atualizar o estado dos rels, LIGADO ou DESLIGADO Salva nas variveis de estado (BOOLEAN) o estado atual do rel, para futura conferncia. */ void EstadoReles (void) { if (Serial.available() > 0) { //SE A PORTA SERIAL ESTIVER DISPONVEL inByte = Serial.read(); //L O BYTE DISPONVEL NO CANAL DE COMUNICAO DE ENTRADA if(inByte == 'A'){ //SE RECEBEU O BYTE 'A' LIGA O REL DA SADA 1 estadoRele1 = true; inByte = 0; } if(inByte == 'a'){ estadoRele1 = false; //SE RECEBEU O BYTE 'a' DESLIGA O REL DA SADA 1 inByte = 0; } if(inByte == 'B'){ estadoRele2 = true; //SE RECEBEU O BYTE 'B' LIGA O REL DA SADA 2 inByte = 0; } if(inByte == 'b'){ estadoRele2 = false; //SE RECEBEU O BYTE 'b' DESLIGA O REL DA SADA 2 inByte = 0; } if(inByte == 'C'){ estadoRele3 = true; //SE RECEBEU O BYTE 'C' LIGA O REL DA SADA 3 inByte = 0; } if(inByte == 'c'){ estadoRele3 = false; //SE RECEBEU O BYTE 'c' DESLIGA O REL DA SADA 3 inByte = 0; } } // =Serial Available digitalWrite(releLamp1, estadoRele1); digitalWrite(releLamp2, estadoRele2); digitalWrite(releLamp3, estadoRele3); } //************************************************************************************* /* FUNO: SensorJardim() PARMETROS: Nenhum RETORNO: Nenhum DESCRIO: Primeiramente a funo calcula uma mdia de 50 valores medidos pelo sensor de forma que a medio analgica fique mais suave, uma espcie de filtro por software Aps isso verifica se o valor mdio medido na porta analgica A2 menor que um valor base se for menor, aciona um contato de rel ligado a uma vlvula que por sua vez aciona o sistema de irrigao da casa. O valor medido na porta analgica a umidade do solo.

  • 50

    Quando um valor alto significa que o solo est umido, caso contrrio seco. */ void SensorJardim(void) { if(samplesJardim

  • 51

    PARMETROS: Nenhum RETORNO: Nenhum DESCRIO: */ void AtivaAlarme(void) { if(estadoSensorIn1 && estadoSensorIn2) digitalWrite(alarme, HIGH); else digitalWrite(alarme, LOW); } //************************************************************************************* /* FUNO: Internet() PARMETROS: Nenhum RETORNO: Nenhum DESCRIO: Ativa o servidor com o cliente e envia a pgina WEB e recebe as requisies ativando as aes esperadas. */ void Internet(void){ current_action = 0; // CRIA UMA CONEXO COM O CLIENT EthernetClient client = server.available(); if (client) { while (client.connected()) { if (client.available()) { char c = client.read(); //LER CHAR POR CHAR DA REQUISIO HTTP E ARMAZENA OS CHARS EM UMA STRING if (readString.length() < 30) { readString = readString + c; } //SE A REQUISIO HTTP DO CLIENT TERMINOU, RECEBE ESSA INFORMAO if (c == '\n') { //Serial.print(readString); // COMPARA A STRING RECEBIDA DA REQUISIO HTTP, PARA VERIFICAR O QUE O USURIO DESEJA FAZER // GUARDA A INFORMAO DO QUE VAI SER FEITO EM current_action DE FORMA QUE POSSVEL SABER O ESTADO DO PINO if(readString.startsWith(pinOutRelay_ON)) current_action = action_mypin_ON; else if(readString.startsWith(pinOutRelay_OFF)) current_action = action_mypin_OFF; else current_action = action_none; // **************************************************************************************** // CRIA A PGINA HTTP COM CABEALHO PADRO QUE O USURIO VAI VER // E ENVIA PARA ESSA PGINA AS INFORMAES ATUAIS DE ACORDO COM AS REQUISIES DELE. client.println("HTTP/1.1 200 OK"); client.println("Content-Type: text/html\n"); client.println(""); client.println("LuizClaver Server"); client.println(""); client.println("LuizClaver Server"); //CRIAO DOS BOTES EM HTML. AS LINHAS DO MEIO MOSTRAM A MONTAGEM DA MENSAGEM DE CONTROLE //QUE INDICA out=5&value=1 para ligado e value=0 para desligado. client.println(); client.println(""); //OBSERVAR QUE ESSE O IP_FIXO DO ROTEADOR client.println(""); //SE NO TIVER PLANO DE IP_FIXO, TEM QUE MUDAR TODA VEZ client.println(""); //QUE O ROTEADOR REINICIAR, OU QUE A INTERNET REINICIAR client.println(""); client.println(""); //DE FORMA SIMILAR AQUI O COMANDO DEPENDE DO IP client.println(""); //COMO FUTURA SOLUO PODE-SE IMPLEMENTAR ALGO COM client.println(""); //DHCP AUTOMTICO, QUE PEGA O IP DIRETO DA REDE. client.println(""); client.println(""); client.println(); switch(current_action) { case action_mypin_OFF: digitalWrite(pinOutRelay, LOW); client.println("O PINO: ");

  • 52

    client.print(pinOutRelay); client.print(" ESTA DESLIGADO"); client.println("CAMERA"); //NOVAMENTE A QUESTO DO IP E AGORA ACESSANDO UMA PORTA EXTRA client.println(""); //CONFIGURADA TAMBM NO ROTEADOR PARA DAR ACESSO A CMERA IP break; case action_mypin_ON: digitalWrite(pinOutRelay, HIGH); client.println("O PINO: "); client.print(pinOutRelay); client.print(" ESTA LIGADO"); client.println("CAMERA"); //MAIS UMA VEZ O IP AQUI DEVE SER CONHECIDO PREVIAMENTE DO ROTEADOR client.println(""); break; case action_none: client.println("CAMERA"); //AQUI TAMBM client.println(""); break; } // *************************************************************************************** //LIMPA A STRING DE COMPARAO, PARA A PRXIMA REQUISIO HTTP DO CLIENT readString=""; //FINALIZA A CONEXO COM O CLIENT client.stop(); } } } } delay(1); }