SD-Karte mit dem ESP32 benutzen
Damit die Daten des Open Weather Egg (OWE) auch auf einer SD-Karte geschrieben werden können, folgt hier ein kleines Beispiel.
Bei dem im Projekt zum Einsatz kommenden Wemos LOLIN Lite Board benutzt der SPI- Bus teilweise die gleichen Pins wie der I2C Bus. Aus diesem Grund wird in dem Beispiel nur eine CSV-Datei erzeugt und wieder ausgegeben. Ein Beispiel mit I2C Sensoren folgt …
Da die hinterlegten SPI- Default Werte wunderbar funktionieren, erfolgt das initialisieren „SD.begin()“ ohne extra Angabe eines Ports.
/* owe sd-karte lesen und schreiben 10.2022
pinbelegung für wemos lolin 32 lite
sclk 18
miso 19
mosi 23
cs 5
*/
#include <SPI.h> //einbinden SPI Bibliothek
#include <SD.h> //einbinden SD-Karten Bibliothek
File csv_datei; //objkt csv_datei erzeugen
void setup() {
Serial.begin(115200); //serielle Schnittstelle erzeugen
while (!Serial) {
; //auf die serielle schnittstelle warten
}
if (!SD.begin()) {
Serial.println("keine sd karte gefunden");
while (1);
}
Serial.println("sd karte ok");
csv_datei = SD.open("/towilab.csv", FILE_WRITE); //datei oeffnen mit schreibberechtigung
if (csv_datei) { //ist die datei offen
Serial.println("schreibe: wert,1");
csv_datei.println("wert,1"); //inhalt in die datei schreiben komma getrennt csv wert,1
csv_datei.close(); //datei schließen
Serial.println("schgreiben erledigt");
}
else {
Serial.println("konnte die datei nicht finden");
}
csv_datei = SD.open("/towilab.csv");
if (csv_datei) { //ist die datei offen
Serial.println("inhalt der datei:");
while (csv_datei.available()) { //datei auslesen bis sie alle ist
Serial.write(csv_datei.read());
}
csv_datei.close();
}
else {
Serial.println("konnte die datei nicht finden");
}
}
void loop() {
}