#include <TinyGPS.h>;
#include <SoftwareSerial.h>;
SoftwareSerial GPS(3,4);
TinyGPS gps;
long lat, lon;
float LAT, LON;
void setup(){
GPS.begin(9600);
Serial.begin(115200);
}
void loop(){
getGPS();
// data o pozovo sou ve stotisícinách stupnů
// proto dělíme 100000
// a vypíšeme na serial monitor
Serial.print("Latitude : ");
Serial.print(LAT/100000,7);
Serial.print(" :: Longitude : ");
Serial.println(LON/100000,7);
}
void getGPS(){
bool newdata = false;
unsigned long start = millis();
// Update každou sekundu
while (millis() - start < 1000)
{
if (feedgps ()){
newdata = true;
}
}
// když jsou nová data
if (newdata)
{
// ******************************
// toto je ta hlavní funkce
// zjistí data o pozici
gps.get_position(&lat, &lon);
// *****************************
LAT = lat;
LON = lon;
// čekací funkce
feedgps();
}
}
// Tato funkce zastaví program a čeká až skončí komunikace s modulem
// Program by mohl házet chyby nebo třeba nesmyslné znak na displej v případě
// probíhající komunikace s modulem
bool feedgps(){
while (GPS.available())
{
if (gps.encode(GPS.read()))
return true;
}
return 0;
}