ESP32 S3 - Variable auf SD-Karte schreiben

Lernen Sie, wie Sie mit dem ESP32 S3 verschiedene Arten von Variablen direkt auf eine Micro-SD-Karte schreiben, um Sensorwerte, Konfigurationswerte und strukturierte Daten dauerhaft zu speichern. Dieses Tutorial behandelt das Schreiben von Ganzzahlen, Gleitkommazahlen, Strings, Zeichenarrays, Byte-Arrays und Schlüssel-Wert-Paaren in Dateien auf der SD-Karte.

Was Sie bauen werden:

  1. Eine Schaltung, die den ESP32 S3 über SPI mit einem Micro-SD-Kartenmodul verbindet
  2. Einen Sketch, der mehrere Variablentypen (int, float, String, Zeichenarray, Byte-Array) in eine Datei auf der SD-Karte schreibt
  3. Einen Sketch, der Variablen als Schlüssel-Wert-Paare speichert – für strukturierte, gut lesbare Konfigurationsdateien
  4. Eine Grundlage für Datenprotokollierung und Konfigurationsspeicherung auf dem ESP32 S3
ESP32 S3 - Variable auf SD-Karte schreiben

Erforderliche Hardware

1×ESP32 S3 WROOM N16R8
1×(Alternativ) ESP32 S3 SuperMini Dev Module
1×(Alternativ) ESP32 S3 Uno-form Board
1×(Alternativ) ESP32 S3 Camera Board
1×USB-Kabel Typ-A zu Typ-C (für USB-A PC)
1×USB-Kabel Typ-C zu Typ-C (für USB-C PC)
1×Micro-SD-Karte
1×Micro-SD-Karten-Modul
1×Verbindungskabel
1×(Optional) MicroSD-zu-SD-Speicherkarten-Adapter
1×(Empfohlen) Screw Terminal Expansion Board for ESP32 S3
1×(Empfohlen) Breakout Expansion Board for ESP32 S3
1×(Empfohlen) Power Splitter for ESP32 S3

Oder Sie können die folgenden Kits kaufen:

1×DIYables ESP32 S3 Starter-Kit (ESP32 S3 enthalten)
1×DIYables Sensor-Kit (18 Sensoren/Displays)
Offenlegung: Einige der in diesem Abschnitt bereitgestellten Links sind Amazon-Affiliate-Links. Wir können eine Provision für Käufe erhalten, die über diese Links getätigt werden, ohne zusätzliche Kosten für Sie. Wir schätzen Ihre Unterstützung.

Überblick über Micro SD Card Module

Das Micro-SD-Kartenmodul ist eine Schnittstellenplatine, die Ihren ESP32 S3 über das SPI-Kommunikationsprotokoll mit einer Micro-SD-Karte verbindet. Es übernimmt Spannungsregelung und Signalumsetzung, sodass der ESP32 S3 Kartendaten zuverlässig mit 3,3-V-Logikpegeln lesen und schreiben kann. Damit ist es ein wichtiges Bauteil für jedes Projekt, das lokalen dauerhaften Speicher benötigt.

Wichtige Spezifikationen

Das Modul kommuniziert über SPI und unterstützt Micro-SD-Karten, die mit FAT16 oder FAT32 formatiert sind. Es akzeptiert eine Betriebsspannung zwischen 3,3 V und 5 V und ist daher mit einer Vielzahl von Mikrocontrollern kompatibel. Die sechspolige Schnittstelle stellt die Leitungen VCC, GND, MISO, MOSI, SCK und SS bereit. Das Modul eignet sich gut für Datenprotokollierung, Konfigurationsspeicherung und die Bereitstellung statischer Webinhalte auf eigenständigen IoT-Geräten.

Sie kennen das Micro-SD-Kartenmodul noch nicht, einschließlich Pinbelegung, Funktionsweise und Programmierung? Alles darüber erfahren Sie im Tutorial ESP32 S3 - Micro-SD-Karte.

Verdrahtungsdiagramm

Verbinden Sie das Micro-SD-Kartenmodul gemäß dem folgenden Diagramm mit dem ESP32 S3 und halten Sie alle Drähte kurz und ordentlich, um Störungen auf dem SPI-Bus zu reduzieren. Überprüfen Sie jede Verbindung, bevor Sie das Board mit Strom versorgen.

Verdrahtungsplan ESP32 S3 Micro-SD-Kartenmodul

