#include "TinyGPSPlus.h" #include "SoftwareSerial.h" #include "HardwareSerial.h" SoftwareSerial serial_connection (44, 43); // RX pin, TX pin TinyGPSPlus gps; // GPS object HardwareSerial GPS(1); // change these to match your PCB: const int GPS_RX_PIN = 44; // ESP32 RX (goes to GPS TX) const int GPS_TX_PIN = 43; // ESP32 TX (goes to GPS RX), or -1 if not connected static unsigned long lastReport = 0; void setup() { Serial.begin(115200); // open serial monitor Serial.setTimeout(10); //serial_connection.begin(9600); // open communication to GPS GPS.begin(9600, SERIAL_8N1, GPS_RX_PIN, GPS_TX_PIN); Serial.println("GPS Start"); // sketch starting } void loop() { // while connection is available, encode GPS feedback while(GPS.available()) { //gps.encode(serial_connection.read()); char c = GPS.read(); gps.encode(c); //Serial.write(c); // should see NMEA sentences if wiring is good } if (millis() - lastReport > 2000) { lastReport = millis(); Serial.print("Chars: "); Serial.println(gps.charsProcessed()); Serial.print("Sentences: "); Serial.println(gps.sentencesWithFix()); Serial.print("Failed: "); Serial.println(gps.failedChecksum()); Serial.print("Loc valid? "); Serial.println(gps.location.isValid() ? "yes" : "no"); Serial.print("Lat: "); Serial.println(gps.location.lat(), 6); Serial.print("Lng: "); Serial.println(gps.location.lng(), 6); } if (gps.location.isValid()) { // print full message when button is down Serial.println("Latitude:"); Serial.println(gps.location.lat(), 6); Serial.println("Longitude"); Serial.println(gps.location.lat(), 6); Serial.println("Altitude:"); Serial.println(gps.location.lat(), 6); } else { Serial.println("GPS location invalid"); } delay(5000); }