ESP32 Tutorial 40/55 - Lesen und Schreiben auf die Micro SD-Karte | SunFounder's ESP32 IoT Lernkit

ESP32 Tutorial 40/55 - Lesen und Schreiben auf die Micro SD-Karte | SunFounder's ESP32 IoT Lernkit

In diesem Tutorial werden wir lernen, wie man von einer micro SD-Karte liest und auf sie schreibt, indem wir das ESP32 und das SunFounder ESP32-Erweiterungsboard verwenden. Dies ermöglicht es uns, Daten zu speichern und sie später abzurufen, was für viele IoT-Anwendungen unerlässlich ist. Am Ende dieses Tutorials werden Sie ein funktionierendes Setup haben, das Dateien auf der micro SD-Karte erstellen, schreiben und lesen kann.

Um loszulegen, stellen Sie sicher, dass Ihre Micro-SD-Karte ordnungsgemäß im FAT32-Format formatiert ist, da dies das erforderliche Dateisystem für die Interaktion des ESP32 mit der Karte ist. Wir werden die SD_MMC-Bibliothek verwenden, die den Zugriff auf Dateien auf der Micro-SD-Karte vereinfacht. Es ist wichtig zu beachten, dass die maximale Kapazität der Micro-SD-Karte 32 GB nicht überschreiten sollte.

Hardware erklärt

Die primären Komponenten dieses Projekts umfassen den ESP32-Mikrocontroller und das Micro-SD-Kartenmodul. Der ESP32 ist ein vielseitiger Mikrocontroller, der über integrierte Wi-Fi- und Bluetooth-Funktionen verfügt, was ihn ideal für IoT-Anwendungen macht. Das Micro-SD-Kartenmodul ermöglicht es dem ESP32, von der Karte zu lesen und auf die Karte zu schreiben, wodurch die Datenspeicherung für verschiedene Anwendungen ermöglicht wird.

Die microSD-Karte funktioniert, indem sie ein Dateisystem verwendet, um Daten strukturiert zu speichern. Sie kommuniziert mit dem ESP32 über die SD_MMC-Schnittstelle, die effizientes Lesen und Schreiben von Dateien ermöglicht. Dieses Setup kann zum Protokollieren von Daten, Speichern von Bildern oder für jede andere Anwendung verwendet werden, bei der Datenpersistenz erforderlich ist.

Verdrahtungsanleitungen

ESP32-40-micro-sd-card-1

Um die micro SD-Karte mit dem ESP32 zu verbinden, befolgen Sie diese Schritte:

Zuerst verbinden Sie die Strom- und Masse-Pins. Schließen Sie den VCC-Pin des Micro-SD-Kartenmoduls an den 3,3V-Pin des ESP32 an und verbinden Sie den GND-Pin mit einem der GND-Pins des ESP32. Verbinden Sie als Nächstes die Daten-Pins: Schließen Sie den CS (Chip Select)-Pin des Micro-SD-Kartenmoduls an den Pin an5Auf dem ESP32 ist der MOSI (Master Out Slave In) Pin zu Pin23, der MISO (Master In Slave Out) Pin zu Pin19, und den SCK (Serial Clock) Pin zu Pin18Stellen Sie sicher, dass diese Verbindungen sicher sind, um Kommunikationsprobleme zu vermeiden.

Wenn Sie ein anderes Erweiterungsboard verwenden, können die Pin-Nummern variieren, daher beachten Sie die spezifische Dokumentation zu Ihrem Board. Die Verkabelung ist entscheidend für den erfolgreichen Betrieb des Lesens und Schreibens von Dateien auf der micro SD-Karte.

Codebeispiele und Schritt-für-Schritt-Anleitung

Jetzt werfen wir einen Blick auf die Hauptteile des Codes, die mit der micro SD-Karte interagieren. Die Einrichtung beginnt mit der Initialisierung der seriellen Kommunikation und der Überprüfung, ob die micro SD-Karte erfolgreich eingebunden ist.

