GPXTracker/GPXTracker.ino
2024-02-10 18:09:06 +01:00

67 lines
1.7 KiB
C++

#include <TinyGPS++.h>
#include <SoftwareSerial.h>
#define BUFFER_SIZE 256
#define SERIAL_TX_PIN 4
#define SERIAL_RX_PIN 5
TinyGPSPlus gps;
SoftwareSerial serialGPS(SERIAL_RX_PIN, SERIAL_TX_PIN);
void setup() {
Serial.begin(9600);
while (!Serial) {
; // wait for serial port to connect. Needed for native USB port only
}
serialGPS.begin(9600);
//serialGPS.begin(115200);
}
void loop() {
//Serial.println("Running loop...");
while (serialGPS.available() > 0) {
//Serial.println("GPS data available");
if (gps.encode(serialGPS.read())) {
//Serial.println("GPS data read");
if (gps.location.isValid()) {
//Serial.println("GPS location valid");
float latitude = gps.location.lat();
String latitudeStr = String(latitude , 6);
float longitude = gps.location.lng();
String longitudeStr = String(longitude , 6);
Serial.print("Lat: ");
Serial.print(latitudeStr);
Serial.print(" Lon: ");
Serial.println(longitudeStr);
}
if (gps.date.isValid()) {
Serial.print("Date: ");
Serial.print(gps.date.year());
Serial.print("/");
Serial.print(gps.date.month());
Serial.print("/");
Serial.println(gps.date.day());
}
if (gps.time.isValid()) {
Serial.print("Time: ");
Serial.print(gps.time.hour());
Serial.print(":");
Serial.print(gps.time.minute());
Serial.print(":");
Serial.println(gps.time.second());
}
if (gps.location.isValid()
&& gps.date.isValid()
&& gps.time.isValid()) {
Serial.println("location, date and time are valid");
}
}
}
delay(500);
}