Arduino Nano ESP32 - SD-Karte

In diesem Leitfaden werden wir untersuchen, wie man eine Micro-SD-Karte mit dem Arduino Nano ESP32 verwendet. Wir gehen auf die folgenden Themen ein:

Erforderliche Hardware

1×Arduino Nano ESP32
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×Breadboard
1×(Optional) MicroSD-zu-SD-Speicherkarten-Adapter
1×(Empfohlen) Schraubklemmen-Erweiterungsboard für Arduino Nano
1×(Empfohlen) Breakout-Erweiterungsboard für Arduino Nano
1×(Empfohlen) Stromverteiler für Arduino Nano ESP32

Oder Sie können die folgenden Kits kaufen:

1×DIYables Sensor-Kit (30 Sensoren/Displays)
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.

Über Micro-SD-Kartenmodul

Das Micro-SD-Kartenmodul kann eine Schnittstelle zum Arduino Nano ESP32 herstellen und eine Micro-SD-Karte aufnehmen. Mit anderen Worten ist das Micro-SD-Kartenmodul eine Brücke zwischen dem Arduino Nano ESP32 und der Micro-SD-Karte.

Pinbelegung

Pinbelegung des Micro-SD-Kartenmoduls

Micro-SD-Kartenmodul enthält 6 Pins:

  • VCC-Pin: mit dem 5V-Pin des ESP32 verbinden.
  • GND-Pin: diesen Pin mit dem GND des ESP32 verbinden.
  • MISO-Pin: (Master In Slave Out) diesen Pin mit dem MISO-Pin des ESP32 verbinden.
  • MOSI-Pin: (Master Out Slave In) diesen Pin mit dem MOSI-Pin des ESP32 verbinden.
  • SCK-Pin: diesen Pin mit dem SCK-Pin des ESP32 verbinden.
  • SS-Pin: (Slave Select) diesen Pin mit dem im Arduino Nano ESP32-Code als SS-Pin angegebenen Pin verbinden.

Vorbereitung

  • Schließen Sie die Micro-SD-Karte über einen USB 3.0-SD-Kartenleser an den PC an.
  • Stellen Sie sicher, dass die Micro-SD-Karte im FAT16- oder FAT32-Format formatiert ist (dazu googeln).

Verdrahtungsdiagramm

  • Der Schaltplan, wenn das Arduino Nano ESP32-Board über den USB-Anschluss mit Strom versorgt wird.
Arduino Nano ESP32 Micro-SD-Kartenmodul Verdrahtungsdiagramm

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

  • Der Schaltplan, wenn das Arduino Nano ESP32-Board über den Vin-Pin mit Strom versorgt wird.
Arduino Nano ESP32 Micro-SD-Kartenmodul Schaltplan der externen Stromversorgung

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

Arduino Nano ESP32 - Wie man eine Datei auf der Micro-SD-Karte öffnet und sie erstellt, falls sie nicht existiert

Arduino Nano ESP32-Code

/* * Dieser Arduino Nano ESP32 Code wurde von newbiely.de entwickelt * Dieser Arduino Nano ESP32 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/arduino-nano-esp32/arduino-nano-esp32-sd-card */ #include <SD.h> #define PIN_SPI_CS D4 // The Arduino Nano ESP32 pin connected to the CS pin of SD card module File myFile; 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.")); if (!SD.exists("/esp32.txt")) { Serial.println(F("esp32.txt doesn't exist. Creating esp32.txt file...")); // create a new file by opening a new file and immediately close it myFile = SD.open("/esp32.txt", FILE_WRITE); myFile.close(); } // recheck if file is created or not if (SD.exists("/esp32.txt")) Serial.println(F("esp32.txt exists on SD Card.")); else Serial.println(F("esp32.txt doesn't exist on SD Card.")); } void loop() { }

Schnelle Schritte

  • Wenn Sie Arduino Nano ESP32 zum ersten Mal verwenden, sehen Sie sich wie man die Umgebung für Arduino Nano ESP32 in der Arduino IDE einrichtet an.
  • Öffnen Sie die Arduino IDE auf Ihrem PC.
  • Wählen Sie das richtige Arduino Nano ESP32-Board (z. B. Arduino Nano ESP32) und den COM-Port aus.
  • Setzen Sie die Micro-SD-Karte in das Micro-SD-Kartenmodul ein.
  • Verdrahten Sie das Micro-SD-Kartenmodul mit dem Arduino Nano ESP32 gemäß dem obigen Schaltbild.
  • Schließen Sie den Arduino Nano ESP32 über ein USB-Kabel an den PC an.
  • Öffnen Sie die Arduino IDE, wählen Sie das richtige Board und den Port aus.
  • Öffnen Sie den Seriellen Monitor in der Arduino IDE.
  • Kopieren Sie den obigen Code und fügen Sie ihn in die Arduino IDE ein.
  • Klicken Sie auf die Hochladen-Schaltfläche in der Arduino IDE, um den Code auf den Arduino Nano ESP32 hochzuladen.
  • Das Ergebnis im Seriellen Monitor beim ersten Durchlauf.
COM6
Send
SD CARD INITIALIZED. esp32.txt doesn't exist. Creating esp32.txt file... esp32.txt exists on SD Card.
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  
  • Das Ergebnis im seriellen Monitor für die nächsten Durchläufe