Dieses Bild wurde mit Fritzing erstellt. Klicken Sie, um das Bild zu vergrößern.

※ Notiz:

Wenn Sie ein Ethernet-Shield oder ein anderes Shield mit Micro-SD-Kartenhalter verwenden, benötigen Sie das Micro-SD-Kartenmodul nicht. Sie müssen die Micro-SD-Karte nur in den Micro-SD-Kartenhalter auf dem Shield einsetzen.

Sicherheitshinweise

Vergewissern Sie sich immer, dass die SD-Karte vollständig im Modul sitzt, bevor Sie Code ausführen, da eine lockere Karte zu Initialisierungsfehlern führt, die schwer zu diagnostizieren sein können. Verwenden Sie eine hochwertige Micro-SD-Karte eines Markenherstellers, um sporadische Lese-/Schreibfehler zu vermeiden, und entfernen Sie die Karte niemals, während der ESP32 S3 Daten schreibt, um eine Beschädigung des Dateisystems zu verhindern.

Micro-SD-Modul-Pin ESP32 S3 Pin
VCC 5V
GND GND
MISO GPIO13 (MISO)
MOSI GPIO11 (MOSI)
SCK GPIO12 (SCK)
SS GPIO10 (CS)

ESP32 S3 - Wie man eine Variable in eine Datei auf der Micro-SD-Karte schreibt

Code-Überblick

Der folgende Code zeigt, wie Sie mit dem ESP32 S3 mehrere Variablentypen in eine einzige Datei auf der Micro-SD-Karte schreiben. Er schreibt eine Ganzzahl, eine Gleitkommazahl, einen String, ein Zeichenarray und ein Byte-Array – jeweils in eine eigene Zeile – und bietet Ihnen so eine praktische Vorlage, um unterschiedliche Datentypen in einer einzigen dauerhaften Datei zu speichern.

Der Sketch behandelt:

  • Das Schreiben einer int-Variable auf die Micro-SD-Karte
  • Das Schreiben einer float-Variable auf die Micro-SD-Karte
  • Das Schreiben einer String-Variable auf die Micro-SD-Karte
  • Das Schreiben eines Zeichenarrays auf die Micro-SD-Karte
  • Das Schreiben eines Byte-Arrays auf die Micro-SD-Karte

ESP32 S3 Code

/* * Dieser ESP32 S3 Code wurde von newbiely.de entwickelt * Dieser ESP32 S3 Code wird der Öffentlichkeit ohne jegliche Einschränkung zur Verfügung gestellt. * Für vollständige Anleitungen und Schaltpläne besuchen Sie bitte: * https://newbiely.de/tutorials/esp32-s3/esp32-s3-write-variable-to-sd-card */ #include <SD.h> #define PIN_SPI_CS 10 // The ESP32 S3 pin connected to the CS pin of SD card module File myFile; int myInt = -52; float myFloat = -12.7; String myString = "HELLO"; char myCharArray[] = "esp32io.com"; byte myByteArray[] = {'1', '2', '3', '4', '5'}; void setup() { Serial.begin(9600); if (!SD.begin(PIN_SPI_CS)) { while (1) { Serial.println(F("SD CARD FAILED, OR NOT PRESENT!")); delay(1000); } } Serial.println(F("SD CARD INITIALIZED.")); Serial.println(F("--------------------")); SD.remove("/esp32.txt"); // delete the file if existed // create new file by opening file for writing myFile = SD.open("/esp32.txt", FILE_WRITE); if (myFile) { myFile.println(myInt); // write int variable to SD card in line myFile.println(myFloat); // write float variable to SD card in line myFile.println(myString); // write String variable to SD card in line myFile.println(myCharArray); // write char array to SD card in line myFile.write(myByteArray, 5); myFile.write("\n"); // new line for (int i = 0; i < 5; i++) { myFile.write(myByteArray[i]); // new line if (i < 4) myFile.write(","); // comma } myFile.write("\n"); // new line myFile.close(); } else { Serial.print(F("SD Card: Issue encountered while attempting to open the file esp32.txt")); } // open file for reading myFile = SD.open("/esp32.txt", FILE_READ); if (myFile) { while (myFile.available()) { char ch = myFile.read(); // read characters one by one from Micro SD Card Serial.print(ch); // print the character to Serial Monitor } myFile.close(); } else { Serial.print(F("SD Card: Issue encountered while attempting to open the file esp32.txt")); } } void loop() { }

