Sei sulla pagina 1di 72

CENTRO UNIVERSITRIO DE BRASLIA -UniCEUB CURSO DE ENGENHARIA DE COMPUTAO

GUSTAVO MOURA F MAIA

ACIONAMENTO REMOTO DE PORTES ELTRICOS VIA CELULAR ATRAVS DE MICROCONTROLADOR

Orientadora: Profa. M. C. Maria Marony Sousa Farias

Braslia Junho, 2012

II

GUSTAVO MOURA F MAIA

ACIONAMENTO REMOTO DE PORTES ELTRICOS VIA CELULAR ATRAVS DE MICROCONTROLADOR

Trabalho apresentado ao Centro Universitrio de Braslia (UniCEUB) como pr-requisito para a obteno de Certificado de Concluso de Curso de Engenharia de Computao. Orientador: Profa. M. C. Maria Marony Sousa Farias

Braslia Junho, 2012

III GUSTAVO MOURA F MAIA ACIONAMENTO REMOTO DE PORTES ELTRICOS VIA CELULAR ATRAVS DE MICROCONTROLADOR

Trabalho apresentado ao Centro Universitrio de Braslia (UniCEUB) como pr-requisito para a obteno de Certificado de Concluso de Curso de Engenharia de Computao. Orientador: Profa. M. C. Maria Marony Sousa Farias

Este Trabalho foi julgado adequado para a obteno do Ttulo de Engenheiro de Computao, e aprovado em sua forma final pela Faculdade de Tecnologia e Cincias Sociais Aplicadas -FATECS. ____________________________ Prof. Abiezer Amarilia Fernandes Coordenador do Curso

Banca Examinadora: ________________________ Profa. Maria Marony Sousa Farias, mestre em Engenharia Eltrica. Orientadora ________________________ Prof. Luciano Henrique Duque, mestre em Engenharia Eltrica.

________________________ Profa. Vera Lcia Farini Alves Duarte, mestre em Matemtica.

IV

AGRADECIMENTOS
minha famlia, por todo o carinho e dedicao, sempre buscando o melhor para minha formao pessoal e acadmica. Especialmente ao meu pai, sempre presente e solcito durante todo o desenvolvimento deste projeto. Aos meus amigos e colegas que sempre me apoiaram nos momentos em que precisei. minha orientadora que forneceu todo o suporte e incentivo necessrio para a elaborao e concretizao do projeto final. E todos que colaboraram de alguma forma com o desenvolvimento e a realizao deste trabalho.

RESUMO
Este projeto apresenta um dispositivo de acionamento remoto de portes eltricos via celular utilizando microcontrolador. O projeto integra a placa Arduino UNO, cujo microcontrolador ATmega328, uma placa com mdulo GSM SIM900 e uma placa com mdulos rels num nico prottipo. O prottipo realiza cadastro de usurios, adicionando novos ou removendo cadastros j existentes, atravs de mensagem de texto enviada por um administrador do sistema o primeiro usurio a mandar um SMS ao prottipo. O prottipo, ao receber uma chamada, faz a identificao da ligao e a compara aos telefones cadastrados em seu SIM Card; e envia um pulso eltrico ao mdulo rel acionando o porto eltrico caso o usurio seja cadastrado. A linguagem de programao utilizada para o desenvolvimento foi a Arduino que implementa as linguagens Processing e C.

Palavras-chave:

Automao,

Acionamento

Remoto,

GSM,

Arduino,

ATmega328, Processing, C, SMS, SIM Card.

VI

ABSTRACT
This project presents a device to remotely actuate electric gates through a microcontroller using a mobile phone. The project integrates the Arduino board, UNO, which uses the microcontroller ATmega328, a board with GSM module SIM900 and a relay board within a single prototype. The prototype registers users, adding new or removing existing entries, by text message sent by a system administrator - the first user to send an SMS to the prototype. When the prototype receives an incoming call, it makes the identification of the incoming call and compares it with the phones registered on its SIM Card, and sends an electrical pulse to the relay module powering the electric gate if the user is registered. The programming language used for the development was the Arduino language that implements the Processing language and C language.

Keywords: Automation, Remote Actuation, GSM, Arduino, ATmega328, Processing, C, SMS, SIM Card.

VII

SUMRIO
LISTA DE FIGURAS........................................................................IX LISTA DE TABELAS.......................................................................XI LISTA DE ABREVIATURAS E SIGLAS.........................................XII CAPTULO 1 INTRODUO.......................................................13
1.1 1.2 1.3 1.4 Apresentao do problema.......................................................13 Objetivos do Trabalho................................................................13 Metodologias...............................................................................14 Estrutura da Monografia............................................................15

CAPTULO 2 APRESENTAO DO PROBLEMA.....................16


2.1 2.2 2.3 2.4 Segurana Residencial..............................................................16 Comodidade................................................................................16 Solues Existentes...................................................................17 Benefcios do dispositivo proposto e suas restries...........18

CAPTULO 3 REFERENCIAL TERICO....................................19


3.1 3.2 3.3 3.4 Microcontroladores....................................................................19 3.1.1 Arduino..............................................................................19 Rede GSM....................................................................................20 SMS..............................................................................................21 SIM Card......................................................................................22

CAPTULO 4 DESCRIO DE HARDWARE E SOFTWARE....23


4.1 Arduino UNO...............................................................................23 4.1.1 Especificaes...................................................................23 4.1.2 Pinagem utilizada...............................................................24 4.2 4.3 4.4 4.5 Arduino IDE.................................................................................25 Placa com Mdulo GSM SIM900................................................27 Comandos AT.............................................................................28 Placa com Mdulos Rels..........................................................30

CAPTULO 5 IMPLEMENTAO................................................33
5.1 5.2 Modelagem do sistema..............................................................33 Elaborao do cdigo fonte......................................................35

VIII 5.2.1 Escrita do cdigo fonte.......................................................36 5.3 Montagem do prottipo..............................................................41

CAPTULO 6 RESULTADOS OBTIDOS.....................................45


6.1 Simulaes.................................................................................45 6.1.1 Cadastrar o primeiro usurio que enviar mensagem de texto como administrador do sistema................................47 6.1.2 Adicionar usurios atravs de SMS do administrador......50 6.1.3 Remover usurios atravs de SMS do administrador.......51 6.1.4 Acionar remotamente o porto eltrico quando usurio cadastrado efetuar uma chamada ao mdulo GSM..........53 6.2 Problemas encontrados.............................................................55

CAPTULO 7 CONSIDERAES FINAIS...................................57


7.1 7.2 Concluses.................................................................................57 Propostas para trabalhos futuros.............................................57

REFERNCIAS BIBLIOGRFICAS...............................................59 APNDICE A LINKS DE VIDEOS DO AUTOR...........................61 APNDICE B CDIGO FONTE DE TESTE................................62 APNDICE C CDIGO FONTE FINAL.......................................68 ANEXO A ESQUEMTICO: ARDUINO UNO..............................72

IX

LISTA DE FIGURAS
Figura 2.1 Dispositivo (2), TiDiGino............................................................17 Figura 2.2 Ilustrao do funcionamento do dispositivo (1)......................18 Figura 3.1 Placa Arduino UNO.....................................................................20 Figura 3.2 Logo GSM desde 2000................................................................20 Figura 3.3 SIM Card usado no projeto........................................................22 Figura 4.1 Modelo Arduino UNO..................................................................23 Figura 4.2 Interface do Arduino IDE verso 0022 (AUTOR)......................26 Figura 4.3 Circuito esquemtico da placa com modulo GSM SIM900.....27 Figura 4.4 Mdulo GSM SIM900...................................................................28 Figura 4.5 Placa do porto ( esquerda) e botoeira em destaque ( direita)...............................................................................................................31 Figura 4.6 Tenso em volts ( esquerda) e a corrente em A ( direita) do porto eltrico utilizado no projeto..........................................................31 Figura 4.7 Placa com 8 mdulos rels........................................................32 Figura 4.8 Circuito do modulo rel..............................................................32 Figura 5.1 Fluxograma geral........................................................................34 Figura 5.2 Fluxograma Trata SMS.............................................................34 Figura 5.3 Fluxograma Trata Chamada.....................................................35 Figura 5.4 Cdigo fonte: Diretivas e Variveis...........................................36 Figura 5.5 Cdigo fonte: Funo setup......................................................37 Figura 5.6 Cdigo fonte: Funo loop........................................................39 Figura 5.7 Cdigo fonte: Funo trataChamada........................................40 Figura 5.8 Prottipo fase 1...........................................................................41 Figura 5.9 Prottipo fase 2...........................................................................42 Figura 5.10 Prottipo fase 3.........................................................................43 Figura 5.11 Prottipo fase final...................................................................44 Figura 6.1 Placa Aruino UNO em funcionamento......................................46 Figura 6.2 Sistema ativado...........................................................................46 Figura 6.3 Tela do monitor serial: Iniciando sistema................................47 Figura 6.4 Tela do monitor serial: Nmero no autorizado......................48