Serial.begin(115200); // Initialize serial communication
if (!SD_MMC.begin()) { // Check if SD card is mounted successfully
  Serial.println("Failed to mount SD card"); // Print error message if SD card failed to mount
  return;
}

In diesem Codeschnipsel ist die serielle Kommunikation auf eine Baudrate von 115200 eingestellt, was wichtig für die Überwachung der Ausgabe ist.SD_MMC.begin()Die Funktion versucht, die SD-Karte zu mounten; wenn dies fehlschlägt, wird eine Fehlermeldung im seriellen Monitor ausgegeben.

Der nächste Teil des Codes erstellt eine neue Datei auf der microSD-Karte und schreibt eine Textzeile hinein.

File file = SD_MMC.open("/test.txt", FILE_WRITE); 
if (!file) {
  Serial.println("Failed to open file for writing"); // Print error message if file failed to open
  return;
}
if (file.println("Test file write")) { // Write a line of text to the file
  Serial.println("File write successful"); // Print success message if write operation is successful
} else {
  Serial.println("File write failed"); // Print error message if write operation failed
}
file.close(); // Close the file

Hier eine Datei mit dem Namentest.txtwird im Schreibmodus geöffnet. Wenn die Datei erfolgreich geöffnet wird, schreibt sie eine Textzeile und druckt eine Erfolgsnachricht. Wenn die Schreiboperation fehlschlägt, wird stattdessen eine Fehlermeldung gedruckt. Schließlich wird die Datei geschlossen, um sicherzustellen, dass die Änderungen gespeichert werden.

Der Code liest auch Dateien aus dem Stammverzeichnis der microSD-Karte und gibt deren Namen und Größen aus.

File root = SD_MMC.open("/"); // Open the root directory of SD card
while (File file = root.openNextFile()) { // Loop through all the files in the root directory
  Serial.print(file.name()); // Print the filename
  Serial.print("\t");
  Serial.println(file.size()); // Print the filesize
  file.close(); // Close the file
}

Dieser Codeausschnitt öffnet das Stammverzeichnis und durchläuft alle Dateien, wobei ihre Namen und Größen auf dem seriellen Monitor ausgegeben werden. Dies ist nützlich, um zu überprüfen, ob die Daten erfolgreich geschrieben wurden und um den Inhalt der SD-Karte zu sehen.

Für weitere Einzelheiten beziehen Sie sich auf den vollständigen Code, der unter dem Artikel geladen ist.

Demonstration / Was zu erwarten ist

Nachdem Sie den Code hochgeladen und den ESP32 zurückgesetzt haben, sollten Sie im seriellen Monitor Nachrichten sehen, die anzeigen, ob die SD-Karte erfolgreich eingebunden wurde und ob die Dateioperationen erfolgreich waren. Sie werden auch die Liste der Dateien sehen, die im Stammverzeichnis gefunden wurden, was bestätigt, dass die Daten korrekt geschrieben wurden (im Video um 13:45).

Häufige Fallstricke sind die Sicherstellung, dass die micro SD-Karte richtig formatiert und angeschlossen ist, sowie die Überprüfung, ob der serielle Monitor auf die richtige Baudrate eingestellt ist. Wenn Probleme auftreten, prüfen Sie nochmals Ihre Verdrahtung und Verbindungen.

Video-Zeitstempel

  • 00:00 Start
  • 1:45 Einführung in die Micro SD-Karte auf dem ESP32
  • 3:46 Dokumenten Seite
  • 4:43 Arduino-Code
  • 8:09 ESP32-Board und COM-Port im Arduino IDE auswählen
  • 9:51 Demonstration des Schreibens auf die MicroSD-Karte
  • 11:12 Anzeigen von schriftlichen Dateien auf dem PC

Bilder

ESP32-40-micro-sd-card-1
ESP32-40-micro-sd-card-1
ESP32-40-micro-sd-card-2
ESP32-40-micro-sd-card-2
841-ESP32 Tutorial 40/55- Arduino code for micro SD card
Sprache: C++
Kopiert!

Dinge, die Sie vielleicht brauchen

Dateien📁

Keine Dateien verfügbar.