Geo Data Logger: Arduino + GPS + SD + Accelerometer att logga, tidsstämpel och geo-tag sensordata (6 / 10 steg)
Steg 6: En vanlig GPS LOGGER till gräns flat med GOOGLE EARTH
Vi kan sedan importera GPS. Logga in filen i Google Earth och generera kartor med din loggade spårpunkter. Se min LS20031 GPS handledning om hur du importerar en rå GPS NMEA loggfiler till Google Earth.
Du kan också importera loggfilen NMEA till Excel som en kommaavgränsad textfil och formatera om det för GPSvisualizer.com att rita kartor med spårpunkter med mera. Mer om detta i nästa avsnitt.
=== START PROGRAM ===
/*
PROJEKT: En vanlig GPS Logger
FÖRFATTARE: Hazim Bitar (techbitar på gmail punkt com)
Beskrivning: Detta program loggar GPS läge informationen oavsett var du går och sparar till SD-kortet som rå NMEA-data som importeras till Google Earth.
LICENS: Jag är att placera denna kod i det offentliga rummet
DATUM: 17 NOV 2012
*/
#include < SD.h >
#define LED 8 / / status LED för SD
#define BUFF_MAX 100 / / storleken på GPS & SD buffertar
Filen GPSlog;
void setup()
{
Serial.BEGIN(4800); LS20031 GPS-mottagaren måste anges till 4800 för program för att arbeta
pinMode (10, OUTPUT); Per SD bibliotek anteckningar, måste stift 10 anges till utgång
pinMode (LED, OUTPUT);
IF (!. SD.begin(4)) {/ / SD-kort har upptäckts?
digitalWrite(LED,LOW); stänga av staus LED om SD upptäckt misslyckas
hemkomst.
}
annat digitalWrite (LED, hög); Aktivera LED om SD upptäckt är OK
GPSlog = SD.open ("GPS.log", O_CREAT | O_WRITE); Öppna/Lägg till en fil GPS.log
IF (!. GPSlog) {/ / test om filen kan öppnas
digitalWrite(LED,LOW); stänga av status LED om öppna filen misslyckas
hemkomst.
}
annat digitalWrite (LED, hög); slå på status-LED om öppna filen är OK
}
void loop()
{
char inBuffer [BUFF_MAX]; buffert används för att läsa NMEA linjer från GPS
byte outBuffer [BUFF_MAX]; buffert används för att skriva NMEA linjer till SD-kort
int sizeBuffer = 0; räknaren för hur många tecken per rad
medan (Serial.available() > 0) / / om seriella data från GPS
{
sizeBuffer = Serial.readBytesUntil ("\n", inBuffer, BUFF_MAX); läsa en NMEA linje från GPS fram till slutet av raden
för (int jag = 0; jag < BUFF_MAX; i ++) outBuffer [i] = inBuffer [i]; skapa CSV-fil på SD
int j = 0;
om (GPSlog) {
GPSlog.write (outBuffer, sizeBuffer); skriva GPS NMEA utdata till SD
GPSlog.print("\r\n");
GPSlog.flush();
digitalWrite (LED, hög); Hålla LED på så länge SD loggning fungerar.
}
annat {
om filen inte öppnas, Stäng LED av
digitalWrite (LED, låg); Inaktivera LED om skrivning till filen misslyckas
}
}
}
// ================ END PROGRAM =====================