GPS-tid (UTC) till lokal tid konvertering genom att använda Arduino (2 / 4 steg)
Steg 2: GPS datastruktur och Arduino parsning funktioner
Nu är jag inte bekant med NMEA dataformat, så jag sökte på internet igen och hittade några bra webbplatser här och där. Det finns massa GPS-information kan du få från meningar som Holux M-1000 genereras regelbundet som GGA, RMC, VTG, GSA och GSV, men jag behöver inte alla av dem. Allt jag behöver är latitud och longitud faktiskt, men ytterligare information som tid och datum, bäring, hastigheten kommer att vara bra att veta också. Meningen, RMC har alla dessa. I första länken ovan beskrivs RMC meningen som nedan med ett exempel.RMC - NMEA har sin egen version av väsentliga gps pvt (position, hastighet, tid) data. Det kallas RMC, rekommenderade minsta, som liknar: $GPRMC, 123519, A, 4807.038, N, 01131.000, E, 022.4, 084.4, 230394, 003.1, W * 6A Var:
RMC rekommenderas minst meningen C
123519 fix vid 12:35:19 UTC
En Status A = aktiv eller V = tomrum.
4807.038, N latitud 48 deg 07.038' N
01131.000, E longitud 11 deg 31.000' E
022.4 fart över grund i knop
084.4 spåra vinkeln i grader True
230394 datum - 23 mars 1994
003.1, W magnetisk Variation
* 6A checksum data, börjar alltid med *
Varje parameter är avgränsade med kommatecken. Från Arduino version 1.0 innehåller seriell biblioteket parsning funktion som gör seriella data behandlingen mycket lättare än innan. Nedan är en del av mitt program att läsa dessa data från RMC meningen.
gpsTime(gps.parseInt());
gps.parseFloat(); Ignorera onödig del
gpsLatLong(gps.parseInt(), gps.parseInt(), gps.parseInt(), gps.parseInt());
gpsSpeed = gps.parseFloat () * 1.852; Knut till km/h
gpsBearing = gps.parseFloat();
gpsDate(gps.parseInt());
gpdTime(), gpsLatLong() och gpsDate() är funktioner som jag gjort, som jag kommer att förklara i nästa steg och .parseInt(), .parseFloat() är Arduino-funktioner att parsa heltal och flyttal värden från seriell buss. "Gps" framför de analysera funktioner är bara namnet på min serieport som definieras i början av programmet. Hela programmet kommer att knytas till det sista steget.