COM6
Send
SD CARD INITIALIZED. esp32.txt exists on SD Card.
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

※ Notiz:

Sie sehen möglicherweise NICHT die Ausgabe im Serial Monitor beim ersten Lauf Ihres ersten Uploads, der vor dem Öffnen des Serial Monitors erfolgt.

  • Entferne die microSD-Karte vom Modul
  • Stecke die microSD-Karte in einen USB-SD-Kartenleser
  • Schließe den USB-SD-Kartenleser an den PC an
  • Überprüfe, ob die Datei existiert oder nicht

Arduino Nano ESP32 - Wie man Daten in eine Datei auf einer Micro-SD-Karte schreibt und liest

Der untenstehende Code führt Folgendes aus:

  • Schreibe Daten in eine Datei
  • Lies den Inhalt einer Datei Zeichen für Zeichen aus und gib ihn im Serial Monitor aus
/* * Dieser Arduino Nano ESP32 Code wurde von newbiely.de entwickelt * Dieser Arduino Nano ESP32 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/arduino-nano-esp32/arduino-nano-esp32-sd-card */ #include <SD.h> #define PIN_SPI_CS D4 // The Arduino Nano ESP32 pin connected to the CS pin of SD card module File myFile; 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.")); // open file for writing myFile = SD.open("/esp32.txt", FILE_WRITE); if (myFile) { myFile.println("Created by esp32io.com"); // write a line to esp32.txt myFile.println("Learn ESP32 and SD Card"); // write another line to esp32.txt 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() { }
  • Der serielle Monitor zeigte den Inhalt der Datei
COM6
Send
Created by newbiely.com Learn Arduino Nano ESP32 and SD Card
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

※ Notiz:

Die Daten werden standardmäßig am Ende der Datei angehängt. Wenn Sie den Arduino Nano ESP32 mit dem obigen Code neu starten, wird der Text erneut an die Datei angehängt ⇒ Der serielle Monitor zeigt mehr Zeilen wie unten:

COM6
Send
Erstellt von newbiely.com Lernen Sie Arduino Nano ESP32 und SD-Karte Erstellt von newbiely.com Lernen Sie Arduino Nano ESP32 und SD-Karte
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

Sie können auch die microSD-Karte vom Modul trennen und sie an Ihrem PC öffnen, um den Inhalt zu überprüfen (ein USB-SD-Kartenleser ist erforderlich).

Arduino Nano ESP32 - Wie man eine Datei zeilenweise von einer Micro-SD-Karte liest

/* * Dieser Arduino Nano ESP32 Code wurde von newbiely.de entwickelt * Dieser Arduino Nano ESP32 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/arduino-nano-esp32/arduino-nano-esp32-sd-card */ #include <SD.h> #define PIN_SPI_CS D4 // The Arduino Nano ESP32 pin connected to the CS pin of SD card module File myFile; 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.")); // open file for writing myFile = SD.open("/esp32.txt", FILE_WRITE); if (myFile) { myFile.println("Created by esp32io.com"); // write a line to esp32.txt myFile.println("Learn ESP32 and SD Card"); // write another line to esp32.txt 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) { int line_count = 0; while (myFile.available()) { char line[100]; // maximum is 100 characters, change it if needed int line_length = myFile.readBytesUntil('\n', line, 100); // read line-by-line from Micro SD Card line_count++; Serial.print(F("Line ")); Serial.print(line_count); Serial.print(F(": ")); Serial.write(line, line_length); // print the character to Serial Monitor // \n character is escaped by readBytesUntil function Serial.write('\n'); // print a new line charactor } myFile.close(); } else { Serial.print(F("SD Card: Issue encountered while attempting to open the file esp32.txt")); } } void loop() { }
  • Das Ergebnis im seriellen Monitor
COM6
Send
SD CARD INITIALIZED. Line 1: Created by newbiely.com Line 2: Learn Arduino Nano ESP32 and SD Card
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

※ Notiz:

Sie sehen möglicherweise mehr Zeilen im Serial Monitor, wenn der Inhalt der Datei vorher nicht gelöscht wird.

Arduino Nano ESP32 - Wie man eine Datei auf einer Micro-SD-Karte überschreibt

Standardmäßig wird der Inhalt am 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.

/* * Dieser Arduino Nano ESP32 Code wurde von newbiely.de entwickelt * Dieser Arduino Nano ESP32 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/arduino-nano-esp32/arduino-nano-esp32-sd-card */ #include <SD.h> #define PIN_SPI_CS D4 // The Arduino Nano ESP32 pin connected to the CS pin of SD card module File myFile; 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.")); 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("Created by esp32io.com"); // write a line to esp32.txt myFile.println("Learn ESP32 and SD Card"); // write another line to esp32.txt 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() { }
  • Das Ergebnis im Serial Monitor
COM6
Send
SD CARD INITIALIZED. Created by newbiely.com Learn Arduino Nano ESP32 and SD Card
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  
  • Starte den Arduino Nano ESP32 neu.
  • Überprüfe, ob der Inhalt der Datei im seriellen Monitor angehängt wird oder nicht.

Sie können die Micro-SD-Karte auch vom Modul trennen und sie an Ihrem PC öffnen, um den Inhalt zu überprüfen (ein USB-SD-Kartenleser wird benötigt).

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.

Funktionsreferenzen

※ 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!