ESP32 S3 - SD-Karte
Erfahren Sie, wie Sie eine Micro-SD-Karte mit Ihrem ESP32 S3 verwenden, um Daten für Ihre IoT-Projekte zu speichern und abzurufen. Dieses Tutorial behandelt alles von der Verdrahtung des SD-Kartenmoduls bis zum Lesen, Schreiben und Verwalten von Dateien.
Was Sie bauen werden:
- Eine Schaltung, die den ESP32 S3 über SPI mit einem Micro-SD-Kartenmodul verbindet
- Einen Sketch, der eine Datei auf der SD-Karte öffnet oder erstellt
- Programme, die Dateiinhalte schreiben, lesen und überschreiben
- Eine Grundlage für Datenlogger- und Dateiverwaltungsanwendungen

Erforderliche Hardware
Oder Sie können die folgenden Kits kaufen:
| 1 | × | DIYables ESP32 S3 Starter-Kit (ESP32 S3 enthalten) | |
| 1 | × | DIYables Sensor-Kit (18 Sensoren/Displays) |
Ü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 die Spannungsregelung und die Signalumsetzung, sodass der ESP32 S3 Kartendaten bei 3,3-V-Logikpegeln zuverlässig lesen und schreiben kann.
Wichtige Spezifikationen
Das Modul kommuniziert über SPI und unterstützt Micro-SD-Karten, die als FAT16 oder FAT32 formatiert sind. Es akzeptiert eine Betriebsspannung zwischen 3,3 V und 5 V und ist damit mit einer Vielzahl von Mikrocontrollern kompatibel. Die sechspolige Schnittstelle stellt die Leitungen VCC, GND, MISO, MOSI, SCK und SS bereit, und das Modul eignet sich hervorragend für Datenprotokollierung, das Speichern von Konfigurationen und das Bereitstellen statischer Webinhalte von eigenständigen IoT-Geräten.
Pinbelegung
Das Micro-SD-Kartenmodul besitzt sechs Pins, die direkt auf den SPI-Bus des ESP32 S3 abgebildet werden.

- VCC: Stromversorgung — mit dem 5-V-Pin des ESP32 S3 verbinden
- GND: Masse — mit einem beliebigen GND-Pin des ESP32 S3 verbinden
- MISO: Master In Slave Out — Datenleitung von der SD-Karte zum ESP32 S3
- MOSI: Master Out Slave In — Datenleitung vom ESP32 S3 zur SD-Karte
- SCK: Serial Clock — Taktsignal, das vom ESP32 S3 erzeugt wird
- SS: Slave Select — Chip-Enable-Leitung, mit einem freien digitalen Pin verbinden, der in Ihrem Code als CS definiert ist
Vorbereitung
Bevor Sie beginnen, müssen Sie Ihre Micro-SD-Karte vorbereiten, damit der ESP32 S3 korrekt darauf zugreifen kann.
- Stecken Sie die Micro-SD-Karte in einen USB-3.0-SD-Kartenleser
- Schließen Sie den Kartenleser an Ihren PC an
- Formatieren Sie die Micro-SD-Karte als FAT16 oder FAT32 (suchen Sie online nach einer Formatierungsanleitung für Ihr Betriebssystem)
- Werfen Sie die Karte nach dem Formatieren sicher aus
- Stecken Sie die formatierte Karte in das Micro-SD-Kartenmodul
Verdrahtungsdiagramm
Verbinden Sie das Micro-SD-Kartenmodul gemäß dem folgenden Schaltplan mit dem ESP32 S3 und halten Sie alle Kabel kurz und ordentlich, um Störungen auf dem SPI-Bus zu verringern. Überprüfen Sie jede Verbindung, bevor Sie die Platine mit Strom versorgen.

