Stap 6: Een gewone GPS REGISTREERAPPARAAT aan INTERFACE met GOOGLE EARTH
We kunnen dan het importeren van de GPS. LOGBOEKBESTAND in Google Earth en maps bedekt met uw geregistreerde trackpoints te genereren. Gelieve te verwijzen naar mijn LS20031 GPS-tutorial over hoe je een rauwe GPS NMEA-logboekbestanden importeren in Google Earth.
U kunt ook dit NMEA-logboekbestand importeren in Excel als een tekstbestand met door lijstscheidingstekens gescheiden en het volume formatteren voor GPSvisualizer.com tot het opstellen van kaarten met trackpoints en meer. Meer hierover in de volgende secties.
=== BEGIN PROGRAMMA ===
/*
PROJECT: Een gewone GPS Logger
ONTWIKKELAAR: Hazim Bitar (techbitar op gmail dot com)
Beschrijving: Dit programma registreert GPS plaatsinformatie waar u gaat en wordt opgeslagen op de SD-kaart als onbewerkte NMEA-gegevens worden geïmporteerd in Google Earth.
LICENTIE: ben ik deze code plaatsen in het publieke domein
DATUM: 17 NOV 2012
*/
#include < SD.h >
#define LED 8 / / status LED voor SD operaties
#define BUFF_MAX 100 / / grootte van GPS & SD buffers
Bestand GPSlog;
VOID Setup
{
Serial.begin(4800); De LS20031 GPS-ontvanger moet worden ingesteld op 4800 voor programma om te werken
pinMode (10, OUTPUT); Per SD bibliotheek notities, moet pin 10 worden ingesteld voor de uitvoer van
pinMode (LED, uitvoer);
if (!. SD.begin(4)) {/ / SD-kaart gedetecteerd?
digitalWrite(LED,LOW); zwenking vandoor staus LED als SD detectie mislukt
terugkeer;
}
anders digitalWrite (LED, hoge); LED inschakelen als SD detectie OK is
GPSlog = SD.open ("GPS.log", O_CREAT | O_WRITE); Open/toevoegen aan een bestand GPS.log
if (!. GPSlog) {/ / test als bestand kan worden geopend
digitalWrite(LED,LOW); status-LED uitschakelen als bestand openen mislukt
terugkeer;
}
anders digitalWrite (LED, hoge); status-LED inschakelen als bestand openen OK is
}
void loop
{
char inBuffer [BUFF_MAX]; buffer die wordt gebruikt voor het lezen van NMEA lijnen van GPS
byte outBuffer [BUFF_MAX]; buffer gebruikt om te schrijven NMEA lijnen naar SD-kaart
int sizeBuffer = 0; teller van het aantal tekens per regel
terwijl (Serial.available() > 0) / / als seriële data beschikbaar via GPS
{
sizeBuffer = Serial.readBytesUntil ('\n', inBuffer, BUFF_MAX); Lees een NMEA lijn van GPS tot einde van regel
for (int i = 0; ik < BUFF_MAX; i ++) outBuffer [i] = inBuffer [i]; CSV-bestand op SD maken
int j = 0;
Als (GPSlog) {}
GPSlog.write (outBuffer, sizeBuffer); GPS NMEA uitvoer naar SD schrijven
GPSlog.print("\r\n");
GPSlog.flush();
digitalWrite (LED, hoge); LED op houden zo lang als SD logboekregistratie werkt.
}
else {}
Als het bestand niet openen, uitschakelen LED
digitalWrite (LED, laag); LED uitschakelen als schrijven naar bestand mislukt
}
}
}
// ================ END PROGRAM =====================