Escolar Documentos
Profissional Documentos
Cultura Documentos
FRANCA/SP
2015
CAIO CESAR CORREIA REGATIERI
FRANCA/SP
2015
CAIO CESAR CORREIA REGATIERI
Orientador: _____________________________________________________
Nome:
Instituição:
Examinador: ____________________________________________________
Nome:
Instituição:
Examinador: ____________________________________________________
Nome:
Instituição:
Considering that the number of vehicle thefts in recent years has increased, the
technologies employed in safety devices must be improved. In this work, studying how
the current automotive alarms works, the mobile telephone network and the
development of electronic devices based on Arduino plataform. After the literature
review of the three concepts above, a study was conducted in order to create a product
that integrates these three technologies with the aim to improve the notification system
of current alarms. The study resulted a car alarm with improved notification system,
using SMS sent to the owner of the vehicle.
INTRODUÇÃO .......................................................................................................... 15
1.1 Objetivos do Trabalho ................................................................................... 15
1.2 Justificativa e Importância do Trabalho ...................................................... 16
1.3 Escopo do Trabalho ...................................................................................... 16
1.4 Resultados Esperados .................................................................................. 16
2 REFERÊNCIAL TEÓRICO ............................................................................. 17
2.1 Furto de veículos ........................................................................................... 17
2.2 Alarme automotivo ........................................................................................ 18
2.3 Alarme Automotivo Pósitron Exact 330 ...................................................... 19
2.4 Arduino ........................................................................................................... 21
2.4.1 Arduino UNO ................................................................................................ 22
2.4.1.1 Portas de Entradas e Saídas ....................................................................... 23
2.4.1.2 Comunicação ............................................................................................... 24
2.5 Integrated Development ................................................................................ 24
2.6 Modulator-Demodulator (MODEM) ............................................................... 27
2.7 Global System for Mobile (GSM) .................................................................. 30
2.8 General Packet Radio Services (GPRS) ...................................................... 33
2.9 Short Message Service (SMS) ...................................................................... 35
2.10 Cartão SIM ...................................................................................................... 36
2.11 Global Position System ou Sistema Global de Posição (GPS).................. 39
2.12 Arduino Shields ............................................................................................. 40
2.12.1 GPRS Shield ................................................................................................ 41
2.13 Resistor .......................................................................................................... 42
2.14 Diodo .............................................................................................................. 43
2.15 Optoacoplador ............................................................................................... 44
3 APRESENTAÇÃO DO PROJETO ..................................................................... 46
4 IMPLEMENTAÇÃO DO PROJETO .................................................................... 49
4.1 Hardware ........................................................................................................ 49
4.2 Software ......................................................................................................... 57
RESULTADOS .......................................................................................................... 64
REFERÊNCIAS ......................................................................................................... 67
APÊNDICE 1 ............................................................................................................. 71
15
INTRODUÇÃO
Objetivos Específicos:
2 REFERÊNCIAL TEÓRICO
De acordo com Pósitron (2015), o modelo Exact 330 é o que possui melhor
custo benefício da linha do fabricante. Além das funções de disparo sonoro e visual,
e sensores por ultrassom, este modelo de alarme possui circuito de proteção
Application Specific Integrated Circuits (ASIC) tornando-o mais resistente a
interferências. Conta com a tecnologia Pósitron Area Network (PAN) que auxilia na
comunicação com outros produtos Pósitron facilitando a sua instalação; com controle
remoto de longo alcance com tecnologia anti clonagem NEW FLEX-CODE; oferece
trava autolock que faz o travamento automático das portas 5 segundos após a ignição
do veículo e as destrava quando a ignição é desligada; temporizador de setas; beeps
personalizados com seis opções; acionamento de portões eletrônicos pelo controle do
alarme; modo assalto que é acionado quando se clica no botão de ligar do controle
remoto quando o veículo está em funcionamento, ativando o bloqueio do veículo após
um intervalo de tempo (PÓSITRON VÍDEOS , 2015).
A seguir são apresentadas as especificações técnicas deste alarme:
20
2 Controles
2 Sensores
1 Módulo
1 Sirene
1 Chicote
21
as
2.4 Arduino
SRAM 2 KB (ATmega328)
EEPROM 1 KB (ATmega328)
Velocidade de clock 16 MHz
Comprimento 68,6 milímetros
Largura 53,4 milímetros
Peso 25 g
Fonte: HECO, 2015
2.4.1.2 Comunicação
Arquivos escritos para essa IDE são chamados sketches e são salvos em um arquivo
de extensão “.ino” (MARGOLIS, 2015).
A IDE é composta por uma barra de menus (1), cinco botões de atalho para
as ações verificar, carregar, novo, abrir, salvar e monitor serial (2), uma área de edição
de texto (3), uma área de saída de informações (4) e uma janela chamada Monitor
serial (5), que é aberta quando se clica sobre o botão em forma de lupa, onde é
possível enviar e receber comandos para a porta serial do Arduino, como mostram as
figuras 4 e 5.
Modem interno: esse modelo fica alocado dentro dos computadores, não
sendo possível sua retirada.
Modem ADSL: são usados para prover Internet banda larga pela rede
telefônica
Modem a cabo: estes também são usados para banda larga, porém
usando a rede de TV a cabo.
Uma das características que faz com que o Arduino tenha tanta
popularidade e versatilidade são os Shields, que são placas de expansão. Estas
placas adicionam ao dispositivo novas capacidades e podem conter diversos
dispositivos como displays de LCD, sensores, módulos de comunicação ou relês, e
muitos outros. Esta capacidade de expansão possibilita uma infinidade de aplicações
de maneira simples e rápida (MCROBERTS, 2011).
É possível criar um novo Shield, personalizando-o conforme as
necessidades apresentadas no projeto (FAZEDORES, 2015).
41
2.13 Resistor
2.14 Diodo
2.15 Optoacoplador
3 APRESENTAÇÃO DO PROJETO
vezes que o sinal foi capturado, se é um alerta, se foi enviado uma mensagem,
quantas mensagens foram enviadas e definida uma pausa de um segundo para que
a rotina se repita.
49
4 IMPLEMENTAÇÃO DO PROJETO
4.1 Hardware
Durante a fase inicial de testes, o Arduino foi alimentado pela porta USB do
notebook usado para o desenvolvimento do software e após os testes e correções do
software, a placa foi conectada ao sistema de alimentação do próprio veículo.
Seguem as figuras que mostram a montagem do hardware do protótipo.
4.2 Software
void loop() {
}
boolean isAlert(){
boolean sendSMS(){
String num = alertTo;
if (num.length() == 0) return false;
//Envia um SMS para o número selecionado
//Formato sms.SendSMS(<número> char(20),<mensagem> char(160))
return sms.SendSMS(alertTo, "Alarme disparado!");
}
Esta função também tem como retorno um valor verdadeiro ou falso, e este
valor é armazenado na variável envioOk. Caso o retorno tenha sido verdadeiro, então
a variável envio é acrescida em 1:
envioOk = sendSMS();
if (envioOk){
envios = envios + 1;
}
void hasMessage(){
char conteudo[160];
char remetente[20];
char msg[160];
String mensagem = "";
String comando = "";
String parametro = "";
String retorno = "";
Serial.println("Verificando se ha SMS");
mensagem = conteudo;
Serial.println("");
Serial.println("****SMS Recebido****");
Serial.print("remetente: ");
Serial.println(remetente);
Serial.print("mensagem: ");
Serial.println(mensagem);
Serial.print("caracteres: ");
Serial.println(mensagem.length());
62
Serial.println("********************");
Serial.println("");
// rotina que executa o parser da cadeia para identificar
// o envio de um comando
if (mensagem.substring(0,1) == "#"){
for (int i=1; i <= mensagem.length(); i=i+1){
if (mensagem.substring(i,i+1) == ":"){
comando = mensagem.substring(0,i+1);
parametro = mensagem.substring(i+1,mensagem.length()-1);
}
}
}
}
}
delay(10000); //espera 10 segundos
}
}
void showStatus(){
Serial.println("");
Serial.print("Com corrente : ");
Serial.println(isOn() ? "Sim" : "Nao");
Serial.print("Qtde On......: ");
Serial.println(verificacoes);
Serial.print("E um alerta : ");
Serial.println(isAlert() ? "Sim" : "Nao");
Serial.print("Alertar a : ");
Serial.println(alertTo);
Serial.print("SMS Enviado : ");
Serial.println(envioOk ? "Sim" : "Nao");
Serial.print("Qtde envios : ");
Serial.println(envios);
Serial.println("");
}
RESULTADOS
REFERÊNCIAS
Brasil Escola. Resistores. Aprendendo um pouco mais sobre resistores - Brasil Escola.
Disponivel em: http://www.brasilescola.com/fisica/resistores.htm acesso em:
22/4/2015.
CNN. Breaking News, U.S., World, Weather, Entertainment & Video News –
CNN.com. Disponível em: http://edition.cnn.com/2012/12/03/tech/mobile/sms-text-
message-20 Acesso em: 16/6/2014.
COMPUTER HOPE. Computer Hope - Free computer help and information. Disponível
em: http://www.computerhope.com/jargon/m/modem.htm acesso em 22/4/2015.
Margolis, Michael. Arduino cookbook. Califórnia, USA: O’Reilly Media, 2011. 631 p.
MUNDO ESTRANHO. Mundo Estranho - O site para quem é louco por curiosidades.
Disponível em: http://mundoestranho.abril.com.br/materia/como-funciona-o-gps
acesso em: 23/4/2015.
PÓSITRON VÍDEOS. Conheça os alarmes Pósitron Cyber PX, FX e Exact linha 330.
Disponível em: https://www.youtube.com/watch?v=PRehHeLQW0o acesso em
22/4/2015.
SIM ONLY PRO. Sim only abonnement? | Vergelijk ALLE sim only op Simonlypro.nl™
(TIP). Disponível em: http://simonlypro.nl/what-is-a-microsim-card-en/ acesso em:
3/4/2015.
APÊNDICE 1
/*
Caio Cesar Correia Regatieri
Curso de Análise e Desenvolvimento de Sistemas - Fatec
Projeto para conclusão de curso
*/
/*Importação de bibliotecas*/
#include "string.h"
#include "SIM900.h"
#include "SoftwareSerial.h"
#include "sms.h" //Carrega a biblioteca SMS
/*Definição de variáveis*/
SMSGSM sms; //variável que contém a classe de envio sms
int verificacoes; //variável que armazena o número de verificações que offline.
int envios; //variável que armazena quantos envios foram feitos.
boolean envioOk; //variável que armazena se houve falha ao enviar.
char alertTo[10]; //variável que armazena o numero a ser alertado.
boolean iniciado; //variável que armazena se o shield foi iniciado.
iniciado = false;
pinMode(13, OUTPUT); // LED liga quando o shield está ok
pinMode(12, OUTPUT); //LED liga quando é um alerta
Serial.begin(9600); //Inicializa a serial com a taxa de atualização em 9600
Serial.println("Iniciando o Shield..."); //exibição no monitor serial
Serial.println("Aguarde.");
//Inicia a configuração do Shield
if (gsm.begin(2400)){
//o shield conectou na rede
Serial.println("Shield pronto!");
iniciado=true;
}else {
//o shield não conectou na rede
Serial.println("Shield não iniciado!");
}
}
/*verifica se é um alerta*/
73
boolean isAlert(){
//se tiver N verificações positivas, ele vai entender que é um alerta.
//nesta caso foi verificado que as seguintes operações acionam o pisca.
//acionamento = 1 pisca
//destravar = 2 pisca
return (verificacoes >= 5 ? true : false);
}
Serial.println("Verificando se ha SMS");
mensagem = conteudo;
Serial.println("");
Serial.println("****SMS Recebido****");
Serial.print("remetente:");
Serial.println(remetente);
Serial.print("mensagem:");
Serial.println(mensagem);
Serial.println("********************");
Serial.println("");
if (mensagem.substring(0,1) == "#"){
for (int i=1; i <= mensagem.length(); i=i+1){
if (mensagem.substring(i,i+1) == ":"){
comando = mensagem.substring(0,i+1);
parametro = mensagem.substring(i+1,mensagem.length()-1);
}
}
}
if (comando == "#alertto:"){
75
if (isNumeric(parametro)){
parametro.toCharArray(alertTo,10);
retorno = "O alerta sera enviado para: ";
retorno.concat(parametro);
retorno.toCharArray(msg,160);
sms.SendSMS(remetente, msg);
}else{
sms.SendSMS(remetente, "Telefone invalido");
}
}
if (comando == "#alertmessage:"){
if (parametro.length() > 0){
retorno = "Mensagem de alerta altera com sucesso";
retorno.toCharArray(msg,160);
sms.SendSMS(remetente, msg);
}else{
sms.SendSMS(remetente, "mensagem não definida");
}
}
delay(10000); //espera 10 segundos
}
Serial.println(verificacoes);
Serial.print("E um alerta : ");
Serial.println(isAlert() ? "Sim" : "Não");
Serial.print("Alertar a : ");
Serial.println(alertTo);
Serial.print("SMS enviado : ");
Serial.println(envioOk ? "Sim" : "Não");
Serial.print("Qtde envios : ");
Serial.println(envios);
Serial.println("");
}