Dieses Bild wurde mit Fritzing erstellt. Klicken Sie, um das Bild zu vergrößern.
Sicherheitshinweise
Vergewissern Sie sich immer, dass die SD-Karte vollständig im Modul sitzt, bevor Sie Code ausführen, da eine locker sitzende Karte Initialisierungsfehler verursacht, die schwer zu diagnostizieren sind. Verwenden Sie eine hochwertige Markenkarte, 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.
| Pin des Micro-SD-Moduls | ESP32 S3 Pin |
|---|---|
| VCC | 5V |
| GND | GND |
| MISO | GPIO13 (MISO) |
| MOSI | GPIO11 (MOSI) |
| SCK | GPIO12 (SCK) |
| SS | GPIO10 (CS) |
ESP32 S3 - Eine Datei auf der Micro-SD-Karte öffnen und erstellen, falls sie nicht existiert
Code-Übersicht
Der folgende Code zeigt, wie die SD-Karte über SPI initialisiert und eine benannte Datei geöffnet wird, wobei sie automatisch erstellt wird, wenn sie noch nicht existiert. Bei jedem Start prüft der Sketch, ob die Datei vorhanden ist, meldet, ob sie gefunden oder neu erstellt wurde, und beendet sich — so haben Sie eine saubere, wiederholbare Möglichkeit, persistenten Speicher einzurichten, bevor Daten geschrieben werden.
ESP32 S3 Code
Schnelle Schritte
- Neu beim ESP32 S3? Arbeiten Sie zuerst unsere Anleitung Erste Schritte mit dem ESP32 S3 durch.
- SD-Karte vorbereiten: Stecken Sie die formatierte Micro-SD-Karte in das SD-Kartenmodul
- Schaltung verdrahten: Verbinden Sie das Micro-SD-Kartenmodul gemäß dem obigen Schaltplan mit dem ESP32 S3
- ESP32 S3 anschließen: Verbinden Sie den ESP32 S3 über das USB-Typ-C-Kabel mit Ihrem PC
- Arduino IDE öffnen: Starten Sie die Arduino IDE auf Ihrem Computer
- Board auswählen: Wählen Sie ESP32 S3 im Board-Menü aus
- Port auswählen: Wählen Sie den richtigen COM-Port für Ihren ESP32 S3
- Seriellen Monitor öffnen: Öffnen Sie den seriellen Monitor vor dem Hochladen (Tools > Serial Monitor)
- Code kopieren: Kopieren Sie den oben bereitgestellten Code
- Code einfügen: Fügen Sie ihn in einen neuen Sketch in der Arduino IDE ein
- Hochladen: Klicken Sie auf die Schaltfläche Upload, um den Code auf Ihren ESP32 S3 zu übertragen
- Ergebnisse ansehen: Prüfen Sie im seriellen Monitor den Status der Dateierstellung
- Profi-Tipp: Öffnen Sie den seriellen Monitor immer vor dem Hochladen, damit Sie jede Initialisierungsmeldung schon ab dem ersten Start sehen.
Ausgabe im seriellen Monitor
Erster Durchlauf (Datei existiert noch nicht):
Folgende Durchläufe (Datei existiert bereits):
※ Notiz:
Beim ersten Durchlauf sehen Sie die Ausgabe im seriellen Monitor möglicherweise NICHT, wenn Sie den Code hochladen, bevor Sie den seriellen Monitor öffnen.
Am PC überprüfen:
- Entnehmen Sie die Micro-SD-Karte aus dem Modul
- Stecken Sie sie in Ihren USB-SD-Kartenleser
- Schließen Sie den Kartenleser an Ihren PC an
- Öffnen Sie den Ordner der SD-Karte und prüfen Sie, ob die Datei esp32.txt erstellt wurde
ESP32 S3 - Daten in eine Datei auf der Micro-SD-Karte schreiben und daraus lesen
Code-Übersicht
Der folgende Code zeigt, wie Textdaten in eine Datei geschrieben und sofort wieder gelesen werden, wobei jedes Zeichen im seriellen Monitor ausgegeben wird. Er öffnet oder erstellt die Zieldatei, schreibt zwei Textzeilen, springt dann zum Anfang zurück und gibt jedes Zeichen aus — so können Sie einfach bestätigen, dass das Geschriebene auch gelesen wird.
Ausgabe im seriellen Monitor
Erwartete Ausgabe:
※ Notiz:
Die Daten werden standardmäßig an das Ende der Datei angehängt. Wenn Sie den ESP32 S3 mit dem obigen Code neu starten, wird der Text erneut angehängt und der serielle Monitor zeigt mehr Zeilen an:
Datei überprüfen:
- Entnehmen Sie die Micro-SD-Karte sicher aus dem Modul
- Stecken Sie sie in Ihren USB-SD-Kartenleser
- Verbinden Sie ihn mit Ihrem PC und öffnen Sie die Datei, um ihren Inhalt anzusehen
ESP32 S3 - Eine Datei auf der Micro-SD-Karte Zeile für Zeile lesen
Code-Übersicht
Der folgende Code zeigt, wie Dateiinhalte Zeile für Zeile statt Zeichen für Zeichen gelesen werden, was deutlich praktischer ist, wenn Ihre Datei strukturierte Daten oder Protokolleinträge enthält. Er verwendet readStringUntil('\n'), um jede Zeile auszulesen, und nummeriert die Ausgabe, sodass Sie sofort sehen, wie viele Zeilen die Datei enthält.
Ausgabe im seriellen Monitor
Erwartete Ausgabe:
※ Notiz:
Sie sehen möglicherweise mehr Zeilen im seriellen Monitor, wenn der Inhalt der Datei vor dem Ausführen dieses Sketches nicht gelöscht wurde.
ESP32 S3 - Eine Datei auf der Micro-SD-Karte überschreiben
Code-Übersicht
Der folgende Code zeigt die einfachste Methode, eine Datei zu überschreiben: Löschen Sie die vorhandene Datei und erstellen Sie eine neue mit demselben Namen, bevor Sie neue Inhalte schreiben. Da die SD-Bibliothek standardmäßig anhängt, ist dieses Muster aus Löschen und Neuerstellen der zuverlässigste Weg, um sicherzustellen, dass die Datei nur die Daten des aktuellen Durchlaufs enthält.
Standardmäßig werden Inhalte an das Ende der Datei angehängt. Der einfachste Weg, eine Datei zu überschreiben, besteht darin, die vorhandene Datei zu löschen und eine neue mit demselben Namen zu erstellen.
Ausgabe im seriellen Monitor
Erwartete Ausgabe:
Überschreiben testen:
- Drücken Sie die Reset-Taste an Ihrem ESP32 S3
- Prüfen Sie die Ausgabe im seriellen Monitor
- Vergewissern Sie sich, dass der Inhalt NICHT doppelt vorhanden ist
- Die Datei sollte nur einen Satz Zeilen enthalten
Am PC überprüfen:
- Entnehmen Sie die Micro-SD-Karte aus dem Modul
- Stecken Sie sie in Ihren USB-SD-Kartenleser
- Verbinden Sie ihn mit Ihrem PC und öffnen Sie die Datei
- Bestätigen Sie, dass der Inhalt der erwarteten Ausgabe entspricht
Anwendungsideen
Die Rechenleistung und die integrierte Funkverbindung des ESP32 S3 machen ihn zu einem hervorragenden Partner für SD-Karten-basierten Speicher im praktischen Einsatz.
- Klimadatenlogger: Temperatur- und Luftfeuchtigkeitswerte in regelmäßigen Abständen für die langfristige Umweltüberwachung aufzeichnen.
- Eigenständige Sensorstation: Sensorwerte lokal speichern, ohne auf eine WLAN-Verbindung angewiesen zu sein, und sie gesammelt hochladen, sobald eine Verbindung verfügbar ist.
- GPS-Positionslogger: GPS-Koordinaten mit Zeitstempeln protokollieren, um Routen oder Bewegungen von Gegenständen zu verfolgen.
- Sicherheitsereignisprotokoll: Bewegungserkennungs- oder Türkontaktereignisse mit Zeitstempeln in einer rollierenden Protokolldatei speichern.
- Landwirtschaftlicher Monitor: Bodenfeuchte-, Licht- und Temperaturdaten über Wachstumsperioden hinweg zur Analyse aufzeichnen.
- Stromverbrauchsmesser: Tägliche Energieverbrauchsstatistiken für Geräte oder Solaranlagen speichern.
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.
...VIDEO esp32-s3/micro-sd-card.mp4
...VIDEO
Fordern Sie sich heraus
Die obigen Beispiele bieten Ihnen eine solide Grundlage — gehen Sie nun mit diesen zunehmend anspruchsvollen Übungen weiter.
- Einsteiger: Ändern Sie den Sketch zum Öffnen einer Datei so, dass er eine Datei mit Ihrem eigenen Namen erstellt und eine persönliche Nachricht hineinschreibt.
- Einsteiger: Fügen Sie jeder geschriebenen Zeile mit der Funktion millis() einen Zeitstempel hinzu, damit Sie sehen, wann jeder Eintrag erfasst wurde.
- Fortgeschritten: Schreiben Sie einen Sketch, der alle fünf Sekunden simulierte Sensorwerte protokolliert und sie mit Zeitstempeln an eine CSV-Datei auf der SD-Karte anhängt.
- Fortgeschritten: Erstellen Sie ein Menü im seriellen Monitor, mit dem Sie durch Senden von Ein-Zeichen-Befehlen eine Datei lesen, schreiben oder löschen können.
- Experte: Implementieren Sie ein Ringprotokoll, das nur die letzten 100 Einträge behält und den ältesten Eintrag automatisch löscht, wenn das Limit erreicht ist.
- Experte: Erstellen Sie einen Multi-Sensor-Datenlogger, der die Messwerte jedes Sensors in eine separate Datei schreibt und die Dateien mithilfe eines Echtzeituhrmoduls täglich rotiert.