#include <TinyGPS++.h>
#include <SoftwareSerial.h>
TinyGPSPlus gps;
SoftwareSerial gpsSerial(9,8);
const double LONDON_LAT = 51.508131;
const double LONDON_LON = -0.128002;
void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
gpsSerial.begin(9600);
}
void loop() {
// put your main code here, to run repeatedly:
if(gpsSerial.available() > 0){
if(gps.encode(gpsSerial.read())){
if(gps.location.isValid()){
double latitude = gps.location.lat();
double longitude = gps.location.lng();
Serial.print("Latitude: ");
Serial.println(latitude);
Serial.print("Longitude");
Serial.println(longitude);
double distanceKm = TinyGPSPlus::distanceBetween(latitude, longitude, LONDON_LAT, LONDON_LON) / 1000;
}
if(gps.altitude.isValid()){
Serial.println(gps.altitude.meters());
}
if(gps.speed.isValid()){
Serial.println(gps.speed.kmph());
}
if(gps.date.isValid()){
Serial.print(gps.date.year());
Serial.print(gps.date.month());
Serial.print(gps.date.day());
}
if(gps.time.isValid()){
Serial.print(gps.time.hour());
Serial.print(gps.time.minute());
Serial.print(gps.time.second());
}
if(gps.hdop.isValid()){
Serial.print(gps.hdop.hdop());
}
}
}
}