Schnelle Schritte

  1. Neu beim ESP32 S3? Arbeiten Sie zuerst unsere Anleitung Erste Schritte mit dem ESP32 S3 durch.
  2. SD-Karte vorbereiten: Setzen Sie die formatierte Micro-SD-Karte in das SD-Kartenmodul ein. Stellen Sie sicher, dass sie mit FAT16 oder FAT32 formatiert ist (suchen Sie online nach einer Formatierungsanleitung für Ihr Betriebssystem).
  3. Schaltung verdrahten: Verbinden Sie das Micro-SD-Kartenmodul gemäß dem obigen Verdrahtungsplan mit dem ESP32 S3.
  4. ESP32 S3 anschließen: Verbinden Sie den ESP32 S3 über das USB-Typ-C-Kabel mit Ihrem PC.
  5. Arduino IDE öffnen: Starten Sie die Arduino IDE auf Ihrem Computer.
  6. Board auswählen: Wählen Sie ESP32 S3 im Board-Menü aus.
  7. Port auswählen: Wählen Sie den richtigen COM-Port für Ihren ESP32 S3 aus.
  8. Code kopieren: Kopieren Sie den oben bereitgestellten Code.
  9. Code einfügen: Fügen Sie ihn in einen neuen Arduino-IDE-Sketch ein.
  10. Hochladen: Klicken Sie auf die Schaltfläche Upload, um den Code auf Ihren ESP32 S3 zu übertragen.
  11. Ergebnisse ansehen: Öffnen Sie den seriellen Monitor, um die Ausgabe zu sehen.
  12. SD-Karte prüfen: Nehmen Sie die Micro-SD-Karte aus dem Modul, stecken Sie sie in den USB-SD-Kartenleser, schließen Sie diesen an Ihren PC an und öffnen Sie die Datei esp32.txt, um die geschriebenen Werte zu überprüfen.
  13. Profi-Tipp: Öffnen Sie den seriellen Monitor immer vor dem Hochladen, damit Sie jede Initialisierungsmeldung ab dem ersten Start erfassen.

Ausgabe im seriellen Monitor

Erwartete Ausgabe:

∞
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
ESP32S3 Dev Module
Newbiely.ino
···
8 Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'ESP32S3 Dev Module' on 'COM15')
New Line
9600 baud
[2026-06-16 10:15:22] SD CARD INITIALIZED. [2026-06-16 10:15:22] -------------------- [2026-06-16 10:15:22] -52 [2026-06-16 10:15:22] -12.70 [2026-06-16 10:15:22] HELLO [2026-06-16 10:15:22] newbiely.com [2026-06-16 10:15:22] 12345 [2026-06-16 10:15:22] 1,2,3,4,5
Ln 11, Col 1
ESP32S3 Dev Module on COM15
2

Am PC überprüfen:

  • Nehmen Sie die Micro-SD-Karte aus dem Micro-SD-Kartenmodul
  • Stecken Sie die Micro-SD-Karte in einen USB-SD-Kartenleser
  • Schließen Sie den USB-SD-Kartenleser an den PC an
  • Öffnen Sie die Datei esp32.txt auf Ihrem PC, um die geschriebenen Werte zu bestätigen
ESP32 S3 schreibt Variable auf Micro-SD-Karte

ESP32 S3 - Wie man ein Schlüssel-Wert-Paar in eine Datei auf der Micro-SD-Karte schreibt

Code-Überblick

Der folgende Code zeigt, wie Sie jede Variable als Schlüssel-Wert-Paar auf die Micro-SD-Karte schreiben. So entsteht eine strukturierte, gut lesbare Datei, die sich leicht wieder in Ihre Anwendung einlesen lässt. Dieses Format eignet sich besonders zum Speichern von Konfigurationseinstellungen, die der ESP32 S3 beim Start wieder einlesen kann – siehe das Tutorial ESP32 S3 - Konfiguration von SD-Karte lesen.

ESP32 S3 Code

