Justera GPS datum och tid till din tidszon



Jag kan ha helt fel genom att sätta upp detta Instructables men jag har kämpat för att hitta ett enkelt sätt att korrigera GPS-tid och datum data till min tidszon här i Australien. Jag har gjort några Arduino projekt som har med en GPS-modul med någon form av data loggning. Varje gång jag har haft svårigheter konvertera UTC tid fångas från strängen NMEA data till lokal tid eller har helt enkelt gav upp och används en RTC i mitt projekt.

Det finns några lösningar på webben innehåller ett par här på Instructables men som en amatör programmerare har jag kämpat för att integrera koden i mina egna skisser.

Förhoppningsvis kommer att detta inlägg ge dem lika kämpar, en enkel lösning. Jag har försökt att hålla koden så enkla som möjligt med massor av alternativ för att passa din setup, Uno eller Mega, programvara och maskinvara seriella anslutningar. Jag har också satt tidszon beräkningen i en enkel funktion som kan kopieras och klistras rakt in i din egen skiss.

Måste du installera TinyGPS ++-bibliotek och AltSoftSerial bibliotek för skissen att kompilera korrekt. Jag har haft bättre kompatibilitet med de GPS-moduler har jag genom att använda det TinyGPS ++-biblioteket. AltSoftSerial biblioteket gör det lättare att ha flera seriell enhet ansluten till din Uno. Detta är inte ett problem när du använder en Mega men om du vill bifoga din seriella enheter på olika digitala stift, detta är den enklaste bibliotek har jag hittat.

Här är skissen nedan:

#include < Time.h > / / tid bibliotek
#include < TinyGPS ++ .h > / / GPS bibliotek
#include < AltSoftSerial.h > / / tillåter två seriella anslutningar

Ställ in GPS RX och TX stift om du använder programvara seriella anslutningar.
Se nedan för att använda hårdvara seriella anslutningar

statisk const int RXPin = 4, TXPin = 3; Exempel Uno
statisk const int RXPin = 48, TXPin = 46. Exempel Mega

statisk const uint32_t GPSBaud = 4800;
statisk const uint32_t GPSBaud = 9600;

Objektet TinyGPS ++
TinyGPSPlus gps;

Seriell anslutning till GPS-enheten
AltSoftSerial Serial_GPS;
#define Serial_GPS Serial1 / / avkommentera denna linje & kommentar
ovanför linjen att använda en hårdvara
Serial Port

Ändra det här värdet för att passa din tidszon
CONST int UTC_offset = 10; Östra Australien tid

tid prevDisplay = 0; Räkna för när tid senast visas

void setup()
{
Serial.BEGIN(9600);
Serial_GPS.BEGIN(GPSBaud); Starta GPS seriell anslutning

Serial.println ("väntar på GPS-tid... ");
}

void loop()
{
GPS_Timezone_Adjust(); Samtal tid justera funktion
}

void GPS_Timezone_Adjust() {

samtidigt (Serial_GPS.available()) {
om (gps.encode(Serial_GPS.read())) {

int år = gps.date.year();
byte månad = gps.date.month();
byte dag = gps.date.day();
byte timme = gps.time.hour();
byte minut = gps.time.minute();
byte näst = gps.time.second();

Ställ in tiden från GPS datasträng
setTime (timme, minut, sekund, dag, månad, år);
Calc Aktuell tidszon tid av offset-värde
adjustTime(UTC_offset * SECS_PER_HOUR);

}
}

--Ta bort det här avsnittet om inte Visa tiden---/ /
om (timeStatus()! = timeNotSet) {
om (now()! = prevDisplay) {
prevDisplay = now();
SerialClockDisplay();
}
}
--Ta bort funktionen SerialClockDisplay ()---/ /

} / / Hålla

void SerialClockDisplay() {
Seriella bildskärm nya beräknade tid-
en gång GPS tiden lagras i nu() Time Library
beräkningar eller visar kan göras.

om (hour() < 10) Serial.print(F("0"));
Serial.Print(Hour());
Serial.Print(F(":"));
om (minute() < 10) Serial.print(F("0"));
Serial.Print(Minute());
Serial.Print(F(":"));
om (second() < 10) Serial.print(F("0"));
Serial.Print(Second());

Serial.Print("");

om (day() < 10) Serial.print(F("0"));
Serial.Print(Day());
Serial.Print(F("/"));
om (month() < 10) Serial.print(F("0"));
Serial.Print(Month());
Serial.Print(F("/"));
Serial.println(Year());
}

Jag hoppas du har hittat denna användbara och det gör ditt nästa GPS datalogging projekt mycket lättare.

Relaterade Ämnen

Linkit en: Datum och tid

Exakt datum och tid är ett viktigt inslag på många program. Linkit en ger det är egna tidredovisning hårdvara, i Unix stil epok (tid sedan 1 januari 1970).Detta Instructable kommer att gå över linkit ett genomförandet av datum tid, och hur man läser...

Python programmering - datum och tider

# ta in de datum- och tidsfunktionernaimportera datetimefrån datetime import *# Ta dagens datum och formatera detformattedtoday = date.today () .strftime ("%A %B %d %Y")skriva ut ("dagens datum är:", formattedtoday)idag = date.today()#...

IOS 6 röda datum och tid Bar Glitch