X Figura 6.5 Tela do monitor serial: Definio do administrador e cadastro do primeiro usurio.........................................................................................48 Figura 6.6 Tela do monitor serial: Confirmao do cadastro do administrador e nmero enviado...................................................................49 Figura 6.7 Tela do monitor serial: Cadastro no autorizado e confirmao dos nmeros do SIM Card........................................................50 Figura 6.8 Tela do monitor serial: Cadastro autorizado e confirmao dos nmeros no SIM Card..............................................................................51 Figura 6.9 Tela do monitor serial: Remoo no autorizada e confirmao dos nmeros no SIM Card........................................................52 Figura 6.10 Tela do monitor serial: Remoo autorizada e confirmao dos nmeros do SIM Card..............................................................................53 Figura 6.11 Tela do monitor serial: Acionamento do porto eltrico autorizado.........................................................................................................54 Figura 6.12 Tela do monitor serial: Acionamento do porto eltrico no autorizado.........................................................................................................55

XI

LISTA DE TABELAS
Tabela 4.1 Principais caractersticas da placa Arduino UNO...................24 Tabela 4.2 Pinagem da placa Arduino UNO utilizada neste projeto........25 Tabela 4.3 Descrio da interface do Arduino IDE....................................26 Tabela 4.4 Sintaxe dos comandos AT.........................................................29 Tabela 4.5 Comandos AT utilizados............................................................30 Tabela 5.1 Comandos da funo setup......................................................38

XII

LISTA DE SIGLAS E ABREVIATURAS


AT cm EEPROM FTDI GSM IDE KB A MHz PWM SRAM USB V Hayes AT Commands Centmetros Erasable Electronically Programmable Read Only Memory Future Technology Devices International Global System for Mobile Communications Integrated Development Enviroment Kilo Bytes Micro Ampere Mega Hertz Pulse Width Modulation Static Random Access Memory Universal Serial Bus Volts

13

CAPTULO 1 INTRODUO
1.1 Apresentao do Problema
Nos ltimos anos, tem sido uma tendncia a utilizao da tecnologia no dia a dia do ser humano, em diversos setores de sua vida. No que diz respeito ao controle e automao residencial, h diversas ofertas de produtos para um mercado crescente, que pode pagar por mais comodidade e segurana. Dentre as diversas tecnologias que tm sido trazidas s residncias, portes eltricos acionados por controle remoto uma destas tecnologias mais simples e presentes em casas e condomnios. Essa tecnologia permite um acesso mais gil, seja residncia, ao condomnio, etc., tornando esse acesso mais seguro, evitando que o usurio tenha que sair do veculo para abrir o porto. No entanto, o controle remoto responsvel pelo acionamento do porto eltrico no faz distino de quem o aciona, tornando possvel o acesso de qualquer indivduo que tenha este controle em mos. Outro problema gerado pelo acionamento remoto o fato do usurio ter que carregar consigo at mais de um controle, como no caso de condomnios em que necessrio um controle para o acesso ao condomnio e outro para a prpria residncia. Como solucionar ou evitar estes problemas?

1.2 Objetivos do Trabalho


Este projeto tem como objetivo geral apresentar uma soluo alternativa para os problemas apresentados na seo anterior, com a criao de um dispositivo de acionamento remoto de portes eltricos via celular atravs de microcontrolador que substitua o atual controle remoto. Como objetivo especfico, neste projeto desenvolvido um prottipo que tem como funes cadastrar e remover usurios de seu SIM Card, atravs do envio de mensagens de texto, e enviar um pulso eltrico para o acionamento remoto de um porto eltrico quando este dispositivo receber uma ligao de um usurio cadastrado. Utilizando a placa microcontrolada, Arduino UNO,

14 juntamente com o mdulo GSM SIM900, ao receber a primeira mensagem de texto o prottipo cadastra o cliente que a enviou como administrador do sistema o nico capaz de cadastrar e remover usurios. Aps a definio do administrador, possvel realizar o cadastro de novos usurios atravs do envio de um SMS com o nmero de telefone do cliente. Caso seja necessria a remoo de um usurio, basta que o administrador envie outro SMS com o nmero deste cliente para que o sistema o apague da memria. Assim, ao receber uma ligao, o prottipo verifica o cadastro e aciona o porto eltrico para os usurios registrados.

1.3 Metodologias
Para o desenvolvimento deste projeto foram realizadas pesquisas bibliogrficas como ponto de partida para o desenvolvimento da idia do prottipo. Diversas pesquisas foram feitas no site oficial do microcontrolador escolhido para a determinao dos componentes de hardware como a placa Arduino UNO e o mdulo GSM SIM900 e software o ambiente de desenvolvimento Arduino (IDE) que foram utilizados ao longo do desenvolvimento do projeto. Foram realizados estudos sobre a tecnologia da telefonia mvel, como a rede GSM e o envio de mensagens de texto, e tambm sobre as caractersticas fsicas dos componentes utilizados no projeto. Todos os componentes eletrnicos foram estudados atravs de manuais e sites oficiais para o desenvolvimento do prottipo. Estes componentes foram testados atravs de medies com multmetro, bem como suas ligaes. O desenvolvimento do sistema teve como incio a elaborao de um fluxograma geral do programa que serviu como base para a escrita do cdigo fonte. Outros dois fluxogramas foram desenvolvidos, um para o tratamento de SMS e outro para tratamento de chamadas, para auxiliar tanto na compreenso quanto na elaborao do destas duas funes. Aps a escrita do cdigo fonte, este foi compilado e carregado no microcontrolador para que ento fosse realizada a montagem do prottipo. O dispositivo teve como base um quadrado

15 de madeira onde foram fixados os componentes eletrnicos e, depois, colocados dentro de uma caixa de papelo adaptada. Os testes realizados foram executados atravs de celulares comuns com chips de trs operadoras diferentes. Estes testes tm como objetivo avaliar o desempenho do sistema nas seguintes tarefas: definio do administrador, cadastro de novos usurios, remoo de usurios e acionamento remoto do porto eltrico.

1.4 Estrutura da Monografia


Este documento dividido em sete captulos. O primeiro,

INTRODUO, trata da apresentao do problema, dos objetivos deste trabalho, as metodologias utilizadas para seu desenvolvimento e a estrutura da monografia. O segundo captulo, APRESENTAO DO PROBLEMA, trata em detalhes as motivaes que levaram ao desenvolvimento deste projeto, apresentando tambm solues existentes ao problema e os benefcios do dispositivo proposto e suas restries. O terceiro captulo, REFERENCIAL TORICO, aborda o embasamento terico necessrio para melhor compreenso e desenvolvimento do projeto, como introdues a microcontroladores, rede GSM e SIM Card. O quarto captulo, DESCRIO DE HARDWARE E SOFTWARE, detalha tecnicamente os componentes fsicos e lgicos com nfase no que ser utilizado. No quinto captulo, IMPLEMENTAO, so apresentados os passos necessrios para o desenvolvimento e compreenso do projeto. O sexto captulo, RESULTADOS OBTIDOS, contm simulaes que tm como finalidade observar o desempenho de todas as funcionalidades do projeto num ambiente real, assim como os problemas encontrados. O stimo captulo, CONSIDERAES FINAIS, contm as concluses do projeto e sugestes para trabalhos futuros.

16

CAPTULO 2 APRESENTAO DO PROBLEMA


Este captulo visa detalhar as motivaes para o desenvolvimento deste projeto, previamente descritas na seo Apresentao do Problema do captulo anterior. Algumas solues semelhantes ao proposto por este documento so apresentadas tambm e, no final deste captulo, so apresentados os benefcios do prottipo obtido e suas restries.

2.1 Segurana Residencial


O nmero de assaltos a residncias e homicdios no DF cresceu em 2009. Segundo dados da Secretaria de Segurana Pblica, os roubos a casas subiram 40% de 2008 para 2009... (CORREIO BRAZILIENSE, 2010)

No de hoje que se observa o aumento dos furtos residncia. Por todos os veculos de comunicao tem-se relatos e nmeros crescentes de assaltos todos os dias. Segundo o site de notcias, G1 (2011), o nmero de furtos em casas do Lago Norte, bairro nobre de Braslia, quase dobrou no ms julho. Foram 14 casas furtadas no ms, seis a mais do que no mesmo perodo do ano passado. Por esses motivos, muitos cidados tm procurado formas de melhorar a segurana do lar. A automao pode ser um meio de prover este aumento de segurana, como atravs de cmeras de vigilncia, sensores de proximidade e alarmes residenciais. O meio proposto por este projeto o controle do acesso residncia atravs do acionamento do porto eltrico.

