Stap 9: Codering details
Voeg deze regel toe in de definitie
//*************************************************************************
//** LIBRARY ** //*************************************************************************
#include < TinyGPS.h > / / ++ GPS bibliotheek
#include < SPI.h > / / ++ SPI bibliotheek #include
++ Bibliotheek SD / /
*************************************************************************
//** SD ** //*************************************************************************
* SD-kaart aangesloten op SPI bus als volgt:
** UNO: MOSI - pin 11, MISO - pin 12, CLK - pin 13, CS - pin 4
(CS pin kan worden gewijzigd) en pin #10 (SS) moet een vermogen
** Mega: MOSI - pin 51, MISO - pin 50, CLK - pin 52, CS - pin 53
(CS pin kan worden gewijzigd) en pin #52 (SS) moet een vermogen
** Leonardo: Verbinden met hardware SPI, via de ICSP header
Pin 4 hier gebruikt voor consistentie met andere Arduino voorbeelden const int chipSelect = 53;
++ SD pin selector
//*************************************************************************
//** GPS ** //*************************************************************************
TinyGPS gps; ++ GPS op Serial2
VOID gpsdump (TinyGPS & gps); // ++
BOOL newdataGPS = false; // ++
Voeg deze regel toe in de Setup
//***********************************************************************
//** GPS serial setup ** //***********************************************************************
Serial2.begin (9600); // ++
vertraging (1000); // ++
//***********************************************************************
//** SD Initializing ** //***********************************************************************
Zorg ervoor dat de standaard chip select pin is ingesteld op / / ++
uitgang, zelfs als u don´t gebruiken: / / ++
pinMode (SS, uitvoer); // ++
Serial.println (F ("initialiseren SD card...")); // ++
zien of de kaart aanwezig en kan worden geïnitialiseerd: / / ++
if (!. SD.begin(chipSelect)) {/ / ++
Serial.println (F ("kaart mislukte of niet aanwezig")); // ++
Don´t niets meer: / / ++
terugkeer; // ++
} else {/ / ++
Serial.println (F ("SD kaart OK")); // ++
} // ++
Voeg deze regels toe in loop leegte
serialEvent2(); ++ GPS seriële oproepgebeurtenis
SeriaEvent2 code toevoegen
//*************************************************************************
//** GPS serialEvent ** //*************************************************************************
VOID serialEvent2() {/ / ++
terwijl (Serial2.available()) {/ / ++
char c = Serial2.read(); // ++
Serial.Print(c); uncomment om te zien ruwe GPS data / / ++
Als (gps.encode(c)) {/ / ++
newdataGPS = true; // ++
breken; uncomment om af te drukken van nieuwe gegevens onmiddellijk! // ++
} // ++
} // ++
} // ++
GPS dump voud toevoegen
//*************************************************************************
//** gps dump ** //*************************************************************************
** Het geldige bereik van latitude in graden is-90 en + 90. **
** Lengtegraad is in het bereik-180 en + 180 **
** de Oost-west-positie aangeeft **
** "123456789 1234567890" **
//** "000.00000;0000.00000" ** //*************************************************************************
VOID gpsdump (TinyGPS & gps) / / ++
{ // ++
int. jaar; // ++
byte maand, dag, uur, minuut, seconde honderdsten; // ++
niet-ondertekende long leeftijd; // ++
GPS.f_get_position (LATGP00, LONGP00, & leeftijd); // ++
GPS.crack_datetime (& jaar, maand, dag, & uur, / / ++
& minuut, seconde, honderdsten, & leeftijd); // ++
lange lat, lon; // ++
GPS.get_position (lat, lon, & leeftijd); // ++
// *********************************************************************
** het maken van een tekenreeks voor het samenstellen van de gegevens te melden: **
// *********************************************************************
DataString koord = ""; // ++
dataString += (lat / 100000); // ++
dataString += "."; // ++
dataString += lat - (lat / 100000) * 100000; // ++
dataString += ";"; // ++
dataString += (lon / 100000); // ++
dataString += "."; // ++
dataString += lon - (lon / 100000) * 100000; // ++
dataString += ";"; // ++
dataString += tekenreeks (static_cast(day)); // ++
dataString += "/"; // ++
dataString += tekenreeks (static_cast(month)); // ++
dataString += "/"; // ++
dataString += String (jaar); // ++
dataString += ";"; // ++
dataString += tekenreeks (static_cast(hour)); // ++
dataString += ":"; // ++
dataString += tekenreeks (static_cast(minute)); // ++
dataString += ":"; // ++
dataString += tekenreeks (static_cast(second)); // ++ //*************************************************************************
//** SAVE TO SD ** //*************************************************************************
Open het bestand. Merk op dat slechts één bestand tegelijk kan zijn geopend **
dus je hebt om te sluiten van deze een voor het openen van een ander. ** //*************************************************************************
Bestand dataFile = SD.open ("gps00.txt", FILE_WRITE); // ++
// ***********************************************************************
** Als het bestand beschikbaar is, schrijven: **
// ***********************************************************************
Als (dataFile) {/ / ++
dataFile.println (dataString); // ++
dataFile.close(); // ++
} else {/ / ++
Serial.println (F ("fout SD schrijven")); // ++
} // ++
}
Als u wilt dat de code te downloaden, bezoek dan deze pagina.
http://IOT.dataino.it/Beta/view/site/Lora-Arduino-GPS.html