/* * Dieser ESP32 S3 Code wurde von newbiely.de entwickelt * Dieser ESP32 S3 Code wird der Öffentlichkeit ohne jegliche Einschränkung zur Verfügung gestellt. * Für vollständige Anleitungen und Schaltpläne besuchen Sie bitte: * https://newbiely.de/tutorials/esp32-s3/esp32-s3-write-variable-to-sd-card */ #include <SD.h> #define PIN_SPI_CS 10 // The ESP32 S3 pin connected to the CS pin of SD card module File myFile; int myInt = -52; float myFloat = -12.7; String myString = "HELLO"; char myCharArray[] = "esp32io.com"; byte myByteArray[] = {'1', '2', '3', '4', '5'}; void setup() { Serial.begin(9600); if (!SD.begin(PIN_SPI_CS)) { while (1) { Serial.println(F("SD CARD FAILED, OR NOT PRESENT!")); delay(1000); } } Serial.println(F("SD CARD INITIALIZED.")); Serial.println(F("--------------------")); SD.remove("/esp32.txt"); // delete the file if existed // create new file by opening file for writing myFile = SD.open("/esp32.txt", FILE_WRITE); if (myFile) { myFile.print("myInt="); // write key to SD card myFile.println(myInt); // write int variable to SD card in line myFile.print("myFloat="); // write key to SD card myFile.println(myFloat); // write float variable to SD card in line myFile.print("myString="); // write key to SD card myFile.println(myString); // write String variable to SD card in line myFile.print("myCharArray="); // write key to SD card myFile.println(myCharArray); // write char array to SD card in line myFile.print("myByteArray="); // write key to SD card myFile.write(myByteArray, 5); myFile.write("\n"); // new line myFile.print("myByteArray2="); // write key to SD card for (int i = 0; i < 5; i++) { myFile.write(myByteArray[i]); // new line if (i < 4) myFile.write(","); // comma } myFile.write("\n"); // new line myFile.close(); } else { Serial.print(F("SD Card: Issue encountered while attempting to open the file esp32.txt")); } // open file for reading myFile = SD.open("/esp32.txt", FILE_READ); if (myFile) { while (myFile.available()) { char ch = myFile.read(); // read characters one by one from Micro SD Card Serial.print(ch); // print the character to Serial Monitor } myFile.close(); } else { Serial.print(F("SD Card: Issue encountered while attempting to open the file esp32.txt")); } } void loop() { }

Schnelle Schritte

  1. Neu beim ESP32 S3? Arbeiten Sie zuerst unsere Anleitung Erste Schritte mit dem ESP32 S3 durch.
  2. SD-Karte vorbereiten: Setzen Sie die formatierte Micro-SD-Karte in das SD-Kartenmodul ein.
  3. Schaltung verdrahten: Verbinden Sie das Micro-SD-Kartenmodul gemäß dem obigen Verdrahtungsplan mit dem ESP32 S3.
  4. ESP32 S3 anschließen: Verbinden Sie den ESP32 S3 über das USB-Typ-C-Kabel mit Ihrem PC.
  5. Arduino IDE öffnen: Starten Sie die Arduino IDE auf Ihrem Computer.
  6. Board auswählen: Wählen Sie ESP32 S3 im Board-Menü aus.
  7. Port auswählen: Wählen Sie den richtigen COM-Port für Ihren ESP32 S3 aus.
  8. Code kopieren: Kopieren Sie den oben bereitgestellten Code.
  9. Code einfügen: Fügen Sie ihn in einen neuen Arduino-IDE-Sketch ein.
  10. Hochladen: Klicken Sie auf die Schaltfläche Upload, um den Code auf Ihren ESP32 S3 zu übertragen.
  11. Ergebnisse ansehen: Öffnen Sie den seriellen Monitor, um die Schlüssel-Wert-Ausgabe zu sehen.
  12. SD-Karte prüfen: Entfernen Sie die Karte und überprüfen Sie die Datei auf Ihrem PC.
  13. Profi-Tipp: Das Schlüssel-Wert-Format passt gut zum Tutorial zum Lesen der Konfiguration, sodass Sie Geräteeinstellungen über Neustarts hinweg speichern und wiederherstellen können, ohne neu zu flashen.

Ausgabe im seriellen Monitor

Erwartete Ausgabe:

∞
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
ESP32S3 Dev Module
Newbiely.ino
···
8 Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'ESP32S3 Dev Module' on 'COM15')
New Line
9600 baud
[2026-06-16 11:42:05] SD CARD INITIALIZED. [2026-06-16 11:42:05] -------------------- [2026-06-16 11:42:05] myInt=-52 [2026-06-16 11:42:05] myFloat=-12.70 [2026-06-16 11:42:05] myString=HELLO [2026-06-16 11:42:05] myCharArray=newbiely.com [2026-06-16 11:42:05] myByteArray=12345 [2026-06-16 11:42:05] myByteArray2=1,2,3,4,5
Ln 11, Col 1
ESP32S3 Dev Module on COM15
2

