i have been using a adruino uno with a gps module to be uses as a gps tracker. my data goes to the sd card. but when i insert it in to my computer i get no data. this is the code i have been ruining.
[code
#include <Adafruit_GPS.h> // Laden GPS bibliotheek
#include <SD.h> // SD-card biblitheek oproepen
#include <SPI.h> // SPI bibliotheek oproepen
#include <SoftwareSerial.h> // Laden bibliotheek van de software seriële poort
SoftwareSerial mySerial(3,2); // Initialeseren van de tx- en rx-pin als seriële poort
Adafruit_GPS gps(&mySerial); // Crëeren van het GPS object
String NMEA1; //Variabel voor de eerste geografische coördinaat
String NMEA2; //Variabel voor de tweede geografische coördinaat
char c; // uitlezen van de characters uit de GPS
int chipSelect = 4; // De chipselect is aangesloten op de UNO pin 4
File mySensorData; // Verklaren variabel voor de sd-card objecten
void setup() {
Serial.begin(115200); // Aanzetten seriële monitor met een gekozen snelheid
gps.begin(9600); //Aanzetten GPS vanaf 9600 baudrate
gps.sendCommand("$PGCMD,33,06D"); // Uitschekelen de antene updates
gps.sendCommand("$PSRF103,02,00,00,0126"); // desactiveren GSA sentences
gps.sendCommand("$PSRF103,03,00,00,01*27"); // desactiveren GSV sentences
gps.sendCommand(PMTK_SET_NMEA_UPDATE_1HZ); // Stuur 1 data per seconde, frequentie regeling
gps.sendCommand(PMTK_SET_NMEA_OUTPUT_RMCGGA);//Wens enkel de RMC en GGA sentences te verkrijgen
delay(1000);
pinMode(10, OUTPUT); // Pin 10 vermelden als een output om de SDcard te laten goed functioneren
SD.begin(chipSelect); // Initialiseren SD-card door te vermelden dat het aangesloten is aan de chipSelect
if (SD.exists("gpsData.txt")) { // Indien er al een bestand bestaat, verwijderen en nieuw schrijven
SD.remove("gpsData.txt");
}
if (SD.exists("gpsDATADetails.txt")) {
SD.remove("gpsDATADetails.txt");
}
}
uint32_t timer = millis();
void loop() {
readgps();
delay(10000); //om de 10 seconden sentences doorgeven
if(gps.fix==1) { //Data opslaan enkel indien de GPS een fix heeft
mySensorData=SD.open("gpsDATADetails.txt", FILE_WRITE); // Bestand openen om op te slaan
mySensorData.println(NMEA1); // Schrijven van eerste sentence op de SD-card
mySensorData.println(NMEA2); // Schrijven van tweede sentence op de SD-card
mySensorData.println(""); // Spatie schrijven
mySensorData.print("\nTime: ");
mySensorData.print(gps.hour, DEC); mySensorData.print(':');
mySensorData.print(gps.minute, DEC); mySensorData.print(':');
mySensorData.print(gps.seconds, DEC); mySensorData.print('.');
mySensorData.println(gps.milliseconds);
mySensorData.print("Date: "); // Schrijven van de datum in Dag/Maand/Jaar
mySensorData.print(gps.day, DEC); mySensorData.print('/');
mySensorData.print(gps.month, DEC); mySensorData.print("/20");
mySensorData.println(gps.year, DEC);
mySensorData.print("Fix: "); mySensorData.print((int)gps.fix); // Vermelden van aantaal fix en de qualiteit ervan
mySensorData.print(" quality: "); mySensorData.println((int)gps.fixquality);
if (gps.fix) {
mySensorData.print("Location: "); //Schrijven van de locatie
mySensorData.print(gps.latitude, 4); mySensorData.print(gps.lat);
mySensorData.print(", ");
mySensorData.print(gps.longitude, 4); mySensorData.println(gps.lon);
mySensorData.print("Speed (knots): "); mySensorData.println(gps.speed); // Schrijven van de snelheid, hoek, aantaal gebruikte satellieten en de altitude
mySensorData.print("Angle: "); mySensorData.println(gps.angle);
mySensorData.print("Altitude: "); mySensorData.println(gps.altitude);
mySensorData.print("Satellites: "); mySensorData.println((int)gps.satellites);
}
mySensorData.close(); // Bestand sluiten
mySensorData=SD.open("gpsData.txt", FILE_WRITE); //Tweede bestand openen
mySensorData.print("\nTime: ");
mySensorData.print(gps.hour, DEC); mySensorData.print(':'); // Schrijven van tijd in H:M:S
mySensorData.print(gps.minute, DEC); mySensorData.print(':');
mySensorData.print(gps.seconds, DEC); mySensorData.print('.');
mySensorData.println(gps.milliseconds);
mySensorData.print(gps.latitude,4); // Schrijven van de latitude
mySensorData.print(gps.lat); // Noord of Zuid ?
mySensorData.print(","); // komma
mySensorData.print(gps.longitude,4); // Schrijven van de longitude
mySensorData.print(gps.lon); // West of Oost ?
mySensorData.println(""); // Spatie schrijven
mySensorData.print(gps.altitude); // Schrijven altitude
mySensorData.print(gps.speed); // Schrijven grondsnelheid
mySensorData.close(); // Bestand sluiten
}
}
void readgps() {
cleargps();
while(!gps.newNMEAreceived()) { // loop van de character tot de GPS een goede NMEA senteces ontvangt,
c=gps.read(); // van zodra er een nieuw sentence is springt men uit de while functie
}
gps.parse(gps.lastNMEA()); //doorgeven laatste goed NMEA sentence
NMEA1=gps.lastNMEA();
while(!gps.newNMEAreceived()) { // loop van de character tot de GPS een goede NMEA senteces ontvangt,
c=gps.read(); // van zodra er een nieuw sentence is springt men uit de while functie
}
gps.parse(gps.lastNMEA()); //doorgeven laatste goed NMEA sentence voor de tweede coördinatie
NMEA2=gps.lastNMEA();
Serial.println(NMEA1);
Serial.println(NMEA2);
Serial.println("");
if (timer > millis()) timer = millis(); // Reset indien de millis () of timer omslagen
if (millis() - timer > 2000) { // Ongeveer elke 2 seconden, print de gegevens uit
timer = millis(); // reset de timer
Serial.print("\nTime: ");
Serial.print(gps.hour, DEC); Serial.print(':');
Serial.print(gps.minute, DEC); Serial.print(':');
Serial.print(gps.seconds, DEC); Serial.print('.');
Serial.println(gps.milliseconds);
Serial.print("Date: "); // Schrijven van de datum in Dag/Maand/Jaar
Serial.print(gps.day, DEC); Serial.print('/');
Serial.print(gps.month, DEC); Serial.print("/20");
Serial.println(gps.year, DEC);
Serial.print("Fix: "); Serial.print((int)gps.fix); // Vermelden van aantaal fix en de qualiteit ervan
Serial.print(" quality: "); Serial.println((int)gps.fixquality);
if (gps.fix) {
Serial.print("Location: "); //Schrijven van de locatie
Serial.print(gps.latitude, 4); Serial.print(gps.lat);
Serial.print(", ");
Serial.print(gps.longitude, 4); Serial.println(gps.lon);
Serial.print("Speed (knots): "); Serial.println(gps.speed); // Schrijven van de snelheid, hoek, aantaal gebruikte satelliten en de altitude
Serial.print("Angle: "); Serial.println(gps.angle);
Serial.print("Altitude: "); Serial.println(gps.altitude);
Serial.print("Satellites: "); Serial.println((int)gps.satellites);
}
}
}
void cleargps() { // Maakt het mogelijk de vier sentences goed uit te lezen anders verkrijgt men oude sentences
while(!gps.newNMEAreceived()) { // loop van de character tot de GPS een goede NMEA senteces ontvangt,
c=gps.read(); // van zodra er een nieuw sentence is springt men uit de while functie
}
gps.parse(gps.lastNMEA()); //doorgeven laatste goed NMEA sentence
while(!gps.newNMEAreceived()) { // loop van de character tot de GPS een goede NMEA senteces ontvangt,
c=gps.read(); // van zodra er een nieuw sentence is springt men uit de while functie
}
gps.parse(gps.lastNMEA()); //doorgeven laatste goed NMEA sentence
}
]