Skip to content
Snippets Groups Projects
Commit 154b1b8e authored by Salih Okan Karaman's avatar Salih Okan Karaman
Browse files

Add new file

parent 641bf3c1
No related branches found
No related tags found
No related merge requests found
#include <TinyGPS++.h>
#include <SoftwareSerial.h>
#include "FS.h"
#include "SD.h"
#include <SPI.h>
static const int RXPin = 16, TXPin = 17;
static const uint32_t GPSBaud = 9600;
#define SD_CS 5
RTC_DATA_ATTR int readingID = 0;
String dataMessage;
String fileName = "leer";
String monat,tag,jahr;
String stunde,minute1,sekunde;
float flat, flong, kmh;
int sat;
// The TinyGPS++ object
TinyGPSPlus gps;
// The serial connection to the GPS device
SoftwareSerial ss(RXPin, TXPin);
// -----------------------------------------------------
void setup() {
Serial.begin(115200);
ss.begin(GPSBaud);
// Initialize SD card
SD.begin(SD_CS);
if(!SD.begin(SD_CS)) {
Serial.println("Card Mount Failed");
return;
}
uint8_t cardType = SD.cardType();
if(cardType == CARD_NONE) {
Serial.println("No SD card attached");
return;
}
Serial.println("Initializing SD card...");
if (!SD.begin(SD_CS)) {
Serial.println("ERROR - SD card initialization failed!");
return; // init failed
}
}
void loop() {
// put your main code here, to run repeatedly:
smartDelay(1000);
Serial.print(gps.date.value());
if(gps.date.value() > 0 && fileName!="leer"){
//Serial.print("File Name wurde geschrieben und warte auf loggen: ");
Serial.println(fileName.c_str());
loggeDaten();
}else{
erstelleFileName();
erstelleFile();
}
}
static void smartDelay(unsigned long ms)
{
unsigned long start = millis();
do
{
while (ss.available())
gps.encode(ss.read());
} while (millis() - start < ms);
}
void erstelleFileName() {
if(gps.date.value() > 0)
{
fileName = "/" + String(gps.date.value()) + ".txt";
Serial.print("File Name war erfolgreich: ");
Serial.println(fileName.c_str());
Serial.print("Der Zeitstempel: ");
Serial.println(gps.time.value());
}
Serial.print("Noch kein Zeitstempel!!! ");
Serial.println(gps.date.value());
}
void erstelleFile(){
if(fileName != "leer"){
File file = SD.open(fileName.c_str());
if(!file) {
Serial.println("File doens't exist");
Serial.println("Creating file...");
writeFile(SD, fileName.c_str(), "Reading ID, Tag, Monat, Jahr, Stunde, Minute, Sekunde, Latitude, Longitude, Speed, AnzahlSat \r\n");
}
else {
Serial.println("File already exists");
}
file.close();
}
}
void leseGPS(){
while (ss.available() > 0)
if (gps.encode(ss.read()))
if (millis() > 5000 && gps.charsProcessed() < 10)
{
Serial.println(F("No GPS detected: check wiring."));
while(true);
}
tag = gps.date.day();
monat = gps.date.month();
jahr = gps.date.year();
stunde = gps.time.hour();
minute1 = gps.time.minute();
sekunde = gps.time.second();
flat = gps.location.lat();
flong = gps.location.lng();
kmh = gps.speed.kmph();
sat = gps.satellites.value();
Serial.print("HIER KOMMT LATITUDE: ");
Serial.println(gps.location.lat());
}
void loggeDaten() {
if (gps.date.isValid()){
leseGPS();
dataMessage = String(readingID) + "," + String(tag) + "," + String(monat) + ","
+ String(jahr) + "," + String(stunde) + "," + String(minute1) + ","
+ String(sekunde) + "," + String(flat, 6) + "," + String(flong, 6) + "," + String(kmh) + "," + String(sat) + "\r\n";
Serial.print("Save data: ");
Serial.println(dataMessage);
appendFile(SD, fileName.c_str(), dataMessage.c_str());
readingID++;
}
}
// Write to the SD card (DON'T MODIFY THIS FUNCTION)
void writeFile(fs::FS &fs, const char * path, const char * message) {
Serial.printf("Writing file: %s\n", path);
File file = fs.open(path, FILE_WRITE);
if(!file) {
Serial.println("Failed to open file for writing");
return;
}
if(file.print(message)) {
Serial.println("File written");
} else {
Serial.println("Write failed");
}
file.close();
}
// Append data to the SD card (DON'T MODIFY THIS FUNCTION)
void appendFile(fs::FS &fs, const char * path, const char * message) {
Serial.printf("Appending to file: %s\n", path);
File file = fs.open(path, FILE_APPEND);
if(!file) {
Serial.println("Failed to open file for appending");
return;
}
if(file.print(message)) {
Serial.println("Message appended");
} else {
Serial.println("Append failed");
}
file.close();
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment