123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687 |
- #include <TimeLib.h>
- #include <TinyGPS.h>
- #include <SoftwareSerial.h>
- SoftwareSerial SerialGPS = SoftwareSerial(10, 11);
- TinyGPS gps;
- const int offset = 1;
- time_t prevDisplay = 0;
- void setup()
- {
- Serial.begin(9600);
- while (!Serial) ;
- SerialGPS.begin(4800);
- Serial.println("Waiting for GPS time ... ");
- }
- void loop()
- {
- while (SerialGPS.available()) {
- if (gps.encode(SerialGPS.read())) {
-
- unsigned long age;
- int Year;
- byte Month, Day, Hour, Minute, Second;
- gps.crack_datetime(&Year, &Month, &Day, &Hour, &Minute, &Second, NULL, &age);
- if (age < 500) {
-
- setTime(Hour, Minute, Second, Day, Month, Year);
- adjustTime(offset * SECS_PER_HOUR);
- }
- }
- }
- if (timeStatus()!= timeNotSet) {
- if (now() != prevDisplay) {
- prevDisplay = now();
- digitalClockDisplay();
- }
- }
- }
- void digitalClockDisplay(){
-
- Serial.print(hour());
- printDigits(minute());
- printDigits(second());
- Serial.print(" ");
- Serial.print(day());
- Serial.print(" ");
- Serial.print(month());
- Serial.print(" ");
- Serial.print(year());
- Serial.println();
- }
- void printDigits(int digits) {
-
- Serial.print(":");
- if(digits < 10)
- Serial.print('0');
- Serial.print(digits);
- }
|