2.2 Comodidade
O avano tecnolgico contnuo observado nas mais diversas reas, como na medicina, construo civil, engenharia da computao e, com isso, tem adentrado hospitais, escritrios e residncias.

17 A tecnologia surge tambm como uma fonte geradora de conforto. Desde um simples controle remoto da televiso at geladeiras que informam quando os alimentos esto acabando so possibilidades. O prottipo resultante deste projeto tem como objetivo trazer mais comodidade ao usurio, tendo o controle de acionamento remoto do porto eltrico ao alcance de uma ligao.

2.3 Solues Existentes


Depois de pesquisar dispositivos similares que tivessem o mesmo propsito do prottipo deste projeto, encontrou-se alguns prximos que so brevemente descritos.

Figura 2.1 Dispositivo (2), TiDiGino. Fonte: TIDIGINO

Os dispositivos so GSM Remote Control 2 IN and 2 OUT(1) e TiDiGino, the Arduino-based GSM Remote Control(2). Ambos possuem um design e funcionalidade muito prximos. No entanto, o dispositivo (1) possui o PIC18F46K20-I/PT como microcontrolador, enquanto o outro dispositivo (2) utiliza o microcontrolador ATmega 2560.

18

Figura 2.2 Ilustrao do funcionamento do dispositivo (1). Fonte: GSM REMOTE CONTROL

Ambos os dispositivos (1) e (2) citados funcionam como um controle remoto atravs do envio de mensagens de texto ou de ligaes telefnicas seguidas de cdigos numricos pr-estabelecidos pelos fabricantes.

2.4 Benefcios do Dispositivo Proposto e suas Restries


O prottipo obtido com o desenvolvimento deste projeto tem como finalidade promover o acionamento remoto de um porto eltrico atravs de uma ligao. Os elementos eletrnicos so de fcil acesso e o desenvolvimento do prottipo simplificado. Este dispositivo tambm dever identificar o nmero da ligao recebida, verificar se este est no cadastro para, em caso afirmativo, acionar o porto eltrico. O prottipo no tem como funcionalidade a leitura do estado de abertura do porto eltrico (aberto, fechado, abrindo ou fechando), ou seja, funciona de modo similar a um controle remoto. A leitura do estado do porto eltrico feita pelo usurio, decidindo acionar remotamente seja para abertura como para o fechamento do porto.

19

CAPTULO 3 REFERENCIAL TERICO


Para compreenso e desenvolvimento deste trabalho so necessrios alguns conceitos que se relacionam diretamente ao projeto. Esses conceitos, apesar de muito amplos, sero citados com o foco neste projeto.

3.1 Microcontroladores
Segundo Gimenez (2005), o microcontrolador um dispositivo semicondutor em forma de circuito integrado, que integra as partes bsicas de um microcomputador microprocessador, memrias no-volteis e volteis e portas de entrada e sada. Microcontroladores so usados com frequncia em tarefas especficas que no exijam grandes quantidades de dados, como em automao residencial mais especificamente, placas de portes eltricos , pois geralmente possuem pouca memria de armazenamento.

3.1.1 Arduino
O Arduino uma plataforma de computao fsica de fonte aberta, com base em uma placa simples de entrada/sada (input/output, ou I/O), assim como em um ambiente de desenvolvimento que implementa a linguagem Processing 1 . O Arduino pode ser utilizado para desenvolver objetos interativos independentes, ou conectado a softwares de seu computador (BANZI, 2011).

Processing uma linguagem de programao de cdigo aberto que foi inicialmente desenvolvida para ensinar fundamentos da programao computacional num contexto visual.

20

Figura 3.1 Placa Arduino UNO. Fonte: ARDUINO

O arduino foi escolhido por se tratar de um ambiente multiplataforma, ou seja, pode ser executado no Linux, Mac OS e Windows. Alm dessa vantagem, o arduino tem como base o IDE de programao Processing, um ambiente de desenvolvimento amigvel e de fcil utilizao. Finalmente, o arduino UNO pode ser programado atravs do cabo USB, sem a necessidade de se utilizar uma porta serial que vem sido cada vez menos presente nos computadores modernos.

3.2 Rede GSM


Originalmente sigla para Groupe Special Mobile (Grupo Especial de telefonia mvel, traduo livre), GSM agora a abreviao de Global System for Mobile Communications ou Sistema Global para Comunicaes Mveis.

Figura 3.2 Logo GSM desde 2000. Fonte: WIKIPEDIA

21 Criada em 1982, a rede GSM uma tecnologia digital para celulares usada para transmisso mvel de voz e dados. A rede GSM permite que indivduos sejam contatados atravs do mesmo nmero de celular em at 219 pases. As redes GSM terrestres cobrem mais de 90% da populao mundial e a tecnologia roaming 1 GSM de satlites estende essa cobertura para reas que a rede terrestre no alcana. Hoje, as conexes mveis globais superam 6 bilhes (GSM,2012).

3.3 SMS
De acordo com Hillebrand (2010), o conceito do Servio de Mensagens Curtas (do ingls, Short Message Service) foi desenvolvido em 1984 numa cooperao franco-germnica. A idia seria aproveitar o sistema telefnico da poca, que mandava mensagens de sinalizao atravs de canais telefnicos para controle de trfego durante certos perodos do dia, para enviar mensagens de texto a um baixo custo quando este sistema estivesse ocioso. No entanto, essas mensagens seriam limitadas a 128 bytes (futuramente aumentadas para 140 bytes ou 160 dgitos de 7 bits), o tamanho padro das mensagens de sinalizao utilizadas. Atualmente, as mensagens de texto esto presentes no cotidiano dos usurios de telefones celulares como uma forma barata e rpida de se comunicar. Segundo o site de estudos estatsticos, Statista 2 (2012), durante o ano de 2010 mais de 192 mil mensagens de textos foram enviadas a cada segundo em todo o globo.

Roaming, tambm chamado de itinerncia, um termo empregado na telefonia mvel que designa a capacidade de um usurio de uma rede obter conectividade em reas fora da localidade geogrfica onde est registrado. 2 Statista um site de pesquisas e estudos estatsticos parceiro de DOWJONES entre outras. Site da empresa: http://www.statista.com/

22

3.4 SIM Card


O Subscriber Identification Module (mdulo de identificao do assinante), ou SIM Card tambm chamado de Carto SIM um circuito integrado do tipo chip que utilizado para identificar um usurio na rede GSM e tambm para controlar e armazenar dados de telefones celulares. Na Figura 3.3 ilustrado o SIM Card utilizado neste projeto. Este possui 128 KB de memria e dimenses padres de 25 milmetros comprimento e 15 milmetros de largura.

Figura 3.3 SIM Card usado no projeto. Fonte: AUTOR

O SIM Card possui uma memria do tipo EEPROM, uma memria no voltil, que armazena, no s os nmeros de telefones e o cdigo de identificao do chip, mas as configuraes e dados das outras funcionalidades. Algumas dessas funcionalidades so: SIM Tool Kit (STK) Autenticao do usurio Servios OTA (Over The Air)

23

CAPTULO 4 DESCRIO DE HARDWARE E SOFTWARE


4.1 Arduino UNO
A placa Arduino UNO a mais recente dentre as sries de placas Arduino USB. Essa placa difere das outras da famlia Arduino por no utilizar o chip conversor FTDI USB para Serial, facilitando o upload 1 do cdigo fonte do computador para a placa. O esquemtico da placa pode ser encontrado no Anexo A Esquemtico: Arduino UNO.

4.1.1 Especificaes
A placa Arduino UNO baseada no microcontrolador ATmega328, produzido pela Atmel. A figura 4.1 ilustra o modelo da placa utilizada neste projeto.

Figura 4.1 Modelo Arduino UNO. Fonte: ARDUINO UNO

Upload, ou carregamento, a transferncia de dados de um computador local para outro, como a placa Arduino.

24 As principais caractersticas desta placa so apresentadas na tabela 4.1 abaixo:


Tabela 4.1 Principais caractersticas da placa Arduino UNO Nome Microcontrolador Voltagem de operao Alimentao (Recomendada) Alimentao (Limite) Pinos de E/S digitais Pinos de entrada analgica Corrente contnua por pino de E/S Corrente contnua para pino 3,3V Memria Flash SRAM EEPROM Frequncia de clock Fonte: AUTOR
1

Descrio ATmega328 5V 7 12 V 6 20 V 14 (de 0 at 13, dos quais 6 podem prover sadas PWM) 6 (de A0 at A5) 40 mA 50 mA 32 KB (ATmega328) 2 KB (ATmega328) 1 KB (ATmega328) 16 MHz