Am PC überprüfen:

  • Nehmen Sie die Micro-SD-Karte aus dem Micro-SD-Kartenmodul
  • Stecken Sie die Micro-SD-Karte in einen USB-SD-Kartenleser
  • Schließen Sie den USB-SD-Kartenleser an den PC an
  • Öffnen Sie die Datei esp32.txt auf Ihrem PC, um die Schlüssel-Wert-Paare zu bestätigen
ESP32 S3 schreibt Schlüssel-Wert-Paare auf Micro-SD-Karte

Anwendungsideen

Die Rechenleistung und die integrierte drahtlose Konnektivität des ESP32 S3 machen ihn zu einer hervorragenden Plattform für die Speicherung von Variablen auf SD-Karten im praktischen Einsatz.

  1. Sensordatenlogger: Regelmäßig Temperatur-, Luftfeuchtigkeits- oder Luftdruckwerte für langfristige Trendanalysen auf die SD-Karte schreiben.
  2. Konfigurationsspeicher: Benutzerdefinierte Einstellungen als Schlüssel-Wert-Paare speichern, damit das Gerät seinen Zustand nach einem Stromausfall wiederherstellt.
  3. Kalibrierungsdaten: Kalibrierungskoeffizienten für analoge Sensoren speichern, damit sie Firmware-Updates und Resets überstehen.
  4. Ereignisse mit Zeitstempel: Ereignisdaten (Türöffnungen, Tastendrücke, Bewegungsauslösungen) mit Zeitstempeln für Sicherheits- oder Prüfprotokolle schreiben.
  5. Logger für entfernte Standorte: Einen ESP32 S3 an einem Ort ohne Internetzugang einsetzen, Daten lokal sammeln und dann die SD-Karte für einen gesammelten Upload entnehmen.
  6. Multisensor-Sammler: Messwerte mehrerer Sensoren in einer strukturierten CSV-Datei auf der SD-Karte für die Auswertung in einer Tabellenkalkulation zusammenführen.

Video Tutorial

Wir erwägen die Erstellung von Video-Tutorials. Wenn Sie Video-Tutorials für wichtig halten, abonnieren Sie bitte unseren YouTube-Kanal , um uns zu motivieren, die Videos zu erstellen.

Sehen Sie sich unten die Schritt-für-Schritt-Videoanleitung für dieses ESP32-S3-Projekt an.

Fordern Sie sich heraus

Diese Übungen bauen schrittweise auf den obigen Beispielen auf, um Ihr Verständnis der Variablenspeicherung auf SD-Karten mit dem ESP32 S3 zu vertiefen.

  1. Anfänger: Den Sketch zum Schreiben von Variablen so ändern, dass er Ihre eigenen Variablennamen und Werte verwendet, und dann die Ausgabe auf der SD-Karte überprüfen.
  2. Anfänger: Der Datei einen Zeilenzähler hinzufügen, sodass jeder geschriebene Eintrag über mehrere Neustarts hinweg fortlaufend nummeriert wird.
  3. Fortgeschritten: Einen Sketch schreiben, der alle zehn Sekunden den aktuellen Wert von millis() zusammen mit einem simulierten Sensorwert protokolliert und jeden Eintrag an eine wachsende CSV-Datei anhängt.
  4. Fortgeschritten: Die Tutorials zum Schreiben von Variablen und zum Lesen der Konfiguration kombinieren, um einen Rundlauftest zu bauen: Einstellungen auf die SD-Karte schreiben, neu starten, wieder einlesen und eine Bestätigung im seriellen Monitor ausgeben.
  5. Experte: Ein rollierendes Protokoll implementieren, das die Datei auf 500 Zeilen begrenzt, indem der vorhandene Inhalt gelesen, die ältesten Einträge verworfen und die Datei bei jedem neuen Variablensatz neu geschrieben wird.
  6. Experte: Einen Logger für mehrere Variablen erstellen, der Messwerte von drei verschiedenen Sensoren in separaten Schlüssel-Wert-Dateien speichert und jede Datei täglich mithilfe eines zeitstempelbasierten Dateinamensschemas rotiert.

※ UNSERE NACHRICHTEN

  • Sie können gerne den Link zu diesem Tutorial teilen. Bitte verwenden Sie jedoch unsere Inhalte nicht auf anderen Websites. Wir haben viel Mühe und Zeit in die Erstellung der Inhalte investiert, bitte respektieren Sie unsere Arbeit!