#include <TinyGPS++.h>
#define GPS_BAUDRATE 9600
#define RXD2 16
#define TXD2 17
TinyGPSPlus gps;
void setup() {
Serial.begin(GPS_BAUDRATE);
Serial2.begin(GPS_BAUDRATE, SERIAL_8N1, RXD2, TXD2);
Serial.println(F("NEO6M GPS Module Simulation on ESP32"));
}
void loop() {
if(Serial2.available()>0) {
if(gps.encode(Serial2.read())) {
Serial.print(F("Location:\t"));
if(gps.location.isValid()) {
Serial.print(F("Latitude: ")); Serial.print(gps.location.lat(),6); Serial.print(F(", "));
Serial.print(F("Longitude: ")); Serial.print(gps.location.lng(),6); Serial.print(F(", "));
Serial.print(F("Altitude: ")); Serial.print(gps.altitude.meters()); Serial.println(F("."));
}
Serial.print(F("GPS Date&Time:\t"));
if(gps.date.isValid() && gps.time.isValid()) {
Serial.print(gps.date.year()); Serial.print(F("-"));
Serial.print(gps.date.month()); Serial.print(F("-"));
Serial.print(gps.date.day()); Serial.print(F("-"));
Serial.print(gps.time.hour()); Serial.print(F(":"));
Serial.print(gps.time.minute()); Serial.print(F(":"));
Serial.println(gps.time.second());
}
}
}
}