Schritt 9: Codierung details
Fügen Sie diese Zeile in der definition
//*************************************************************************
//** LIBRARY ** //*************************************************************************
< TinyGPS.h > #include / / ++ GPS-Bibliothek
< SPI.h > #include / / ++ SPI-Bibliothek #include
++ SD-Bibliothek / /
*************************************************************************
//** SD ** //*************************************************************************
* SD-Karte an SPI-Bus wie folgt angeschlossen:
** UNO: MOSI - Pin 11, MISO - Pin 12, CLK - Pin 13, CS - Pin 4
(CS-Pin kann geändert werden) und Pin #10 (SS) muss ein Ausgang
** Mega: MOSI - Pin 51, MISO - Pin 50, CLK - Pin 52, CS - Pin 53
(CS-Pin kann geändert werden) und Pin #52 (SS) muss ein Ausgang
** Leonardo: Verbinden Sie mit Hardware SPI über den ICSP-header
Pin 4 verwendet hier für Konsistenz mit anderen Arduino Beispiele const Int Taktsignal = 53;
++ SD-Pin-Selektor
//*************************************************************************
//** GPS ** //*************************************************************************
TinyGPS Gps; ++ GPS auf Serial2
void Gpsdump (TinyGPS & Gps); // ++
Bool NewdataGPS = False; // ++
Fügen Sie diese Zeile in die setup()
//***********************************************************************
//** GPS serial setup ** //***********************************************************************
Serial2.Begin (9600); // ++
Verzögerung (1000); // ++
//***********************************************************************
//** SD Initializing ** //***********************************************************************
Stellen Sie sicher, dass die Standard-Chip select Pin soll / / ++
Ausgang, auch wenn Sie nicht verwenden: / / ++
PinMode (SS, OUTPUT); // ++
Serial.println (F ("initialisieren SD-Karte...")); // ++
ob die Karte vorhanden ist und kann initialisiert werden: / / ++
If (!) SD.begin(chipSelect)) {/ / ++
Serial.println (F ("Karte, fehlerhaften oder nicht vorhanden")); // ++
das nicht tun nichts mehr: / / ++
zurück; // ++
} else {/ / ++
Serial.println (F ("SD Card" OK"")); // ++
} // ++
Fügen Sie diese Zeilen in loop() leere
serialEvent2(); ++ GPS serielle Ereignis Call
SeriaEvent2 Code hinzufügen
//*************************************************************************
//** GPS serialEvent ** //*************************************************************************
void serialEvent2() {/ / ++
während (Serial2.available()) {/ / ++
Char c = Serial2.read(); // ++
Serial.Print(c); kommentieren Sie um zu sehen, GPS-Rohdaten / / ++
Wenn (gps.encode(c)) {/ / ++
NewdataGPS = True; // ++
zu brechen; für die neue Druckdaten sofort entfernen! // ++
} // ++
} // ++
} // ++
Hinzufügen von GPS-Dump voud
//*************************************************************************
//** gps dump ** //*************************************************************************
** Der zulässige Wertebereich der Breite in Grad beträgt-90 und + 90. **
** Länge liegt im Bereich von-180 und + 180 **
** die Ost-West-Position angeben **
** "123456789 1234567890" **
//** "000.00000;0000.00000" ** //*************************************************************************
void Gpsdump (TinyGPS & Gps) / / ++
{ // ++
Int Jahr; // ++
Byte-Monat, Tag, Stunde, Minute, Sekunde, Hundertstel; // ++
unsigned long Alter; // ++
GPS.f_get_position (LATGP00, LONGP00, & Alter); // ++
GPS.crack_datetime (& Jahr, Monat, Tag & Stunde, / / ++
& Minute, Sekunde, Hundertstel & Alter); // ++
lange Lat, Lon; // ++
GPS.get_position (Lat, Lon, & Alter); // ++
// *********************************************************************
** machen Sie eine Zeichenfolge für die Zusammenstellung der Daten zur Anmeldung: **
// *********************************************************************
Datenstring String = ""; // ++
Datenstring += (Lat / 100000); // ++
Datenstring += "."; // ++
Datenstring += Lat - (Lat / 100000) * 100000; // ++
Datenstring += ";" "; // ++
Datenstring += (Lon / 100000); // ++
Datenstring += "."; // ++
Datenstring += Lon - (Lon / 100000) * 100000; // ++
Datenstring += ";" "; // ++
Datenstring += String (static_cast(day)); // ++
Datenstring += "/"; // ++
Datenstring += String (static_cast(month)); // ++
Datenstring += "/"; // ++
Datenstring += String (Jahr); // ++
Datenstring += ";" "; // ++
Datenstring += String (static_cast(hour)); // ++
Datenstring += ":"; // ++
Datenstring += String (static_cast(minute)); // ++
Datenstring += ":"; // ++
Datenstring += String (static_cast(second)); // ++ //*************************************************************************
//** SAVE TO SD ** //*************************************************************************
Öffnen Sie die Datei. Beachten Sie, dass nur eine Datei kann zu einem Zeitpunkt geöffnet werden **
so müssen Sie diese vor dem Öffnen einer anderen zu schließen. ** //*************************************************************************
Datei-DataFile = SD.open ("gps00.txt", FILE_WRITE); // ++
// ***********************************************************************
** Wenn die Datei verfügbar ist, schreiben Sie es: **
// ***********************************************************************
Wenn (Datendatei) {/ / ++
dataFile.println (Datenstring); // ++
dataFile.close(); // ++
} else {/ / ++
Serial.println (F ("Fehler SD schreiben")); // ++
} // ++
}
Wenn Sie den Code herunterladen möchten, besuchen Sie bitte diese Seite.
http://IoT.dataino.it/Beta/View/Site/Lora-Arduino-GPS.HTML