- Como funciona:
- Componentes necessários:
- Explicação do circuito:
- Conversão de Coordenadas de Graus GPS em Graus Decimais:
- Explicação de programação:
Sistema de rastreamento de veículos torna-se muito importante hoje em dia, especialmente no caso de veículos roubados. Se você possui um sistema GPS instalado no seu veículo, você pode rastrear a Localização do seu Veículo, e isso ajuda a polícia a rastrear os Veículos Roubados. Anteriormente construímos um projeto semelhante no qual as coordenadas de localização do veículo são enviadas no celular, verifique aqui 'Rastreador de veículos baseado em Arduino usando GPS e GSM.
Estamos construindo uma versão mais avançada do Sistema de Rastreamento de Veículos, no qual você pode rastrear seu veículo no Google Maps. Neste projeto, iremos enviar as coordenadas de localização para o Servidor Local e você só precisa abrir uma 'página' no seu computador ou celular, onde encontrará um Link para o Google Maps com as Coordenadas de Localização de seus Veículos. Quando você clica nesse link, ele o leva ao Google Maps, mostrando a localização de seus veículos. Neste sistema de rastreamento de veículos usando o Google Maps, o módulo GPS é usado para obter as coordenadas de localização, o módulo Wi-Fi para manter o envio de dados para o computador ou celular via Wi-Fi e o Arduino é usado para fazer o GPS e o Wi-Fi se comunicarem..
Como funciona:
Para rastrear o veículo, precisamos encontrar as Coordenadas do Veículo usando o módulo GPS. O módulo GPS se comunica continuamente com o satélite para obter as coordenadas. Então, precisamos enviar essas coordenadas do GPS para o nosso Arduino usando UART. E então o Arduino extrai os dados necessários dos dados recebidos pelo GPS.
Antes disso, o Arduino envia o comando para o Módulo Wi-Fi ESP8266 para configurar e conectar ao roteador e obter o endereço IP. Depois disso, o Arduino inicializa o GPS para obter as coordenadas e o LCD mostra uma 'mensagem de atualização da página'. Isso significa que o usuário precisa atualizar a página da web. Quando o usuário atualiza a página da web, o Arduino obtém as coordenadas do GPS e as envia para a página da web (servidor local) via Wi-Fi, com algumas informações adicionais e um link do Google Maps. Agora, clicando neste link, o usuário redireciona para o Google Maps com a coordenada e, em seguida, ele / ela obterá a localização atual do veículo no ponto vermelho no Google Maps. Todo o processo é devidamente mostrado no Vídeo ao final.
Componentes necessários:
- Arduino UNO
- Módulo Wi-Fi ESP8266
- Módulo GPS
- Cabo USB
- Fios de conexão
- Computador portátil
- Fonte de energia
- LCD 16x2
- Tábua de pão
- Roteador Wi-Fi
Explicação do circuito:
O circuito para este 'projeto de rastreamento de veículos usando Google Maps' é muito simples e precisamos principalmente de um Arduino UNO, módulo GPS e módulo Wi-Fi ESP8266. Há um LCD 16x2 opcionalmente conectado para exibir o status. Este LCD está conectado em 14-19 (A0-A5) Pinos do Arduino.
Aqui, o pino Tx do módulo GPS é conectado diretamente ao pino digital número 10 do Arduino. Usando a Biblioteca serial de software aqui, permitimos a comunicação serial nos pinos 10 e 11, e os tornamos Rx e Tx respectivamente e deixamos o pino Rx do Módulo GPS aberto. Por padrão, os pinos 0 e 1 do Arduino são usados para comunicação serial, mas usando a biblioteca SoftwareSerial, podemos permitir a comunicação serial em outros pinos digitais do Arduino. Adaptador de 12 volts é usado para alimentar o Módulo GPS. Vá até aqui para aprender “Como usar GPS com Arduino” e obter as coordenadas.
Os pinos Vcc e GND do módulo Wi-Fi ESP8266 são conectados diretamente a 3,3V e GND do Arduino e o CH_PD também está conectado a 3,3V. Os pinos Tx e Rx do ESP8266 são conectados diretamente aos pinos 2 e 3 do Arduino. A Biblioteca serial do software também é usada aqui para permitir a comunicação serial nos pinos 2 e 3 do Arduino. Já cobrimos a interface do módulo ESP8266 Wi-Fi com o Arduino em detalhes, também consulte “Como enviar dados do Arduino para a página da Web usando WiFi” antes de fazer este projeto. Abaixo está a foto do ESP8266:
ESP8266 tem dois LEDs, um é vermelho, para indicar energia e o segundo é azul que é o LED de comunicação de dados. O LED azul pisca quando o ESP envia alguns dados por meio de seu pino Tx. Além disso, não conecte o ESP à alimentação de +5 volts, caso contrário, seu dispositivo pode danificar. Aqui neste projeto, selecionamos a taxa de 9600 bauds para todas as comunicações UART.
O usuário também pode ver a comunicação entre o módulo Wi-Fi ESP8266 e o Arduino, no Serial Monitor, na taxa de transmissão de 9600:
Verifique também o vídeo no final deste projeto, para detalhes do processo de trabalho.
Conversão de Coordenadas de Graus GPS em Graus Decimais:
O Módulo GPS recebe as coordenadas do satélite no formato Graus Minutos (ddmm.mmmm) e aqui precisamos do formato Grau Decimal para pesquisar a localização no Google Maps. Portanto, primeiro precisamos converter as coordenadas do formato de graus-minutos para o formato de graus decimais usando a fórmula fornecida.
Suponha que 2856,3465 (ddmm.mmmm) seja a Latitude que recebemos do Módulo GPS. Agora, os primeiros dois números são graus e os restantes são minutos.
Portanto, 28 é o grau e 56,3465 é o minuto.
Agora, aqui, não há necessidade de converter a parte Grau (28), mas apenas a parte Minuto em Grau Decimal dividindo 60:
Coordenada de grau decimal = grau + minuto / 60
Coordenada de grau decimal = 28 + 56,3465 / 60
Coordenada de grau decimal = 28 + 0,94
Coordenada de grau decimal = 28,94
O mesmo processo será feito para dados de longitude. Convertemos as coordenadas de Graus Minutos em Graus Decimais usando as fórmulas acima no Arduino Sketch:
float minut = lat_minut.toFloat (); minut = minut / 60; grau flutuante = lat_degree.toFloat (); latitude = grau + minuto; minut = long_minut.toFloat (); minut = minut / 60; grau = long_degree.toFloat (); logitude = grau + minuto;
Explicação de programação:
Neste código, usamos a biblioteca SerialSoftware para fazer a interface do ESP8266 e do módulo GPS com o Arduino. Em seguida, definimos pinos diferentes para ambos e inicializamos o UART com taxa de transmissão de 9600. Também incluída Biblioteca LiquidCrystal para interface LCD com Arduino.
#incluir
Depois disso, precisamos definir ou declarar a variável e a string para finalidades diferentes.
String webpage = ""; int i = 0, k = 0; int gps_status = 0; String name = "
1. Nome: Seu nome
"; // 22 String dob ="2. DOB: 12 de fevereiro de 1993
"; // Número da string 21 ="4. Número do veículo: RJ05 XY 4201
"; // 29 String cordinat ="Coordenadas:
"; // 17 String latitude =" "; String logitude =" "; String gpsString =" "; char * test =" $ GPGGA ";Então, criamos algumas funções para diferentes fins, como:
Função para obter dados GPS com coordenadas:
void gpsEvent () {gpsString = ""; while (1) {while (gps.available ()> 0) {char inChar = (char) gps.read (); gpsString + = inChar; if (i <7) {if (gpsString! = teste) {i = 0;……………….
Função para extrair dados da sequência de GPS e converter esses dados em formato de grau decimal a partir do formato de minuto decimal, conforme explicado anteriormente.
void coordinate2dec () {String lat_degree = ""; para (i = 18; i <20; i ++) lat_degree + = gpsString; String lat_minut = ""; para (i = 20; i <28; i ++) lat_minut + = gpsString;……………….
Função de envio de comandos para ESP8266 para configuração e conexão com WIFI.
void connect_wifi (String cmd, int t) {int temp = 0, i = 0; enquanto (1) {Serial.println (cmd); Serial1.println (cmd); enquanto (Serial1.disponível ()> 0)……………….
função void show_coordinate () para mostrar as coordenadas no LCD e no Monitor Serial e função void get_ip () para obter o endereço IP.
Função Void Send () para criar uma string de informações que deve ser enviada para a página da web usando ESP8266 e função void sendwebdata () para enviar string de informações para página da web usando UART.
Na função void loop , o Arduino espera continuamente pela página do formulário de solicitação (atualizando a página da web).
loop vazio () {k = 0; Serial.println ("Por favor, atualize sua página"); lcd.setCursor (0,0); lcd.print ("Por favor, atualize"); lcd.setCursor (0,1); lcd.print ("Sua página da web.."); enquanto (k <1000)……………….
Verifique o código completo abaixo.