jag kommer att visa dig hur göra ditt datum och tid bar röda. DETTA FUNGERAR BARA PÅ IOS 6.Steg 1: Slå på den Ok, första du måste aktivera Passcode lock för detta glitch.Steg 2: Siffran kommer in Du ange alla dina siffror i ditt lösenord utom en. Sed...

Att lägga till explosioner och Muzzleflashes till din video

någonsin märker att en eldstrid verkar super töntigt om det finns inga blixtar i slutet av pistolen?I detta Instructable jag, Tharl, kommer att visa dig hur... gratis!Läs vidare för att ta reda på!Steg 1: Skaffa bilder Du kan få alla möjliga arkivfil...

Göra en låda och armband till din käraste stjärna

Julen är dags och jag gillar att ge bort hemgjorda presenter. I år blir det ett armband i en snidad låda med ett speciellt meddelande.Jag ville spela med ord och stjärnor. På locket till rutan jag ristade: "Du är stjärnan i mitt liv". På ena sid...

Enkelt synka musik och podcaster till din Blackberry Storm med Ubuntu

detta instructable visar dig hur du synkroniserar musik, ljud- och videopodcaster, foton och andra dokument kan du din Blackberry Storm med Ubuntu och Miro (men du kan använda din podcatcher val).Steg 1: Konfigurera din Podcatcher För att automatiskt...

GSM närhet Alert med GPS läge och tid

Vad är det?En batteri rörelse detektor som rapporterar utlösande händelser via SMS, tillsammans med tid och plats, som härrör från GPS. här är en video av det i aktion:Om att använda det?Jag kan komma på några användningsfall för detta, förutom bara...

Att hitta norr riktningen och tid av stjärnor

av tonytran2015 (Melbourne, Australien).Att hitta norr riktningen och tid av stjärnor är mer än bara identifiera Polaris och Little Dipper runt norra himmelska stången eller södra korset runt den södra Polen! Det kräver kunskaper i representerar sfär...

Infinity spegel klocka med mönster, datum och Chime

Detta är en oändlighet spegel realtidsklocka med datumvisning, mönster och viloläge.Micro controller är en PIC18F2550. ett billigt 8 bit mikro controller.running i PLL läge på 48MHz.Det finns också en timlön melodin spelas baserat på UM66TXXL chip.Re...

Lägga till linjer till din 3D skriva ut så att den lyser upp

Vad vi vill uppnå:Hej DYI'ers i detta instructable i´m kommer att visa dig hur du lägger till vägar och fack till dina 3D utskrifter.Med denna you´ll att kunna lägga till LED / elektronik att göra det perfekta tillbehöret rätt i tid före Halloween.Fö...

Anslut till din pc som helst!!!

Detta är en Instructable om hur du ansluter till din dator från en fjärransluten dator var som helst i världen med internet! Denna metod är rent för Virtual NNetwork Connection (VNC) utbildning och för dem som lider socioekonomiska skillnader och vil...

DIY en söt present till dina föräldrar

Jag har mitt eget barn 2 år sedan. Jag trodde att det är lätt att vara förälder när jag var ung. Men, du vet, när du får en baby, du kommer aldrig samma känsla.Jag är långt ifrån min föräldern när jag var på college. Ibland kommer de kalla och fråga,...

Dela och spåra dina böcker med BookCrossing

BookCrossing är en webbplats som gör att du kan tilldela unika nummer till dina böcker, och använda dessa nummer för att spåra dina böcker som de reser över hela världen. Detta blir naturligtvis mycket mer spännande om dina böcker faktiskt få lämna d...

Vrid den till din stil!

Hej alla! Tänkte bara dela något som kan vara användbara. Aaaaaaand thats!--Ändra jackor, byxor, skjortor och allt till din stil mode! Nu, detta är egentligen en tutorial, men mer bara en inspirationskälla för några tips och tricks och bara några idé...

Lägg till spel till din Zune (reviderad för 3.0)

spel och program på Zune har funnits sedan maj 2008. ZuneBoards.com har en liten grupp av människor utveckla dessa spel därför, alla dessa spel är helt gratis.Jag la spel och program till min Zune mycket lätt men en massa människor får intrycket från...

Hålla din Xbox 360 Cool, spara energi, värme upp en yta, och använda din egen hårddisk

svalka din Xbox 360, spara energi, värme och område och använda din egen hårddisk, ja mycket lång titel, jag vet. Men det fanns inget annat att beskriva detta awesome projekt. Nu var hela detta projekt för mig helt gratis förutom intercoolern. Jag an...

Hur du enkelt lägger till Wi - Fi till din kamera

Vore det inte bra att skicka bilder och kontrollera din kamera via Wi - Fi?En hel del kameror inte har inbyggd Wi - Fi. Köpa en ny kamera, bara på grund av detta, skulle vara mycket dyrt.Vi har här samlat några lösningar för dig. De flesta är lätt at...

Smart sätt för att fästa komponenter till din robot

under utvecklingen av Farrusco , försökte vi en massa olika sätt att fästa komponenter till PVC stöder, från hot-lim, skruvar och dubbel sida-tape. Eftersom detta är avsett att säljas som ett kit de viktigaste sökord var: lätt, billig, länge som möjl...

Installera 5.50Gen-D till din psp

*** vara säker på att Besök isoplanet.com för mer fantastiska tutorials och downloades för alla konsoler ***** Inte ansvarig om din psp tegel under hacking. Om du följer anvisningarna bör du vara good.* *RAR behövs för att riva upp innehållet ***nu d...