segunda-feira, 18 de novembro de 2013

Rastreador Arduino SIM900 + GPS I

Olá,


Nesse post vamos juntar dois módulos para criar um rastreador que informe latitude e longitude concatenado em um link de mapas do Google.

O primeiro passo é instalar a biblioteca TinyGPS++, essa biblioteca serve para comunicar com modulo GPS e adquirir os dados mais facilmente, quebrando todas informações, muito útil e bem feita.

Vamos por partes, esse primeiro código é para testar seu modulo GPS, lembre-se que as configurações de baud rate assim como pinos Software Serial podem e vão variar de modulo para modulo. Fique atento a esses detalhes do contrario o código não vai funcionar.

  1. #include <TinyGPS++.h> // inclui biblioteca
  2. #include <SoftwareSerial.h> // inclui biblioteca
  3. TinyGPSPlus gps; // inicia gsp
  4. SoftwareSerial ss(2,3); // inicia portas soft serial
  5. char server[] = "https://maps.google.com.br/maps?q="; // define caminho do link para receber lat e long(concatenar)
  6. String data; // define String de dados
  7. float dado_lat; // variáveis de armazenamento
  8. char lat_aux[10]; // variáveis de armazenamento
  9. String latParaString; // variáveis de armazenamento
  10. float dado_lng; // variáveis de armazenamento
  11. char lng_aux[10]; // variáveis de armazenamento
  12. String lngParaString; // variáveis de armazenamento
  13. void setup()
  14. {
  15.   Serial.begin(9600); // inicia porta serial HW
  16.   ss.begin(4800); // inicia porta serial SW (atencao para baud rate)
  17. }
  18. void loop()
  19. {
  20.   while (ss.available() > 0)
  21.     if (gps.encode(ss.read()))
  22.       displayInfo();
  23. }
  24. // faz leitura lat e lon, processa os dados e concatena junto com link do google
  25. void displayInfo()
  26. {
  27.   if (gps.location.isValid())
  28.   {
  29.     dado_lat=gps.location.lat();
  30.     dado_lng=gps.location.lng();
  31.    
  32.     dtostrf(dado_lat,4,4,lat_aux);
  33.     latParaString = String(lat_aux);
  34.    
  35.     dtostrf(dado_lng,4,4,lng_aux);
  36.     lngParaString = String(lng_aux);
  37.    
  38.     data+=(server);
  39.     data+=(latParaString);
  40.     data+=",";
  41.     data+=(lngParaString);
  42.     Serial.println(data);
  43.    
  44.   }
  45.   else
  46.   {
  47.     Serial.print(F("INVALID"));
  48.   }
  49.   Serial.println();
  50. }


O Código acima, basicamente faz a leitura da latitude e longitude do GPS, apos adquirir esses dados, as informações são processadas de forma juntar(concatenar) tudo com link do Google maps, a saida no serial monitor fica assim:

https://maps.google.com.br/maps?q=XX.XXX,YY.YYY

Onde X é latitude e Y longitude.


Se esse código esta funcionando para você, ou seja, seu modulo esta configurado corretamente e possui sinal na antena GPS, podemos passar para o próximo passo que é enviar esses dados via SMS usando o modulo GSM SIM900.

No próximo post vamos mostrar como transmitir os dados para seu celular, de forma criar um rastreador!



Nenhum comentário:

Postar um comentário