ESP32 SD datum als filename???
6 berichten
• Pagina 1 van 1
ESP32 SD datum als filename???
Hallo,
In mijn streven naar bme-280 loggen op een SD kaart strand ik op het aanmaken van een datafile met als naam de datum.
Dit werkte wel op mijn logger met behulp van een arduino mega.
Echter dit werkt niet op mijn ESP32 wroom-32.
Stukje scetch van de mega:
char filename[12];
sprintf(filename,"%02d-%02d-%02d.csv",yy,mm,dd);
delay(30);
dataFile=SD.open(filename,FILE_WRITE);
delay(30);
dataFile.println("Date,Time,Hum,TempH,Dauwp,Luchtdruk,TempL");
delay(40);
dataFile.close();
Serial.print("log in nieuwe file..");
EEPROM.write(addr, dd);
Serial.println(filename);
Stukje scetch van de ESP32
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();
Deze laatste script is de SD zoals me-no-dev. deze op de GITHUB
https://github.com/espressif/arduino-es ... braries/SD
Kan iemend mij een push in de goede richting geven om mijn file als datum te kunnen opslaan?
Zie uw aller steun tegemoed.
Met vriendelijke groet,
ilioSS
In mijn streven naar bme-280 loggen op een SD kaart strand ik op het aanmaken van een datafile met als naam de datum.
Dit werkte wel op mijn logger met behulp van een arduino mega.
Echter dit werkt niet op mijn ESP32 wroom-32.
Stukje scetch van de mega:
char filename[12];
sprintf(filename,"%02d-%02d-%02d.csv",yy,mm,dd);
delay(30);
dataFile=SD.open(filename,FILE_WRITE);
delay(30);
dataFile.println("Date,Time,Hum,TempH,Dauwp,Luchtdruk,TempL");
delay(40);
dataFile.close();
Serial.print("log in nieuwe file..");
EEPROM.write(addr, dd);
Serial.println(filename);
Stukje scetch van de ESP32
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();
Deze laatste script is de SD zoals me-no-dev. deze op de GITHUB
https://github.com/espressif/arduino-es ... braries/SD
Kan iemend mij een push in de goede richting geven om mijn file als datum te kunnen opslaan?
Zie uw aller steun tegemoed.
Met vriendelijke groet,
ilioSS
Advertisement
Re: ESP32 SD datum als filename???
filename = 12 karakters prima, maar waar zet je de string van filename?
paul deelen
shooter@home.nl
shooter@home.nl
Re: ESP32 SD datum als filename???
Hallo,
Hartelijk dank Koepel voor je reactie.
Heb het uitgeprobeerd echter geen result.
Het geheel spitst zich toe op hetvolgende.
Logging temp. op de ESP8266 is geen probleem met de arduino ide. en de gangbare SD library.
Voor de ESP32 word deze listing door de debugger gehaald en geaccepteerd. Geen fout melding.
Uploaden en starten van het script geeft steeds rebooten van de processor. ( op het punt sprintf word bereikt)
Na elimineren blijft over dat de instructie sprintf de veroorzaker is.
alternatief is dat ik de SD lib. gebruik van ""me-no-dev"" maar daar heb ik het datum probleem.
( een uitgebreide functie omschrijving ontbreekt hier ook
Dit lijkt echter een string char omzet nodig te hebben ook dit uitgeprobeerd zonder succes.
Is er een vergelijkbare instructie die de sprintf vervangt?
Uiteindelijk zou het fijn zijn om mijn logging programma zoals draait op de ESP8266 grotendeels gelijk te houden als op de ESP32.
Enig idee mbt dit probleem is gewenst en zal zeer gewaardeerd worden.
Met vriendelijke groet,
ilioSS
Hartelijk dank Koepel voor je reactie.
Heb het uitgeprobeerd echter geen result.
Het geheel spitst zich toe op hetvolgende.
Logging temp. op de ESP8266 is geen probleem met de arduino ide. en de gangbare SD library.
Voor de ESP32 word deze listing door de debugger gehaald en geaccepteerd. Geen fout melding.
Uploaden en starten van het script geeft steeds rebooten van de processor. ( op het punt sprintf word bereikt)
Na elimineren blijft over dat de instructie sprintf de veroorzaker is.
alternatief is dat ik de SD lib. gebruik van ""me-no-dev"" maar daar heb ik het datum probleem.
( een uitgebreide functie omschrijving ontbreekt hier ook
Dit lijkt echter een string char omzet nodig te hebben ook dit uitgeprobeerd zonder succes.
- Code: Alles selecteren
char filename[12]; // ESP8266
sprintf(filename,"%02d-%02d-%02d.csv",yy,mm,dd);
dataFile=SD.open(filename,FILE_WRITE);
- Code: Alles selecteren
void writeFile(fs::FS &fs, const char * path, const char * message) { // ESP32 const char * path, hierin krijg ik geen datum die geaccepterd word :(
Serial.printf("Writing file: %s\n", path);
File file = fs.open(path, FILE_WRITE);
if(!file) {
Is er een vergelijkbare instructie die de sprintf vervangt?
Uiteindelijk zou het fijn zijn om mijn logging programma zoals draait op de ESP8266 grotendeels gelijk te houden als op de ESP32.
Enig idee mbt dit probleem is gewenst en zal zeer gewaardeerd worden.
Met vriendelijke groet,
ilioSS
- nicoverduin
- Berichten: 5043
- Geregistreerd: 13 Mei 2013, 20:57
- Woonplaats: Heemskerk
Re: ESP32 SD datum als filename???
13 bytes proppen in 12 posities gaat meestal fout. Maak die char array maar 13 bytes groot
Re: ESP32 SD datum als filename???
Beste Nico,
Hartelijk dank voor je ""to the point"" reactie.
Met schaamrood op de kaken heb ik het aantal posities verhoogd naar 20.
Nu blijft het script lopen met de datum. Geweldig.
Nu verder met het script oppoetsen en goed documenteren.
Hartelijk dank nogmaals.
Met vriendelijke groet,
ilioSS
ps. Als shooter dit leest sorry voor de naamsverwisseling met koepel in het vorige bericht
Hartelijk dank voor je ""to the point"" reactie.
Met schaamrood op de kaken heb ik het aantal posities verhoogd naar 20.
Nu blijft het script lopen met de datum. Geweldig.
Nu verder met het script oppoetsen en goed documenteren.
Hartelijk dank nogmaals.
Met vriendelijke groet,
ilioSS
ps. Als shooter dit leest sorry voor de naamsverwisseling met koepel in het vorige bericht
- nicoverduin
- Berichten: 5043
- Geregistreerd: 13 Mei 2013, 20:57
- Woonplaats: Heemskerk
Re: ESP32 SD datum als filename???
20 bytes is teveel en onnodig. Je hebt 12 bytes +1=13.
6 berichten
• Pagina 1 van 1
Wie is er online?
Gebruikers in dit forum: Geen geregistreerde gebruikers en 26 gasten