Esta placa possui 3 pinos GND (do ingls Ground, ou Terra), dois pinos que fornecem uma voltagem regulada de 3,3 V e 5 V cada, um pino Vin que fornece a voltagem advinda diretamente da alimentao seja por USB ou por fonte externa e um pino de entrada para referncia analgica (AREF).

4.1.2 Pinagem Utilizada


A tabela 4.2 detalha a pinagem utilizada descrevendo o pino e sua funcionalidade especfica neste projeto.

Frequncia de clock representa o nmero de ciclos realizados pelo microcontrolador no perodo de um segundo.

25
Tabela 4.2 Pinagem da placa Arduino UNO utilizada neste projeto Pino Vin 5V GND 4 5 2 Fonte: AUTOR Utilizao Alimentao do Mdulo GSM Alimentao da placa de Rels Aterramento da placa de Rels Porta RX Virtual para controle do Mdulo GSM Porta TX Virtual para controle do Mdulo GSM Acionamento de um dos rels da placa de Rels

4.2 Arduino IDE


O Arduino IDE um programa que permite a criao de novos programas chamados de sketches 1 para a placa Arduino numa linguagem simples, modelada a partir da linguagem Processing. Esse ambiente de desenvolvimento responsvel pelo envio do cdigo fonte para o compilador avr-gcc 2 que converte o cdigo para a linguagem de programao C para finalmente traduzir o resultado em linguagem de mquina, compreendida pelo microcontrolador. A figura 4.2 traz a interface do Arduino IDE numerada pelo autor para melhor descrio na tabela 4.3.

1 2

Do ingls, esboos ou rascunhos. Software de cdigo aberto winavr.sourceforge.net/ )

com

compilador

