Escolar Documentos
Profissional Documentos
Cultura Documentos
ALEXANDRE SCHVIDERSKI
Cascavel
2015
ALEXANDRE SCHVIDERSKI
Cascavel
2015
ALEXANDRE SCHVIDERSKI
COMISSÃO EXAMINADORA
__________________________
Prof. Me. Fernando D’Agostini
Univel
(Orientador)
__________________________
Prof. Esp. Jean Piere Moretto
Univel
__________________________
Prof. Me. Anselmo Battisti
Univel
DEDICATÓRIA
1 INTRODUÇÃO ................................................................................... 13
1.1 Objetivos........................................................................................... 14
1.1.1 Objetivo geral ..................................................................................... 14
1.1.2 Objetivos específicos ......................................................................... 15
1.2 Delimitação do Estudo .................................................................... 15
1.3 Estrutura do Trabalho...................................................................... 15
2 FUNDAMENTAÇÃO TEÓRICA......................................................... 17
2.1 Referencial teórico ........................................................................... 17
2.1.1 Histórico ............................................................................................. 17
2.1.2 Reserva de mercado de informática .................................................. 17
2.1.3 Tecnologia embarcada em automóveis ............................................. 18
2.2 Referencial tecnológico................................................................... 20
2.2.1 Plataforma Arduino ............................................................................ 20
2.2.2 Módulo de Relé .................................................................................. 23
2.2.3 Módulo Bluetooth ............................................................................... 26
2.2.4 Módulo GPS....................................................................................... 27
2.2.5 Shield GPRS ...................................................................................... 30
2.2.6 Módulo RFID ...................................................................................... 31
2.2.7 Smartphone ....................................................................................... 33
3 PROTOTIPAGEM DA SOLUÇÃO ..................................................... 34
3.1 Funcionamento do sistema............................................................. 34
3.1.1 Diagrama de casos de uso ................................................................ 35
3.1.2 Requisitos do sistema ........................................................................ 38
3.1.3 Diagrama de Atividade ....................................................................... 40
3.1.4 Diagrama de Máquina de Estados ..................................................... 41
3.2 Ligações Físicas .............................................................................. 44
3.2.1 Veículo, problemas na parte elétrica .................................................. 44
3.2.2 Veículo, revisão elétrica ..................................................................... 47
3.2.3 Ligações nos Arduinos ....................................................................... 51
3.3 Ligações lógicas .............................................................................. 53
3.3.1 Código do Arduino 1 .......................................................................... 55
3.3.2 Código do Arduino 2 .......................................................................... 57
4 CONSIDERAÇÕES FINAIS ............................................................... 61
4.1 Dificuldades encontradas ............................................................... 61
4.2 Sugestões de melhoria .................................................................... 63
4.3 Conclusão......................................................................................... 64
REFERÊNCIAS BIBLIOGRÁFICAS ................................................................ 66
13
1 INTRODUÇÃO
1.1 Objetivos
2 FUNDAMENTAÇÃO TEÓRICA
2.1.1 Histórico
novos serão comercializados com dispositivos conectados à internet. Mas toda esta
evolução percorreu um longo caminho até chegar no estado atual, em uma linha do
tempo demonstrada pelo quadro 1 a seguir:
Figura 3 - Relé
O sistema GPS foi criado em 1978 pelo Departamento de Defesa dos Estados
Unidos, que detém os direitos até hoje. Tanto que se eles quiserem, podem deixar
todo o resto do mundo sem sinal.
O exército dos Estados Unidos possuem um aparelho de GPS especial, que
recebe um sinal secreto, exclusivo para o uso militar. No início, quando o país decidiu
liberar o sinal para os civis, em 1989, resolveram que o seria liberado um sinal piorado,
com erro de localização de cerca de 100 metros.
28
Porém, quando foi preciso usar o GPS pela primeira vez no campo de batalha,
na Guerra do Golfo (1990-1991), o exército tinha poucos receptores do tipo militar.
Isso os levou a comprar milhares de aparelhos civis para distribuir aos soldados, e o
Departamento de Defesa acabou liberando o sinal mais preciso para todos os
aparelhos, afim de não prejudicar os soldados. Após a guerra as restrições voltaram,
duraram até o ano 2000, quando os Estados Unidos liberaram o sinal exclusivo para
todos (VERSIGNASSI, 2014).
O que está por trás do GPS é um conjunto de 24 satélites que giram em torno
da terra a cerca de 20 mil km de altitude. Assim, sempre há ao menos quatro satélites
ao alcance de qualquer aparelho receptor no planeta; três deles ajudam a calcular a
localização e o outro ajusta o relógio do receptor. O sistema é baseado na sincronia
entre o receptor e o satélite (que carrega relógios atômicos), por isso o relógio simples
do receptor precisa ser calibrado o tempo todo.
Esta placa provê meios de utilizar a rede GSM de telefones celulares para
receber ou enviar dados. Pode ser utilizado para envio e recebimento de mensagens
SMS, fazer ou receber ligações de voz ou ainda utilizar o GPRS para dados através
de internet móvel. Para ser utilizada, a placa exige um chip de celular que esteja
desbloqueado e que possa efetuar as operações a que será proposto, no caso deste
trabalho, será utilizado um chip pré pago com créditos inseridos. (LINKSPRITE, 2014,
tradução nossa).
Para que o shield possa ser utilizado sem problemas, é preciso ser ligado a
uma fonte de energia que disponibilize corrente suficiente para seu funcionamento.
Durante picos de utilização, ela consome energia além do que o Arduino utiliza
normalmente, atingindo um pico de corrente que uma porta USB padrão não consegue
prover se estiver alimentando o Arduino ligado ao shield. Por isso será utilizada uma
fonte externa para alimentar esta placa e também o módulo GPS, que pode ser a
própria bateria do carro ou uma bateria a parte.
O uso deste módulo GPRS no projeto é para poder receber os comandos do
usuário, seja para bloquear, desbloquear ou requisitar a localização do veículo, via
mensagem SMS de um smartphone. No momento que receber a mensagem, o
Arduino faz a verificação da mesma, para poder comunicar-se com os outros
componentes do sistema e efetuar a ação desejada. A figura 9 mostra a representação
de um Shield GPRS/GSM.
31
2.2.7 Smartphone
3 PROTOTIPAGEM DA SOLUÇÃO
pessoa ou veículo, e as funções que cada um desempenha são descritos nos casos
de uso. Basicamente o sistema pode ser dividido em duas partes que comunicam-se
entre si: uma recebendo comandos via SMS e a outra via Bluetooth e comando direto.
Seja via SMS ou Bluetooth, os comandos sempre partem da ação do usuário
através de um smartphone. O meio de comunicação é que vai definir qual Arduino vai
interpretar a mensagem e gerar uma resposta, comando ou ação. Embora cada um
utilize um meio de comunicação com o usuário, os Arduinos possuem um canal de
comunicação entre si, pois somente um deles é que vai comandar o veículo
diretamente.
As opções que o usuário tem para interagir com o veículo são as seguintes:
Bloqueio ou desbloqueio do veículo via SMS: o usuário envia a mensagem pelo
smartphone, o Módulo SMS irá receber o SMS, e o Arduino 1 a que está conectado
irá interpretar a mensagem em determinado ponto de sua rotina programada através
do monitoramento de SMS. Identificando que é um pedido para bloquear o veículo, o
Arduino 1 gera um comando de bloqueio e envia para o Arduino 2, que da mesma
forma, irá interpretar o comando em determinado ponto de sua rotina e quando
confirmar o comando, irá gerar a ação no relé que bloqueia o veículo; o processo é o
mesmo para o desbloqueio e reset de comandos, o que muda é a interpretação lógica
da mensagem.
Solicitação da localização do veículo: o usuário envia a mensagem via SMS
através do smartphone, o Arduino 1 interpretará a mensagem que receber através do
Módulo SMS, e solicitar as coordenadas ao Módulo GPS. Recebendo as
coordenadas, redige a resposta no formato de texto, montando um link com as
coordenadas conforme for programado. Envia a mensagem de resposta pronta para
o Módulo de SMS solicitando que envie ao usuário, que quando receber, poderá
acessar o link através pela internet no smartphone e saber a localização do veículo.
Neste caso de uso os Arduinos não se comunicam, pois todos os componentes
envolvidos já estão conectados ao Arduino 1.
Desbloqueio e habilitação de comandos através de cartão ou chaveiro RFID:
quando o usuário aproximar o seu cartão ou chaveiro RFID do leitor, a rotina do
Arduino 2 irá detectar o leitor de RFID leu uma tag e recebeu alguma informação.
Segundo a lógica programada, irá definir se o código do cartão é válido ou não. Caso
não seja, não terá ação nenhuma e continuará sua rotina; caso o código seja válido,
o Arduino 2 irá modificar o estado de bloqueio para desbloqueio e gerar a ação para
37
Através do código da tag que o usuário passar perto do módulo, o sistema irá
desbloquear o veículo e resetar os comandos que estiverem ativos através do
Bluetooth.
usado para expressar o protocolo de uso de parte de um sistema. Este diagrama será
utilizado para representar o comportamento dos Arduinos conforme o meio de
transmissão dos comandos que o usuário desejar enviar ao veículo, ou seja, um
diagrama para comandos via Bluetooth, e outro para comandos via SMS.
Começando pelo Arduino 1, que está ligado ao módulo GPRS, segue o diagrama
de estados representando os comandos que podem ser enviados através de SMS,
tanto requisitando a localização ou bloqueio do veículo.
Como pôde ser visto, os diagramas de estado são de fácil entendimento, já que o
Arduino funciona de forma simples; e também complementam o diagrama de
atividades, que mostra os estados de uma forma generalizada. Foram escolhidos os
diagramas comportamentais da UML (Unified Modeling Language – Linguagem de
Modelagem Unificada) para representar o projeto pois podem ser usados em
processos genéricos e não precisam de um sistema orientado a objetos para serem
construídos, ao contrário dos diagramas estruturais – diagrama de classes, diagrama
44
de objetos, e outros – que são melhores para representar uma aplicação orientada a
objetos, ao contrário do Arduino que faz uso de uma linguagem estruturada.
O diagrama de componentes da UML não foi apresentado por já existir o diagrama
de ligação de componentes (diagrama 2) feito na ferramenta Fritzing, que demonstra
os componentes que foram utilizados e como estão ligados fisicamente.
O próximo tópico irá demonstrar como as ligações físicas entre os componentes e
também no veículo foram realizadas, para que atenda aos requisitos descritos
anteriormente.
Neste tópico são descritos os processos e procedimentos que foram feitos para
efetuar as ligações físicas entre os componentes, tanto na parte do veículo quanto do
Arduino. Começando pelo veículo, o próximo item descreve o que foi realizado no
mesmo para que o projeto se concretize.
Desde que o projeto foi idealizado sempre houve a preocupação com a parte
de instalação elétrica do mesmo, não só porque o sistema proposto irá interagir
diretamente com essa parte do veículo, mas também pela segurança do mesmo. Por
se tratar de um veículo muito antigo, ainda não existia instalado nele um item básico
de segurança da parte elétrica, uma caixa de fusíveis, que é o que impede que uma
falha acabe se tornando um acidente grave no veículo. Outra questão que poderia
interferir no projeto, é a fiação elétrica muito antiga, com muitos remendos e até
ligações desnecessárias, situações que colocam em risco os condutores e
passageiros do veículo e também podem interferir no projeto.
Um exemplo destes fatores somados está exposto na figura 11 apresentada a
seguir, um incidente que houve na parte elétrica e um dos motivos para que fosse feita
uma revisão completa na parte elétrica do veículo.
45
Para que se entenda a figura 11, o que ocorreu foi um curto circuito entre os
fios positivo e negativo que alimentavam o acionamento dos vidros elétricos, logo atrás
do botão que comandam a abertura e fechamento dos vidros. Como pode-se notar na
figura, um terminal do fio estava quebrado por ser muito velho, e por isso não
encaixava corretamente no botão, o que fez com que ele se soltasse e encostasse no
outro fio causando o curto circuito. Um curto circuito que não for impedido aumenta a
corrente que circula no condutor, o que aumenta a temperatura do fio até chegar ao
ponto extremo que derrete a sua proteção externa, como a figura demonstra, e pode
até incendiar o veículo se chegar a encostar em algo facilmente inflamável.
Se houvesse a proteção de um fusível neste circuito dos vidros elétricos,
quando a corrente aumentasse, o fusível iria realizar seu trabalho de conter a corrente
muito alta, se rompendo e cortando a alimentação para evitar que o curto circuito
chegasse ao ponto demonstrado na figura 11. E o fato do conector dos vidros estar
velho e quebradiço também é preocupante, pois se o vidro elétrico, que é algo
46
Ainda um último fator a ser citado é a questão de emendas nos fios, que
também pode afetar o projeto. Uma emenda mal feita em um condutor elétrico age
como uma resistência ao fluxo da corrente que passa por ele, o que faz com que
naquele ponto surja aquecimento. Se houver aquecimento, o condutor diminui sua
capacidade de condutividade e acaba afetando o circuito, que já não será alimentado
corretamente. Um exemplo encontrado no veículo eram os faróis de neblina, enquanto
um deles acendia normalmente, o outro quando acendia, demorava para acender, e
quando aceso não ficava com a mesma intensidade do outro. Tudo isto graças a uma
emenda, que aquecia o fio que chegava na lâmpada e impedia que os 12 volts da
bateria circulassem completos em todo o circuito daquela lâmpada.
Portanto, motivos não faltavam para que uma revisão completa na parte elétrica
fosse realizada, primeiramente pela segurança dos ocupantes do veículo, depois pelo
bom funcionamento do carro, para que o projeto pudesse ser realizado conforme
planejado. O estado que o veículo ficou após a revisão é descrito no próximo item.
Também foi feita uma caixa de fusíveis, para proteger cada circuito do veículo,
algo que antes não existia. Agora o risco de ocorrer outro incidente como houve com
o vidro elétrico foi eliminado, não só para os vidros, mas para os outros componentes
que são alimentados dentro do automóvel. A caixa de fusíveis fica localizada no
interior do veículo, lado esquerdo, no espaço entre a porta do motorista e os pedais
do veículo, como mostra a figura 14.
49
partida, até o contato para bloquear o veículo e controlar os vidros elétricos. As réguas
estão demonstradas na figura 15, abaixo.
o projeto ficou se tornou viável e seguro para ser instalado no veículo. O Arduino
utilizará estas réguas para interagir com o veículo, através dos relés ligados a estes
contatos. Os fios da régua foram numerados após a revisão ser feita, para facilitar a
identificação dos componentes a que se relacionam. A parte de ligação do veículo
com o Arduino é explanada no próximo tópico.
Este método é executado somente uma vez cada vez que o Arduino é ligado ou
resetado, ao contrário do loop, que como o próprio nome diz, é executado
consecutivamente após ser executado o setup, e é o que permite o código ser alterado
dinamicamente conforme alguma condição que foi programada seja modificada.
Os códigos são exibidos e separados conforme o microcontrolador em que
foram gravados, nos próximos tópicos.
Esta variável só é alterada para false no código quando após ser feita uma conexão
com o módulo GPS, para indicar que a conexão com o módulo GPRS foi perdida e
precisa ser reiniciada caso o módulo precise ser acessado novamente.
Então com a variável started é possível saber se a comunicação com o módulo
GPRS está ativa, e poder continuar sua rotina de verificar se há novas mensagens, e
também retomar a conexão com ele quando o módulo GPS for acessado. A rotina
para montar uma mensagem de resposta à localização já foi descrita, mas quando a
mensagem é para requisitar o bloqueio do veículo, é utilizada a biblioteca Wire.
Esta biblioteca, como já foi explicada, faz uma comunicação entre os dois
Arduinos. Quando a mensagem é verificada como bloqueio, inicia a comunicação com
o Arduino 2 e envia um char para indicar o pedido e fazer com que ele acione o relé
de bloqueio do veículo. O código completo gravado no Arduino 1 é maior, possui
métodos mais complexos para funcionar, e pode ser encontrado no Apêndice A. Já o
Arduino 2 possui um código mais simples, como pode ser visto no próximo tópico.
estado dos pinos e enviam o valor do estado para o pino específico, como pode ser
visto no código completo disponível no Apêndice B.
Após verificar o comando e realizar a ação específica, o método verifyKey é
que faz a leitura do cartão RFID caso esteja ao alcance do módulo. Neste método é
feita a validação do cartão apresentado, comparando seu valor com o da variável
keyCode, se o cartão for válido, então o desbloqueio do veículo e reset das variáveis
de estado são realizados, deixando o carro desligado, desbloqueado e se luzes ou
buzina estiverem acionadas remotamente, são desligadas também.
Toda esta verificação dentro do método loop é realizada a cada 500
milisegundos, como pode ser visto através do método delay. Com isto é encerrada a
parte lógica do sistema, onde tudo é realizado através dos códigos gravados nos
Arduinos. No próximo tópico são relatadas as dificuldades encontradas na realização
do trabalho.
61
4 CONSIDERAÇÕES FINAIS
valor falso, é iniciada novamente a comunicação com o módulo GPRS. Isto resolveu
o problema da perda de comunicação com o módulo, mas ainda surgiram outros
problemas com o Arduino 1.
Outro ponto a se cuidar quando é feita a programação para o Arduino, é atentar
para o uso de memória disponível. Atualmente, desenvolver programas para
computadores, smartphones não requer tanto cuidado com a criação de muitas
variáveis, tamanho do código ou capacidade de processamento necessários. Mas
com o Arduino é preciso ter este cuidado, pois sua memória e capacidade de
processamento são limitados, e não se pode desenvolver um código sem ter esta
noção de capacidade do hardware.
O Arduino 1 ficou com um código bem carregado, pois as bibliotecas utilizadas
para funcionar o módulo GPRS ocupam um espaço razoavelmente grande, e ainda
precisa utilizar as bibliotecas para comunicar-se com o módulo GPS e com o outro
Arduino. A IDE de desenvolvimento alerta o uso de memória do código, quanto fica
disponível e se a capacidade de memória utilizada passar de 75% alerta que o código
poderá não funcionar direito.
Então, foi preciso alterar algumas variáveis para que o Arduino funcionasse
corretamente, por exemplo, o tamanho do array de char que recebe as mensagens
novas, ou o buffer para montar o SMS com as coordenadas teve que ter seu tamanho
reduzido. Também foi preciso eliminar a parte do código utilizada para debug do
código, que enviava mensagens para a tela do computador via serial. Dessa forma foi
possível liberar memória para o Arduino, porém a mensagem que o usuário recebe
quando solicita a localização do veículo também ficou mais enxuta, com menos
informações.
Ainda houve outro problema: após juntar os dois Arduinos e ligá-los para testar,
o Arduino 1 não respondia às mensagens de localização. Após rever os códigos e
certificar-se que tudo estava correto, continuava sem resposta, respondia somente a
mensagem de bloqueio. Após receber uma mensagem, bem atrasada e com
informações erradas sobre a localização, percebeu-se que o problema não era no
código, mas sim na alimentação.
Os testes estavam sendo feitos com os Arduinos alimentados pela porta USB
do computador, porém ela não consegue fornecer corrente suficiente para alimentar
todos os módulos, e a informação do GPS, quando veio, acabou veio errada devido a
alimentação insuficiente. Com isto em mente, foi utilizado outra fonte de energia, sem
63
modificar nada nas ligações ou no código dos Arduinos, e realizado outro teste, desta
vez, obtendo êxito.
Estes foram os problemas encontrados que eram mais relevantes. Outras
questões como dúvidas no código, ou sobre a linguagem de programação foram
facilmente sanadas com pesquisas na internet. O conteúdo sobre Arduino é vasto, e
muitas dúvidas acabam sendo sanadas sem muita dificuldade. No próximo tópico
serão apresentadas algumas sugestões para melhoria futura deste trabalho.
finalidades, assim como o módulo GPRS, que não teve todos seus recursos utilizados
porque o Arduino UNO não possui capacidade suficiente para habilitar mais funções
do módulo.
Também seria muito interessante colocar o sistema alimentado por uma bateria
própria, sem depender da bateria do automóvel. Isto garante que, se por alguma razão
a bateria do veículo seja desconectada por algum motivo, o sistema não pare de
funcionar. Além de eliminar a necessidade de adquirir um regulador de tenção,
também faz com que o equipamento instalado não acabe esgotando a bateria do
veículo e faça com que ele não dê a partida corretamente, já que fica ligado o tempo
todo para monitorar os comandos que serão recebidos.
Dispostas as sugestões, o que resta é apresentar uma conclusão sobre o
trabalho, que segue no próximo tópico.
4.3 Conclusão
sem ter a certeza que o Arduino recebeu e bloqueou o veículo, pois é muito perigoso
enviar a mensagem, e enquanto estiver andando com o veículo o Arduino receber a
mensagem atrasada e bloquear enquanto se estiver trafegando. Isso pode causar
sérios acidentes, como parar em um cruzamento movimentado, desligar durante uma
curva perigosa. Deve-se ter certeza que não há nenhum comando pendente de
bloqueio antes de trafegar com o veículo.
Fora a parte de SMS, o Bluetooth funciona corretamente, assim como o
desbloqueio via RFID também. O método de construção do código gravado no
Arduino, separado em eventos para analisar os comandos, simplificou bastante o
método de comunicação através de Bluetooth.
Enfim, os objetivos do projeto foram atingidos, pois as funcionalidades foram
adicionadas e funcionaram corretamente, embora seja influenciado pelos diversos
fatores já citados anteriormente. O veículo pode continuar funcionando normalmente,
sem a automação atrapalhar, tirando a parte do bloqueio, que atende o requisito de
transpassar o funcionamento normal, ou seja, mesmo se tiver ligado pela chave, o
carro é bloqueado e não liga enquanto não for desbloqueado. O trabalho foi muito útil
para aplicar o conhecimento adquirido durante o curso, tanto na parte de
programação, como na lógica de funcionamento.
66
REFERÊNCIAS BIBLIOGRÁFICAS
BANZI, Massimo. Getting Started with Arduino. 2. Ed. U.S.A: O’Reilly Media,
2011.130 p. Disponível em: <http://it-ebooks.info/book/1338/>. Acesso em: 01 de
mar de 2015.
COOKSEY, Diana. Understanding the Global Positioning System (GPS). [2015 ?].
MSU GPS Laboratory – Department of Land Resources and Enviromental Sciences,
Montana State University, Bozeman. Disponível em:
<http://www.montana.edu/gps/understd.html>. Acesso em: 29 de mar de 2015.
FILIPEFLOP. GSM GPRS Shield para Arduino EFCom SIM 900 + Antena, 2015.
Disponível em: < http://www.filipeflop.com/pd-77833-gsm-gprs-shield-para-arduino-
efcom-sim900-antena.html?ct=41d98&p=1&s=1>. Acesso em: 04 de mai de 2015.
FILIPEFLOP. Kit Módulo Leitor Rfid Mfrc 522 Mifare, 2015. Disponível em:
<http://www.filipeflop.com/pd-6b883-kit-modulo-leitor-rfid-mfrc522-
mifare.html?ct=41d96&p=1&s=1>. Acesso em: 04 de mai de 2015.
GUEDES, Gilleanes Thorwald. Araujo. UML 2: Uma abordagem prática. 2. Ed. São
Paulo: ed. Novatec, 2011. 488p.
IGOE, Tom. Getting Started with RFID. 1. Ed. U.S.A: O’Reilly Media, 2012. 42 p.
Disponível em: <http://it-ebooks.info/book/1963/>. Acesso em: 20 de abr de 2015.
MARGOLIS, Michael. Arduino Cookbook. 2. Ed. U.S.A: O’Reilly Media, 2011. 724
p. Disponível em: <http://it-ebooks.info/book/1982/>. Acesso em: 01 de mar de 2015.
SENA, Hamilton. Curso Arduino Básico. In: CURSO ARDUINO BASICO, 1., out
2013, Cascavel. Anais… Toledo. Mobhis Automação Urbana Ltda, 2013. 209 p.