ESP32 S3 - Daten mit Zeitstempel auf SD-Karte protokollieren
Erfahren Sie, wie Sie mit dem ESP32 S3 und einem Micro-SD-Kartenmodul einen Datenlogger mit Zeitstempel bauen. Dieses Tutorial zeigt Ihnen, wie Sie reale Daten erfassen, sie mit genauen Datums- und Uhrzeitangaben aus einem RTC-Modul verknüpfen und anschließend dauerhaft auf die Karte schreiben.
Was Sie bauen werden:
- Eine Schaltung, die den ESP32 S3 mit einem Micro-SD-Kartenmodul und einem DS3231-RTC-Modul verbindet
- Einen Sketch, der Dateneinträge mit Zeitstempel in eine einzelne Datei auf der Micro-SD-Karte schreibt
- Einen zweiten Sketch, der die Log-Ausgabe auf tägliche, nach Datum benannte Dateien aufteilt
- Eine Grundlage für langlaufende IoT-Datenprotokollierungs- und Überwachungsanwendungen

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 and RTC Module
Das Micro-SD-Kartenmodul wird über den SPI-Bus mit dem ESP32 S3 verbunden und bietet zuverlässigen Zugriff auf ein FAT16/FAT32-Dateisystem, um Logdateien zu speichern, die über Tage oder Wochen wachsen können. Das DS3231-RTC-Modul hält die Uhrzeit unabhängig vom Stromzustand des ESP32 S3 sehr genau, sodass jeder Logeintrag auch nach einem Reset oder Neustart des Boards ein aussagekräftiges Datum und eine Uhrzeit trägt. Zusammen bilden diese beiden Module das Rückgrat einer robusten, eigenständigen Datenprotokollierungslösung.
Wichtige Spezifikationen
Sie sind mit dem Micro-SD-Kartenmodul oder dem RTC-Modul, ihrer Pinbelegung, Funktionsweise und Programmierung noch nicht vertraut? Sehen Sie sich die ausführlichen Tutorials zu diesen Themen an:
- Tutorial ESP32 S3 - Micro SD Card.
- Tutorial ESP32 S3 - Write Variable to SD Card.
- Tutorial ESP32 S3 - RTC module.
Verdrahtungsdiagramm
Schließen Sie das Micro-SD-Kartenmodul und das DS3231-RTC-Modul gemäß dem folgenden Schaltplan an den ESP32 S3 an und halten Sie die Leitungen kurz, um Störungen auf dem SPI-Bus zu minimieren. Überprüfen Sie jede Verbindung, bevor Sie das Board einschalten, um Initialisierungsfehler zu vermeiden.