(encontrado

na

pgina

web:

26

Figura 4.2 Interface do Arduino IDE verso 0022. Fonte: AUTOR Tabela 4.3 Descrio da interface do Arduino IDE Nmero 0 1 2 3 4 5 6 7 Serial Monitor Nome Ttulo | Verso Descrio Item composto do nome da sketch e da verso do Arduino IDE Verify Stop New Open Save Compila o cdigo fonte Para a execuo ou compilao do programa Gera uma nova sketch Abre sketches salvas Salva a sketch atual Efetua a compilao do Upload cdigo e transmite para a placa Abre um monitor serial que simula a comunicao do computador com a placa Fonte: AUTOR

27

4.3 Placa com Mdulo GSM SIM900


A placa com mdulo GSM SIM900, tambm chamada de shield 1 GSM, uma placa que pode ser conectada facilmente sobre a placa Arduino UNO estendendo as funcionalidades do mdulo GSM ao conjunto resultante. Como esta placa empilhada sobre a placa Arduino UNO, atravs de todos seus pinos, a placa com mdulo GSM SIM900 utiliza esta estrutura para sua alimentao e funcionamento. A figura 4.3 ilustra o circuito desta placa.

Figura 4.3 Circuito esquemtico da placa com modulo GSM SIM900. Fonte: ARDUINO GSM SHIELD

O mdulo GSM SIM900, produzido pela SIM Com, o responsvel pela comunicao com a rede GSM tornando possvel a efetuao e o recebimento de ligaes telefnicas e mensagens de texto. O modelo utilizado neste projeto ilustrado na figura 4.4.

Shield do ingls, escudo. Utilizada neste contexto como placa empilhvel em formato compatvel com a placa Arduino UNO.

28

Figura 4.4 Mdulo GSM SIM900. Fonte: AUTOR

O funcionamento deste mdulo controlado atravs do programa carregado no microcontrolador por meio de comandos AT que sero discutidos a seguir.

4.4 Comandos AT
Os comandos AT so linhas de cdigo com solicitaes de servios reconhecidas pelo mdulo GSM SIM900. Esses comandos so fornecidos pelo fabricante e seguem um padro de sintaxe descrito brevemente a seguir na tabela 4.4.

29
Tabela 4.4 Sintaxe dos comandos AT Nome Comando de Teste Sintaxe AT+<comando>=? Descrio O mdulo GSM retorna uma lista de parmetros e valores possveis para o comando Comando de Leitura AT+<comando>? Retorna o valor do parmetro ou o parmetro atual Escreve os valores de Comando de Escrita AT+<comando>=<...> parmetros definidos por usurio Executa parmetros no Comando de Execuo AT+<comando> variveis afetados por processos internos do mdulo Fonte: SIMCom, SIM900_AT Command Manual_V1.03, p.13

Apesar do mdulo GSM SIM900 reconhecer uma vasta lista de comandos AT, apenas alguns desses foram utilizados direta ou indiretamente no desenvolvimento deste projeto. A tabela 4.5 traz esses comandos e suas respectivas descries.

30

Tabela 4.5 Comandos AT utilizados Comando AT AT+IPR=9600 AT&F AT+CLIP=1 AT+CMEE=0 AT+CMGF=1 AT+CPBS=SM ATE0 AT+CPBR=i AT+CPBW=i,06199998888 AT+CPAS AT+CLCC AT+CMGL=ALL AT+CMGR=i AT+CMGD=1,4 ATH Descrio Verifica comunicao com o mdulo Define a taxa de comunicao do mdulo (bauds) Define as configuraes de fbrica do mdulo Ativa a identificao de chamada Desabilita mensagem com cdigo de erro e, ao invs, utiliza mensagem ERROR Define modo texto para mensagens de texto Define o tipo de armazenamento da agenda para armazenamento em SIMCard Desabilita o eco das informaes recebidas no mdulo Retorna o registro na posio i do SIM Card Escreve o nmero de telefone 06199998888 na posio i do SIM Card Retorna o status da atividade do mdulo Retorna a lista atual de chamadas Lista todas mensagens de texto presentes Retorna o nmero de telefone que enviou a mensagem de texto e o contedo do SMS Apaga todas mensagens de texto do local de armazenamento atual Desliga quaisquer chamadas e/ou ligaes

Fonte: SIMCom, SIM900_AT Command Manual_V1.03

4.5 Placa com Mdulos Rels


Rels so dispositivos eletromecnicos capazes de controlar circuitos de grandes tenses e correntes (1) a partir de pequenas tenses e correntes de outro circuito (2). O funcionamento de um rel se d pela seguinte forma: quando o circuito de controle (2) com pequenas tenses e correntes envia uma corrente para a bobina do rel, este gera um campo magntico que atrai o contato, fechando o circuito de carga (1).

31 Para a definio dos rels a serem utilizados no prottipo foi necessria a anlise do circuito de carga do projeto, neste caso, o porto eltrico. A placa do porto ilustrada na figura 4.5, com um destaque para a botoeira.

Figura 4.5 Placa do porto ( esquerda) e botoeira em destaque ( direita). Fonte: AUTOR

Em seguida, foram medidas a tenso e a corrente da botoeira com um multmetro como ilustra a figura 4.6. A tenso obtida foi de 4,78 V e a corrente de 295 A.

Figura 4.6 Tenso em volts ( esquerda) e a corrente em A ( direita) do porto eltrico utilizado no projeto. Fonte: AUTOR

32 Como o prottipo visa abranger um grande nmero de portes eltricos e suas botoeiras o rel escolhido foi o comum SRD-05VDC-SL-C da SONGLE que requer a alimentao de 5 V que a placa Arduino UNO pode fornecer.

Figura 4.7 Placa com 8 mdulos rels. Fonte: AUTOR

A placa com mdulos rels utilizada neste projeto se caracteriza pela associao de um opto-acoplador (U1) utilizado para proteo das placas Arduino UNO e shield GSM , um transistor (Q1) que controla o fluxo da corrente no rel, um diodo (D1) e um rel, para cada de mdulo rel. Apesar da placa utilizada possuir 8 mdulos rels, apenas um utilizado para o acionamento do porto eltrico.

Figura 4.8 Circuito do modulo rel. Fonte: MODULO RELE

33

CAPTULO 5 IMPLEMENTAO
Neste captulo so descritos, detalhadamente, os procedimentos necessrios para o desenvolvimento deste projeto. Esses procedimentos foram divididos da seguinte forma: Modelagem do sistema; Elaborao do cdigo fonte; Montagem do prottipo;

5.1 Modelagem do sistema


Na primeira etapa da implementao foi realizada a modelagem do sistema proposto e, para tal, foram desenvolvidos trs fluxogramas para melhor ilustrar o funcionamento desejado do prottipo. O primeiro fluxograma mostrado na figura 5.1 ilustra o fluxo geral do sistema, numa viso macroscpica de suas funcionalidades como a verificao se o mdulo GSM recebeu alguma mensagem de texto ou alguma chamada.

34

Figura 5.1 Fluxograma geral. Fonte: AUTOR

No segundo fluxograma mostrado na figura 5.2 , ilustrado o fluxo do processo Trata SMS, detalhando as funes contidas nele. Este fluxograma demonstra a lgica de registro ou remoo de usurio atravs de uma mensagem de texto, assim como o registro do Administrador que ser o responsvel pelo registro de novos usurios ou remoo de usurios que no podero mais acionar o porto eltrico.

Figura 5.2 Fluxograma Trata SMS. Fonte: AUTOR

35 No ltimo fluxograma figura 5.3 , ilustrado o fluxo do processo Trata Chamada. Neste processo verificado se o usurio que est efetuando a chamada est ou no cadastrado no SIM Card e libera a linha do mdulo GSM para a no obstruo do seu canal de comunicao. neste processo que o usurio aciona o porto eltrico, caso esteja cadastrado.

Figura 5.3 Fluxograma Trata Chamada. Fonte: AUTOR

5.2 Elaborao do cdigo fonte


Aps a modelagem do sistema, j possvel a elaborao do cdigo fonte que ser salvo no microcontrolador. Para melhor observao do comportamento do sistema, foram desenvolvidos dois cdigos fonte similares: o cdigo fonte para fase de teste e o cdigo fonte para prottipo final. O cdigo de teste possui apenas duas diferenas funcionais: Comunicao serial: O cdigo fonte de teste faz com que o prottipo envie ao monitor serial do Arduino IDE todas etapas ocorridas em forma de texto, facilitando a visualizao de toda a atividade realizada pelo prottipo. Relatrio peridico: O cdigo fonte envia a cada perodo de tempo (pr-definido pelo autor) um relatrio com todos os telefones cadastrados no SIM Card para o monitor serial, possibilitando o acompanhamento da atualizao dos registros. Apesar dessas duas funes adicionais do cdigo fonte de teste, ambos os cdigos executam o que esperado do modelo apresentado na seo 5.1

36 Modelagem do sistema. Ambos os cdigos foram desenvolvidos, compilados e testados no Arduino IDE.

5.2.1 Escrita do cdigo fonte


Todo o cdigo foi escrito na linguagem de programao do Arduino, que implementa Processing e C. De acordo com o fluxograma apresentado na seo 5.1 Modelagem do sistema e a pinagem utilizada definida na tabela 4.2 Pinagem da placa Arduino UNO utilizada neste projeto possvel definir as diretivas de pr-compilao e as variveis.

Figura 5.4 Cdigo fonte: Diretivas e Variveis. Fonte: AUTOR

Aps definir as diretivas de pr-compilao e as variveis, necessrio definir que parte do cdigo fonte deve executar apenas uma nica vez. Na linguagem de programao Arduino, utiliza-se a funo setup para o que se executar apenas na inicializao do sistema.

37

Figura 5.5 Cdigo fonte: Funo setup. Fonte: AUTOR

Essa funo de inicializao basicamente define qual pino ser utilizado para enviar o pulso eltrico (pinoRele), inicia a comunicao serial para o envio de informaes ao monitor serial, liga e configura o mdulo GSM de acordo com a necessidade do prottipo. A tabela 5.1 mostra cada funo utilizada e uma breve descrio dessas.

38
Tabela 5.1 Comandos da funo setup Nome pinMode(i,OUTPUT) Serial.begin(9600) gsm.TurnOn(9600) Descrio Define o pino i como sada Inicia comunicao serial na taxa escolhida Inicia mdulo GSM na taxa escolhida e verifica comunicao com o mdulo atravs do comando AT Configura mdulo GSM de acordo com os comandos pr-determinados: - AT&F gsm.InitParam(1) - AT+CLIP=1 - AT+CMEE=0 - AT+CMGF=1 - AT+CPBS=SM gsm.Echo(0) Serial.println(texto) ou Serial.print(texto) Desabilita eco das informaes no mdulo GSM atravs do comando: ATE0 Envia texto para o monitor serial Verifica se existe algum nmero de telefone na posio i e carrega este nmero em gsm.GetPhoneNumber(i,telefone) telefone atravs do comando AT+CPBR=i. Retorna 1 caso encontre registro e 0 se no encontrar nada na posio i. Fonte: AUTOR

Depois de inicializado, o sistema entra em lao de repetio infinito, definido na linguagem de programao Arduino coma a funo loop. A figura 5.6 ilustra o lao de repetio de acordo com a modelagem proposta.

39

Figura 5.6 Cdigo fonte: Funo loop. Fonte: AUTOR

Neste lao de repetio infinito tem-se o corpo principal do sistema, onde se ir tratar o SMS recebido para cadastro ou remoo de usurios , a chamada recebida acionando o porto eltrico para o usurio cadastrado e, para a fase de teste, gerar um relatrio a cada minuto (60000 milissegundos) dos telefones cadastrados. Quando o mdulo GSM receber uma mensagem de texto, a funo trataSMS ir seguir os seguintes passos: 1. Verificar se este o primeiro SMS recebido, no caso positivo, registra o usurio que enviou o SMS como Administrado do sistema o nico capaz de cadastrar ou remover usurios e avana para o prximo passo. Caso j exista algum cadastro pula este passo. 2. Verifica se o corpo do SMS contem apenas nmeros (de 0 at 9), em caso positivo, avana para o prximo passo. Em caso negativo, pula para passo 6.

40 3. Verifica se o nmero no corpo do SMS j est cadastrado. Em caso positivo avana para o prximo passo e em caso negativo pula para o passo 5. 4. Apaga nmero j existente no cadastro, ou seja, remove o usurio. Avana para passo 6. 5. Verifica se existe espao para cadastrar um novo nmero. Em caso positivo, cadastra o nmero do corpo do SMS na primeira posio disponvel. Em caso negativo, avana para prximo passo. 6. Apaga SMS recebido para economizar espao de memria. Depois da funo trataSMS ser executada, a funo trataChamada executada. A figura 5.7 ilustra o cdigo fonte desta funo.

Figura 5.7 Cdigo fonte: Funo trataChamada. Fonte: AUTOR

41

5.3 Montagem do prottipo


Para a montagem do prottipo foi cortado um quadrado de madeira de 13,5cm de lado e aparafusados tanto a placa Arduino UNO quanto a placa com os 8 mdulos rels, como mostra a figura 5.8.

Figura 5.8 Prottipo fase 1. Fonte: AUTOR

Aps a fixao dos itens ao quadrado de madeira, conectou-se o mdulo GSM sobre a placa Arduino UNO e os fios foram conectados de acordo com o destacado na tabela 4.2.

42

Figura 5.9 Prottipo fase 2. Fonte: AUTOR

Depois de conectar os circuitos, foi inserido o SIM Card no mdulo GSM. O quadrado de madeira com os componentes foi colocado dentro de uma caixa branca de papelo, com base quadrada com 14 cm de lado e altura de 7 cm, cortada de acordo com as necessidades do prottipo. Foram tambm conectados a antena para recepo de sinal telefnico e a alimentao do prottipo um transformador de 12 V comum.

43

Figura 5.10 Prottipo fase 3. Fonte: AUTOR

Finalmente, aps todas as etapas, a caixa de papelo foi fechada para a viso esteticamente mais agradvel do prottipo, deixando apenas a antena e as conexes para os mdulos rels onde sero ligados os fios da botoeira do porto eltrico expostos.

44

Figura 5.11 Prottipo fase final. Fonte: AUTOR

45

CAPTULO 6 RESULTADOS OBTIDOS


Neste captulo so apresentados os resultados obtidos atravs de testes e simulaes para chegar soluo do problema apresentado, atingindo os objetivos propostos. Sero apresentados nesse captulo, tambm, alguns problemas encontrados no decorrer do desenvolvimento deste projeto. Devido dificuldade de documentao por meio de fotografias, do acionamento do porto eltrico via celular atravs de microcontrolador, alguns vdeos com demonstraes e testes foram feitos e disponibilizados no site YouTube. Estes links esto disponveis na apndice A.

6.1 Simulaes
Nessa seo, so testadas todas as funcionalidades propostas ao sistema, no intuito de simular um ambiente real. As funcionalidades simuladas tiveram como objetivo atingir as seguintes metas: Cadastrar o primeiro usurio que enviar mensagem de texto como administrador do sistema; Adicionar usurios atravs de SMS do administrador; Remover usurios atravs de SMS do administrador; Acionar remotamente o porto eltrico quando usurio cadastrado efetuar uma chamada ao mdulo GSM; Antes de realizar as simulaes, todos os componentes foram testados. A figura 6.1 ilustra a verificao da placa Arduino UNO atravs de seu acionamento.

46

Figura 6.1 Placa Aruino UNO em funcionamento. Fonte: AUTOR

Na figura 6.2, observa-se o mdulo GSM conectado sobre a placa Arduino UNO associado placa com 8 mdulos rel. Destacados nos retngulos vermelhos esto os LEDs indicando que o sistema est ativado.

Figura 6.2 Sistema ativado. Fonte: AUTOR

47

6.1.1 Cadastrar o primeiro usurio que enviar mensagem de texto como administrador do sistema
Esta simulao tem como finalidade observar o funcionamento do dispositivo desde o momento em que ligado at o cadastro do primeiro usurio que enviar um SMS como administrador do sistema. Tambm foi testado, nesta simulao, o caso em que um usurio efetua uma chamada antes do cadastramento do administrador. Este teste foi executado para cada uma das operadoras a seguir: Claro, Oi e TIM. O autor, que envia o SMS e efetua a chamada, repetiu a simulao 10 vezes para cada operadora citada, totalizando 30 simulaes. As etapas realizadas nesta simulao foram: 1. Ligar o prottipo utilizando um transformador de 12V, conectar o cabo USB na placa Arduino UNO e no computador do autor e, finalmente, iniciar a execuo do programa com a inicializao do monitor serial.

Figura 6.3 Tela do monitor serial: Iniciando sistema. Fonte: AUTOR

2. Efetuar chamada ao sistema antes de cadastrar o administrador.

48

Figura 6.4 Tela do monitor serial: Nmero no autorizado. Fonte: AUTOR

3. Enviar primeiro SMS ao sistema para a definio do administrador e o cadastrado do nmero enviado no corpo do SMS.

Figura 6.5 Tela do monitor serial: Definio do administrador e cadastro do primeiro usurio. Fonte: AUTOR

4. Confirmar cadastro do administrador e do nmero enviado por SMS atravs de relatrio peridico do sistema.

49

Figura 6.6 Tela do monitor serial: Confirmao do cadastro do administrador e nmero enviado. Fonte: AUTOR

Os resultados obtidos nessas simulaes do sistema demonstraram funcionamento do prottipo da forma esperada. Em todos os testes o sistema no demonstrou falhas na fase de inicializao do prottipo at a execuo da etapa 1. Em todos os testes realizados, na etapa 2, o sistema funcionou como esperado, no autorizando o usurio no cadastrado. Na etapa 3, o tempo para o recebimento da mensagem de texto pelo prottipo oscilou entre 10 e 30 segundos para 27 das 30 simulaes. Das 3 mensagens de texto que extrapolaram o tempo padro, duas foram da operadora Claro e uma da operadora TIM. Uma da operadora Claro chegou 2 minutos aps o envio enquanto a outra no chegou aps 10 minutos do envio. O SMS da operadora enviado da operadora TIM que passou do tempo padro demorou 5 minutos para ser recebido aps seu envio.

50

6.1.2 Adicionar usurios atravs de SMS do administrador


Esta simulao teve como finalidade observar o funcionamento do sistema j acionado, aps a definio do administrador, quando este tenta cadastrar um novo usurio do sistema. Tambm foi testado nesta simulao o caso em que outro indivduo, outro que o administrador, tenta realizar o cadastro de um novo usurio. Este teste foi executado para cada uma das operadoras a seguir: Claro, Oi e TIM. O autor, que envia o SMS com a solicitao de cadastro, repetiu a simulao 10 vezes para cada operadora citada, totalizando 30 simulaes. As etapas realizadas nesta simulao foram: 1. Enviar solicitao de cadastro via SMS por um telefone, que no o administrador, e aguardar confirmao do NO cadastramento via relatrio peridico.

Figura 6.7 Tela do monitor serial: Cadastro no autorizado e confirmao dos nmeros do SIM Card. Fonte: AUTOR

2. Enviar solicitao de cadastro via SMS atravs do telefone administrador e aguardar confirmao do cadastro via relatrio peridico.

51

Figura 6.8 Tela do monitor serial: Cadastro autorizado e confirmao dos nmeros no SIM Card. Fonte: AUTOR

Os resultados obtidos nessas simulaes do sistema demonstraram funcionamento esperado do prottipo. Em todas as simulaes da etapa 1, onde o usurio que no administrador tenta cadastrar um novo usurio, o sistema no autorizou tal operao e, atravs o relatrio, foi confirmado o no cadastramento. Em todas as simulaes da etapa 2, onde o administrador tenta cadastrar um novo usurio, a operao foi autorizada e confirmada no relatrio de nmeros cadastrados.

6.1.3 Remover usurios atravs de SMS do administrador


Esta simulao teve como finalidade observar o funcionamento do sistema j acionado, aps a definio do administrador e do cadastro de algum usurio, quando o administrador tenta remover um usurio j existente no sistema. Tambm foi testado nesta simulao o caso em que outro indivduo,

52 outro que o administrador, tenta realizar a remoo de um usurio cadastrado. Este teste foi executado para cada uma das operadoras a seguir: Claro, Oi e TIM. O autor, que envia o SMS com a solicitao de remoo, repetiu a simulao 10 vezes para cada operadora citada, totalizando 30 simulaes. As etapas realizadas nesta simulao foram: 1. Enviar solicitao de remoo via SMS por um telefone, que no o administrador, e aguardar confirmao de que NO houve remoo do cadastro via relatrio peridico.

Figura 6.9 Tela do monitor serial: Remoo no autorizada e confirmao dos nmeros no SIM Card. Fonte: AUTOR

2. Enviar solicitao de remoo via SMS atravs do telefone administrador e aguardar confirmao da remoo via relatrio peridico.

53

Figura 6.10 Tela do monitor serial: Remoo autorizada e confirmao dos nmeros do SIM Card. Fonte: AUTOR

Os resultados obtidos nessas simulaes do sistema demonstraram funcionamento esperado do prottipo. Em todas as simulaes da etapa 1, onde o usurio que no administrador tenta remover um usurio, o sistema no autorizou tal operao e, atravs o relatrio, foi confirmado que a remoo no foi efetuada. Em todas as simulaes da etapa 2, onde o administrador tenta remover um usurio j cadastrado, a operao foi autorizada e confirmada no relatrio de nmeros cadastrados.

6.1.4 Acionar remotamente o porto eltrico quando usurio cadastrado efetuar uma chamada ao mdulo GSM
Esta simulao teve como finalidade observar o funcionamento do sistema j acionado, aps a definio do administrador e do cadastro de algum usurio, quando algum usurio cadastrado efetua uma chamada ao prottipo e

54 aciona o porto eltrico. Tambm foi testado nesta simulao o caso em que outro indivduo, no cadastrado, tenta acionar o porto eltrico atravs de uma chamada ao prottipo. Este teste foi executado para cada uma das operadoras a seguir: Claro, Oi e TIM. O autor, que efetuou a chamada ao prottipo, repetiu a simulao 10 vezes para cada operadora citada, totalizando 30 simulaes. As etapas realizadas nesta simulao foram: 1. Efetuar chamada de um usurio cadastrado e confirmar o acionamento do porto eltrico atravs de mensagem mostrada no monitor serial.

Figura 6.11 Tela do monitor serial: Acionamento do porto eltrico autorizado. Fonte: AUTOR

2. Efetuar chamada de um usurio no cadastrado e confirmar o NO acionamento do porto eltrico atravs de mensagem mostrada no monitor serial.

55

Figura 6.12 Tela do monitor serial: Acionamento do porto eltrico no autorizado. Fonte: AUTOR

Os resultados obtidos nessas simulaes do sistema demonstraram funcionamento esperado do prottipo. Em todas as simulaes da etapa 1, onde o usurio cadastrado efetua chamada ao prottipo, o sistema autorizou tal operao e, atravs de mensagens no monitor serial, foi confirmado o acionamento do porto eltrico. Em todas as simulaes da etapa 2, onde um usurio no cadastrado tenta acionar o porto eltrico atravs de chamada ao prottipo, a operao no foi autorizada e mostrada atravs de mensagens no monitor serial.

6.2 Problemas encontrados


Durante o desenvolvimento do sistema, alguns problemas surgiram ao que se refere autorizao de usurios cadastrados. Inicialmente foi verificado que nem todos os usurios disponibilizam o celular para identificao de chamadas, ou seja, bloqueiam o nmero do telefone, com isso o prottipo no capaz de identificar a chamada e, conseqentemente, no capaz de acionar o dispositivo.

56 Outro problema encontrado referente ao cadastramento e remoo de usurios. Inicialmente foi sugerido que todos os usurios cadastrados pudessem adicionar ou remover cadastros do sistema, com isso surgiu um problema de controle de nmeros que esto ou no cadastrados no sistema. Para isso, foi definido que apenas o primeiro cadastro, definido como administrador do sistema, capaz de cadastrar novos usurios ou remover cadastros. Um dos problemas gerados com essa deciso surgiu na hiptese do administrador perder a linha telefnica (por perda/roubo do celular, por exemplo), com isso ser necessria a aquisio de um novo SIM Card para o dispositivo caso os usurios desejem adicionar ou remover cadastros. Finalmente, por se tratar de um dispositivo que no mostra ao usurio a confirmao de cadastramento ou remoo de outros usurios e que nem todas as mensagens de texto enviadas durante o desenvolvimento e simulao do prottipo foram recebidas, existe a possibilidade que tanto o cadastro quanto a remoo de usurios no ocorra, se fazendo necessria uma verificao adicional, como a tentativa de um novo usurio acionar o porto eltrico para garantir seu cadastro.

57

CAPTULO 7 CONSIDERAES FINAIS


7.1 Concluses
Neste trabalho foi desenvolvido um prottipo com o objetivo de solucionar os problemas apresentados no incio deste documento, como o controle do acionamento do porto eltrico apenas para usurios cadastrados e a substituio do tradicional controle remoto de portes eltricos por uma ligao que pode ser efetuada de um celular que j faz parte da lista de perifricos que a maioria das pessoas carrega diariamente. Apesar dos problemas encontrados no desenvolvimento deste projeto, os objetivos foram alcanados. Atravs de todos os testes realizados foi possvel avaliar o desempenho do prottipo como satisfatrio para as funcionalidades propostas, como a definio do administrador do sistema, a adio e remoo de usurios no cadastro do SIM Card e o acionamento remoto do porto eltrico apenas para clientes registrados. No entanto, existe a possibilidade das mensagens de texto no chegarem ao dispositivo e esta possibilidade foi atribuda s operadoras de telefonia. No caso de perda da linha telefnica do administrador do sistema, se far necessria a troca do SIM Card do prottipo, que atualmente custa por volta de R$10 R$20. possvel, portanto, concluir que os resultados obtidos com o desenvolvimento deste projeto cumpriram as propostas e objetivos planejados e que o prottipo encontra-se em funcionamento e operando de acordo com o previsto e programado.

7.2 Propostas para trabalhos futuros


Controle e automao residencial tem se provado uma rea em grande crescimento nos ltimos anos e, com isso, projetos como este tem ganhado espao no mercado atual. Algumas propostas de desenvolvimento para este projeto so:

58

Desenvolver uma placa apenas com os itens necessrios para o prottipo, no intuito de baixar o custo final do produto. Desenvolver sistema de envio de mensagens de texto ao administrador confirmando o cadastro ou a remoo de um usurio. Aplicar o conceito de acionamento remoto via celular atravs de microcontrolador para utenslios domsticos para maior automao residencial.

59

REFERNCIAS BIBLIOGRFICAS
AMOUNT of SMS sent per second worldwide from 2007 to 2010, Statista the leading statistics portal. Disponvel em: < http://www.statista.com/statistics/167048/number-of-sms-sent-per-secondworldwide-since-2007/> Acesso em: 10 jun. 2012. ARDUINO, Site do Projeto Arduino. Arduino. Disponvel em: <arduino.cc/> Acesso: 10 jun. 2012. ARDUINO GSM SHIELD. Open Eletronics, Open source eletronic projects. Disponvel em: <http://www.open-electronics.org/arduino-gsm-shield/> Acesso: 10 jun. 2012. ARDUINO UNO, Arduino UNO Front. Arduino UNO Board. Disponvel em: <http://arduino.cc/en/uploads/Main/ArduinoUnoFront.jpg> Acesso: 10 jun. 2012. BANZI, M. Primeiros Passos com o Arduino. 1 Ed. Novatec, 2011. GIMENEZ, S. P. Microcontroladores 8051. 1 Ed. So Paulo: Pearson, 2005. GSM REMOTE CONTROL 2 IN and 2 OUT Part 2 Schematic Open Eletronics, Open source eletronic projects. Publicado em: 7 jan. 2011. Disponvel em: <http://www.open-electronics.org/gsm-remote-control-2-in-and2-out-part-2-schematic/> Acesso em: 17 mar. 2012. GSM World. GSM. 2012. Disponvel em: <http://www.gsm.org/> Acesso em: 10 jun. 2012. HILLEBRAND, F.; TROSBY, F.; HOLLEY, K.; HARRIS, I. Short Message Service (SMS): The Creation of Personal Global Text Messaging. 1 Ed. Wiley, 2010.

60 MCROBERTS, M. Arduino Bsico 1 Ed. Novatec, 2011. MODULO RELE. Mdulo de Rels com 8 canais. Disponvel em: <http://produto.mercadolivre.com.br/MLB-427565012-modulo-de-reles-8canais-5v-arduino-arm-avr-pic-automaco-_JM> Acesso: 10 jun. 2012. NMERO de furtos em casas do Lago Norte quase dobra em julho. G1, o portal de notcias da globo. Publicado em: 1 ago. 2011. Disponvel em: <http://g1.globo.com/distrito-federal/noticia/2011/08/numero-de-furtos-emcasas-do-lago-norte-quase-dobra-em-julho.html> Acesso em: 8 jun. 2012. TIDIGINO, the Arduino-based GSM remote control. Open Eletronics, Open source eletronic projects. Publicado em: 5 jan. 2012. Disponvel em: <http://www.open-electronics.org/tidigino-the-arduino-based-gsm-remotecontrol/> Acesso em: 17 mar. 2012. TRS homens fazem moradores refns em casa no Lago Sul e fogem. Correio Braziliense, Braslia. Publicado em: 7 jan. 2010. Disponvel em: <http://www.correiobraziliense.com.br/app/noticia/cidades/2010/01/07/interna_c idadesdf,165080/index.shtml> Acesso em: 8 jun. 2012. WIKIPEDIA, a enciclopdia livre. Wikipdia. Disponvel em:

<http://pt.wikipedia.org/wiki/GSM> Acesso: 10 jun. 2012.

61

APNDICE A LINKS DE VIDEOS DO AUTOR


Canal de vdeos do autor disponvel em:

<http://www.youtube.com/user/gmfmaia> Vdeo: Apresentao: Dispositivo do Projeto Final, disponvel em

<http://www.youtube.com/watch?v=p6EhQ5zuqKM&feature=plcp>

62

APNDICE B CDIGO FONTE DE TESTE


/************************************************************************************************************ ****************************** #include <GSM_Shield.h> #define tamanhoTelefone 20 #define tamanhoSMS 25 #define capacidadeTelefones 20 #define pinoRele 2 ********************************************* GSM gsm; char telefone[tamanhoTelefone]; char sms[tamanhoSMS]; int erro; int posicao_sms; int i; boolean deletarNumero; unsigned long tempo; void setup() { pinMode(pinoRele,OUTPUT); Serial.begin(9600); gsm.TurnOn(9600); gsm.InitParam(1); gsm.Echo(0); Serial.println("Verificacao inicial de cadastro..."); for (i=1;i!=capacidadeTelefones;i++) { erro=gsm.GetPhoneNumber(i,telefone); if(erro==1) { if (i==1) Serial.println("Telefones cadastrados:"); Serial.print(i); Serial.print(". "); Serial.println(telefone); DIRETIVAS DE PR-COMPILAO //Biblioteca do Mdulo GSM //Nmero de dgitos do telefone //Tamanho do texto do SMS //Capacidade de armazenamento do SIM Card //Pino para onde ser enviado o pulso eltrico VARIVEIS ******************************************* ****************************** ************************************************************************************************************/

/************************************************************************************************************ ************************************************************************************************************/

63
} else if (i==1) { Serial.println("Nenhum administrador cadastrado."); break; } } tempo = millis(); } void loop() { trataSMS(); trataChamada(); if (millis()-tempo>60000) { tempo = millis(); Serial.println(); Serial.println("================================="); Serial.println("Relatorio de Numeros Cadastrados:"); for (i=1;i!=capacidadeTelefones;i++) { erro=gsm.GetPhoneNumber(i,telefone); if(erro==1) { Serial.print(i); Serial.print(". "); Serial.println(telefone); } } Serial.println("================================="); Serial.println(); } } /************************************************************************************************************ Nome da funcao: verificaSMS() Descricao:

64

Essa funcao verifica se existe algum SMS nao lido no modulo e; ou registra o ADMINISTRADOR caso nao existam outros cadastros, ou registra NOVO USUARIO no SIM Card caso exista espaco. ************************************************************************************************************/ void trataSMS() { deletarNumero = false; posicao_sms = gsm.IsSMSPresent(SMS_UNREAD); //Se chegou SMS if (posicao_sms>0) { Serial.println("SMS recebido!!!"); //Verifica se eh o primeiro SMS e registra ADM erro = gsm.GetPhoneNumber(1,telefone); //Nao existem cadastros if (erro == 0) { //Carrega numero e sms erro = gsm.GetSMS(posicao_sms,telefone,sms,tamanhoSMS); if (erro > 0) { //Tenta registrar administrador erro = gsm.WritePhoneNumber(1,telefone); if (erro == 1) Serial.println("Administrador definido!"); else Serial.println("Erro no cadastro do Administrador!"); } } //Verifica se SMS eh de usuario cadastrado erro = gsm.GetAuthorizedSMS(posicao_sms,telefone,sms,tamanhoSMS,1,2); if (erro == GETSMS_AUTH_SMS) { //Verifica se SMS contem apenas digitos (0..9) i=0; while(sms[i]!='\0') { if ((sms[i]<'0')||(sms[i]>'9')) {

65
Serial.println("Mensagem contem caracteres diferentes de (0..9)"); break; } i++; } if (sms[i]=='\0') { Serial.println("SMS recebido de numero autorizado."); Serial.println("Checando registros..."); //Verifica se jah existe o NOVO numero no SIM Card for (i=1;i!=capacidadeTelefones;i++) { erro=gsm.ComparePhoneNumber(i,sms); //Se encontrar o NOVO numero, habilita flag de deletarNumero if(erro==1) { Serial.print("Numero jah existe na posicao: "); Serial.println(i); deletarNumero = true; break; } } //Caso seja um numero jah cadastrado, deletar numero if (deletarNumero) { Serial.print("Deletando numero "); Serial.print(sms); Serial.println(" dos registros."); //Tenta deletar numero dos registros erro = gsm.DelPhoneNumber(i); Serial.print("Deletando numero..."); if (erro==1) Serial.println("Numero deletado."); else Serial.println("Erro no momento de deletar o numero."); // } //Caso numero nao esteja cadastrado, cadastrar NOVO numero else { //Procura primeira posicao livre no SIM Card for (i=2;i!=capacidadeTelefones;i++)

66
{ erro=gsm.GetPhoneNumber(i,telefone); if(erro==0) break; } if (i==capacidadeTelefones) { Serial.println("Capacidade maxima de telefones atingida!"); Serial.println("Cadastro nao efetuado."); } else { Serial.println("Registrando numero recebido..."); //Tenta registrar numero na primera posicao livre erro = gsm.WritePhoneNumber(i,sms); if(erro==1) { Serial.print("Telefone "); Serial.print(sms); Serial.println(" registrado com sucesso."); } else { Serial.println("Problema no cadastro!"); Serial.print("Erro: "); Serial.println(erro); } } } }//Fim do: if (sms[i]=='\0') }//Fim do: if (erro == GETSMS_AUTH_SMS) else Serial.println("SMS nao autorizado."); erro = gsm.DeleteSMS(posicao_sms); Serial.print("Deletando SMS..."); if(erro==1) Serial.println("SMS deletado"); else Serial.println("Problema no momento de apagar o SMS"); }//Fim do: if (posicao_sms>0) } /************************************************************************************************************ Nome da funcao: verificaChamada()

67

Descricao: Essa funcao verifica se existe alguma chamada no modulo, verifica se o numero da chamada esta registrado no SIM Card e manda um pulso eletrico para o pinoRele, acionando o portao. ************************************************************************************************************/ void trataChamada() { erro = gsm.CallStatusWithAuth(telefone,1,capacidadeTelefones); switch(erro) { case CALL_INCOM_VOICE_AUTH: Serial.println("Usuario registrado."); Serial.print("Numero: "); Serial.println(telefone); Serial.println("Acionando portao..."); digitalWrite(2,HIGH); delay(500); digitalWrite(2,LOW); gsm.HangUp(); break; case CALL_INCOM_VOICE_NOT_AUTH: Serial.println("Usuario nao registrado."); Serial.print("Numero: "); Serial.println(telefone); gsm.HangUp(); break; case CALL_ACTIVE_VOICE: case CALL_INCOM_DATA_AUTH: case CALL_INCOM_DATA_NOT_AUTH: case CALL_ACTIVE_DATA: gsm.HangUp(); break; default: break; } }

68

APNDICE C CDIGO FONTE FINAL


/************************************************************************************************************ ******************************* #include <GSM_Shield.h> #define tamanhoTelefone 20 #define tamanhoSMS 25 #define capacidadeTelefones 20 #define pinoRele 2 ***************************************** GSM gsm; char telefone[tamanhoTelefone]; char sms[tamanhoSMS]; int erro; int posicao_sms; int i; boolean deletarNumero; void setup() { pinMode(pinoRele,OUTPUT); Serial.begin(9600); gsm.TurnOn(9600); gsm.InitParam(1); gsm.Echo(0); } void loop() { trataSMS(); trataChamada(); } /************************************************************************************************************ Nome da funcao: verificaSMS() DIRETIVAS DE PR-COMPILAO //Biblioteca do Mdulo GSM //Nmero de dgitos do telefone //Tamanho do texto do SMS //Capacidade de armazenamento do SIM Card //Pino para onde ser enviado o pulso eltrico VARIVEIS *********************************************** ***************************** ************************************************************************************************************/

/************************************************************************************************************ ************************************************************************************************************/

69
Descricao: Essa funcao verifica se existe algum SMS nao lido no modulo e; ou registra o ADMINISTRADOR caso nao existam outros cadastros, ou registra NOVO USUARIO no SIM Card caso exista espaco. ************************************************************************************************************/ void trataSMS() { deletarNumero = false; posicao_sms = gsm.IsSMSPresent(SMS_UNREAD); //Se chegou SMS if (posicao_sms>0) { //Verifica se eh o primeiro SMS e registra ADM erro = gsm.GetPhoneNumber(1,telefone); //Nao existem cadastros if (erro == 0) { //Carrega numero e sms erro = gsm.GetSMS(posicao_sms,telefone,sms,tamanhoSMS); if (erro > 0) { //Tenta registrar administrador erro = gsm.WritePhoneNumber(1,telefone); } } //Verifica se SMS eh de usuario cadastrado erro = gsm.GetAuthorizedSMS(posicao_sms,telefone,sms,tamanhoSMS,1,2); if (erro == GETSMS_AUTH_SMS) { //Verifica se SMS contem apenas digitos (0..9) i=0; while(sms[i]!='\0') { if ((sms[i]<'0')||(sms[i]>'9')) { break; } i++;

70
} if (sms[i]=='\0') { //Verifica se jah existe o NOVO numero no SIM Card for (i=1;i!=capacidadeTelefones;i++) { erro=gsm.ComparePhoneNumber(i,sms); //Se encontrar o NOVO numero, habilita flag de deletarNumero if(erro==1) { Serial.println(i); deletarNumero = true; break; } } //Caso seja um numero jah cadastrado, deletar numero if (deletarNumero) { //Tenta deletar numero dos registros erro = gsm.DelPhoneNumber(i); } //Caso numero nao esteja cadastrado, cadastrar NOVO numero else { //Procura primeira posicao livre no SIM Card for (i=2;i!=capacidadeTelefones;i++) { erro=gsm.GetPhoneNumber(i,telefone); if(erro==0) break; } if (i==capacidadeTelefones) { break; } else { //Tenta registrar numero na primera posicao livre erro = gsm.WritePhoneNumber(i,sms); } }

71
}//Fim do: if (sms[i]=='\0') }//Fim do: if (erro == GETSMS_AUTH_SMS) erro = gsm.DeleteSMS(posicao_sms); }//Fim do: if (posicao_sms>0) } /************************************************************************************************************ Nome da funcao: verificaChamada() Descricao: Essa funcao verifica se existe alguma chamada no modulo, verifica se o numero da chamada esta registrado no SIM Card e manda um pulso eletrico para o pinoRele, acionando o portao. ************************************************************************************************************/ void trataChamada() { erro = gsm.CallStatusWithAuth(telefone,1,capacidadeTelefones); switch(erro) { case CALL_INCOM_VOICE_AUTH: digitalWrite(2,HIGH); delay(500); digitalWrite(2,LOW); gsm.HangUp(); break; case CALL_INCOM_VOICE_NOT_AUTH: gsm.HangUp(); break; case CALL_ACTIVE_VOICE: case CALL_INCOM_DATA_AUTH: case CALL_INCOM_DATA_NOT_AUTH: case CALL_ACTIVE_DATA: gsm.HangUp(); break; default: break; } }

72

ANEXO A ESQUEMTICO: ARDUINO UNO

Potrebbero piacerti anche