SD-Karte mit dem ESP32 benutzen

eine weitere Bastelseite ....

SD-Karte mit dem ESP32 benutzen

12. Oktober 2022 Arduino Open Weather Egg Wemo 0

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() {
}