Dieses Bild wurde mit Fritzing erstellt. Klicken Sie, um das Bild zu vergrößern.
Sicherheitshinweise
Stellen Sie immer sicher, dass die Micro-SD-Karte vollständig im Modul sitzt und als FAT16 oder FAT32 formatiert ist, bevor Sie einen Protokollierungscode ausführen, denn eine unformatierte oder locker sitzende Karte verhindert die Initialisierung. Entfernen Sie die Karte niemals, während der ESP32 S3 Daten schreibt, da dies das Dateisystem beschädigen und zuvor aufgezeichnete Logeinträge zerstören kann.
| Micro-SD-Modul Pin | ESP32 S3 Pin |
|---|---|
| VCC | 5V |
| GND | GND |
| MISO | GPIO13 (MISO) |
| MOSI | GPIO11 (MOSI) |
| SCK | GPIO12 (SCK) |
| SS | GPIO10 (CS) |
| DS3231 Pin | ESP32 S3 Pin |
| VCC | 3.3V |
| GND | GND |
| SDA | GPIO8 (SDA) |
| SCL | GPIO9 (SCL) |
ESP32 S3 - Daten mit Zeitstempel auf Micro-SD-Karte protokollieren
Code-Übersicht
Der folgende Code liest in jedem Schleifendurchlauf die Werte von zwei Analogpins aus und hängt eine CSV-Zeile mit Zeitstempel an eine einzelne Logdatei auf der Micro-SD-Karte an. Datum und Uhrzeit stammen aus dem DS3231-RTC-Modul, sodass jeder Datensatz genaue Uhrzeitinformationen enthält, die das Log auch lange nach der Erfassung für Analysen nützlich machen. Der Einfachheit halber werden Analogpin-Werte als Beispieldaten verwendet – dasselbe Muster gilt für jeden Sensor, den Sie in die Schaltung einbauen.
ESP32 S3 Code
Schnelle Schritte
- Neu beim ESP32 S3? Arbeiten Sie zuerst unsere Anleitung Erste Schritte mit dem ESP32 S3 durch.
- SD-Karte vorbereiten: Formatieren Sie die Micro-SD-Karte als FAT16 oder FAT32 und stecken Sie sie in das SD-Kartenmodul
- Schaltung verdrahten: Verbinden Sie das Micro-SD-Kartenmodul und das DS3231-RTC-Modul gemäß dem obigen Schaltplan mit dem ESP32 S3
- ESP32 S3 anschließen: Verbinden Sie den ESP32 S3 über das USB-Type-C-Kabel mit Ihrem PC
- Arduino IDE öffnen: Starten Sie die Arduino IDE auf Ihrem Computer
- Board auswählen: Wählen Sie im Board-Menü den ESP32 S3 aus
- Port auswählen: Wählen Sie den richtigen COM-Port für Ihren ESP32 S3
- Serial Monitor öffnen: Öffnen Sie den Serial Monitor vor dem Hochladen (Werkzeuge > Serieller 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 flashen
- Ergebnisse ansehen: Prüfen Sie im Serial Monitor, ob das Log geschrieben wird
- Log lesen: Entnehmen Sie die Micro-SD-Karte, stecken Sie sie in einen USB-SD-Kartenleser, verbinden Sie diesen mit Ihrem PC und öffnen Sie log.txt, um die aufgezeichneten Einträge anzusehen
- Profi-Tipp: Öffnen Sie den Serial Monitor immer vor dem Hochladen, damit Sie jede Initialisierungsmeldung ab dem allerersten Start sehen.
Ausgabe im Serial Monitor
Erwartete Ausgabe:
Das Log auf Ihrem PC ansehen:
- Entnehmen Sie die Micro-SD-Karte aus dem Micro-SD-Kartenmodul
- Stecken Sie die Micro-SD-Karte in einen USB-SD-Kartenleser
- Verbinden Sie den USB-SD-Kartenleser mit Ihrem PC
- Öffnen Sie die Datei log.txt – sie sieht ähnlich aus wie im folgenden Bild

Wenn Sie keinen USB-SD-Kartenleser haben, können Sie den Inhalt der Logdatei direkt auslesen, indem Sie den folgenden ESP32 S3 Code hochladen.
ESP32 S3 - Daten in mehreren Dateien protokollieren
Wenn alle Logeinträge in eine einzige Datei geschrieben werden, wächst diese unbegrenzt, und es wird schwierig, Einträge eines bestimmten Datums zu finden. Der folgende Code löst dieses Problem, indem er pro Tag eine Logdatei anlegt, deren Dateiname das Datum im Format YYYYMMDD.txt trägt, sodass die Dateien leicht zu erkennen und zu sortieren sind.
Code-Übersicht
Der folgende Code fragt in jedem Schleifendurchlauf das DS3231-RTC-Modul ab, um das aktuelle Datum zu ermitteln, öffnet oder erstellt dann die passende Tages-Logdatei und hängt einen Datensatz mit Zeitstempel an. Wenn Mitternacht vorbei ist und sich das Datum ändert, wechselt der Code automatisch zu einer neuen Datei – so bleiben Ihre Logs ohne manuellen Eingriff sauber aufgeteilt.
ESP32 S3 Code
Schnelle Schritte
- Neu beim ESP32 S3? Arbeiten Sie zuerst unsere Anleitung Erste Schritte mit dem ESP32 S3 durch.
- SD-Karte vorbereiten: Formatieren Sie die Micro-SD-Karte als FAT16 oder FAT32 und stecken Sie sie in das SD-Kartenmodul
- Schaltung verdrahten: Verbinden Sie das Micro-SD-Kartenmodul und das DS3231-RTC-Modul gemäß dem obigen Schaltplan mit dem ESP32 S3
- ESP32 S3 anschließen: Verbinden Sie den ESP32 S3 über das USB-Type-C-Kabel mit Ihrem PC
- Code hochladen: Kopieren Sie den obigen Code zur Protokollierung in mehrere Dateien, fügen Sie ihn ein und laden Sie ihn hoch
- Über Nacht laufen lassen: Lassen Sie den ESP32 S3 über Mitternacht hinaus laufen, um den automatischen täglichen Dateiwechsel zu beobachten
- Dateien lesen: Entnehmen Sie nach einer längeren Laufzeit die Micro-SD-Karte, stecken Sie sie in einen USB-SD-Kartenleser und verbinden Sie diesen mit Ihrem PC – Sie sehen dann eine Datei pro Tag, wie unten gezeigt

- Profi-Tipp: Stellen Sie das RTC-Modul vor Ihrem ersten langen Protokollierungslauf auf die richtige Uhrzeit, damit jeder Zeitstempel von Anfang an korrekt ist.
Ausgabe im Serial Monitor
Erwartete Ausgabe während des Betriebs:
Anwendungsideen
Die Rechenleistung und die eingebaute Funkverbindung des ESP32 S3 machen ihn zu einer idealen Plattform für langlaufende Datenprotokollierungssysteme mit Zeitstempel in realen Umgebungen.
- Umweltmonitor: Protokollieren Sie Temperatur, Luftfeuchtigkeit und Luftqualität in regelmäßigen Abständen für Klimastudien in Innenräumen oder im Freien.
- Zutrittskontroll-Log: Zeichnen Sie jedes Türschloss-Ereignis mit genauem Zeitstempel auf, um ein manipulationssicheres Sicherheitsprotokoll zu führen.
- Landwirtschaftlicher Datenlogger: Verfolgen Sie Bodenfeuchte, Lichtintensität und Temperatur über ganze Anbausaisons, um die Wachstumsbedingungen zu optimieren.
- Industrieller Sensorrekorder: Erfassen Sie Vibrations-, Druck- oder Stromwerte von Maschinen zur Unterstützung vorausschauender Wartung.
- Energieverbrauchs-Tracker: Speichern Sie tägliche Stromverbrauchsstatistiken von einem Smart Meter oder Stromsensor zur Rechnungsprüfung und Effizienzanalyse.
- Wetterstation: Protokollieren Sie Luftdruck, Windgeschwindigkeit und Niederschlag mit Zeitstempel zur Analyse lokaler Wettermuster.
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
Die obigen Grundlagen der Protokollierung lassen sich leicht erweitern – probieren Sie diese zunehmend anspruchsvollen Übungen aus, um Ihre Fähigkeiten zu vertiefen.
- Anfänger: Ändern Sie den Einzeldatei-Logger so, dass er als allererste Zeile eine Kopfzeile schreibt (z. B. Timestamp,Value1,Value2), damit sich die CSV-Datei korrekt in einer Tabellenkalkulation öffnen lässt.
- Anfänger: Fügen Sie dem Log eine dritte Datenspalte hinzu, indem Sie statt eines Analogpins einen echten Sensor (z. B. einen DHT11-Temperatursensor) auslesen.
- Fortgeschritten: Implementieren Sie eine Prüfung der maximalen Dateigröße, sodass der Logger automatisch eine neue Datei anlegt (z. B. log_001.txt, log_002.txt), wenn die aktuelle Datei 1 MB überschreitet.
- Fortgeschritten: Fügen Sie einen WiFi-Upload-Schritt hinzu, der einmal pro Stunde die aktuelle Logdatei liest und ihren Inhalt per POST an einen entfernten Server oder Cloud-Speicher sendet.
- Experte: Bauen Sie einen selbstheilenden Logger, der Initialisierungsfehler der SD-Karte erkennt, es mehrmals mit zunehmenden Wartezeiten erneut versucht und über den Serial Monitor eine Warnung ausgibt, wenn die Karte nicht erreichbar ist.
- Experte: Kombinieren Sie den täglichen Mehrdatei-Logger mit einem Webserver, damit Sie die einzelnen Tagesdateien in Ihrem lokalen Netzwerk im Browser ansehen und herunterladen können, ohne die SD-Karte zu entnehmen.