ESP8266 - Micro-SD-Karte

Dieses Tutorial erklärt dir, wie du die Micro-SD-Karte mit dem ESP8266 verwendest. Im Detail werden wir Folgendes lernen:

ESP8266 NodeMCU Micro-SD-Karte

Erforderliche Hardware

1×ESP8266 NodeMCU
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) Schraubklemmen-Erweiterungsboard für ESP8266
1×(Empfohlen) Stromverteiler für ESP8266 Typ-C

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 das Micro-SD-Kartenmodul

Das Micro-SD-Kartenmodul ist eine Verbindung zwischen dem ESP8266 und einer Micro-SD-Karte. Es kann eine Verbindung zum ESP8266 herstellen und kann verwendet werden, um die Micro-SD-Karte zu halten. Mit anderen Worten dient es als Brücke zwischen den beiden.

Pinbelegung des Micro-SD-Kartenmoduls

Pinbelegung des Micro-SD-Kartenmoduls

Das Micro-SD-Kartenmodul hat 6 Pins:

  • VCC-Pin: Dies sollte mit dem 5V-Pin des Arduino verbunden werden.
  • GND-Pin: Dies sollte mit dem GND des Arduino verbunden werden.
  • MISO-Pin: (Master In Slave Out) Dies sollte mit dem MISO-Pin des Arduino verbunden werden.
  • MOSI-Pin: (Master Out Slave In) Dies sollte mit dem MOSI-Pin des Arduino verbunden werden.
  • SCK-Pin: Dies sollte mit dem SCK-Pin des Arduino verbunden werden.
  • SS-Pin: (Slave Select) Dies sollte mit dem im ESP8266-Code als SS-Pin angegebenen Pin verbunden werden.

Vorbereitung

Stellen Sie sicher, dass die microSD-Karte entweder mit FAT16 oder FAT32 formatiert ist (Sie können online nach weiteren Informationen suchen).

Verdrahtungsdiagramm

ESP8266 NodeMCU Micro-SD-Kartenmodul Verdrahtungsdiagramm

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

Weitere Informationen finden Sie unter ESP8266-Pinbelegung und wie man ESP8266 und andere Komponenten mit Strom versorgt.

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

ESP8266-Code

Schnelle Schritte

Um mit ESP8266 in der Arduino-IDE zu beginnen, folgen Sie diesen Schritten:

  • Schau dir das Tutorial Wie richtet man die Entwicklungsumgebung für ESP8266 in der Arduino IDE ein an, wenn du ESP8266 zum ersten Mal verwendest.
  • Verbinde die Komponenten wie im Diagramm gezeigt.
  • Schließe das ESP8266-Board mit einem USB-Kabel an deinen Computer an.
  • Öffne die Arduino IDE auf deinem Computer.
  • Wähle das richtige ESP8266-Board, z. B. NodeMCU 1.0 (ESP-12E-Modul), und den jeweiligen COM-Port.
  • Stecke die Micro-SD-Karte in das Micro-SD-Kartenmodul.
  • Stelle die Verbindungen zwischen dem Micro-SD-Kartenmodul und dem ESP8266 gemäß dem Verdrahtungsdiagramm her.
  • Schließe den ESP8266 mit einem USB-Kabel an den PC an.
  • Öffne die Arduino IDE und wähle das passende Board und den passenden Port.
  • Öffne den Serial Monitor in der Arduino IDE.
  • Kopiere den folgenden Code und füge ihn in die Arduino IDE ein.
/* * Dieser ESP8266 NodeMCU Code wurde von newbiely.de entwickelt * Dieser ESP8266 NodeMCU 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/esp8266/esp8266-micro-sd-card */ #include <SD.h> #define PIN_SPI_CS D8 File myFile; void setup() { Serial.begin(9600); if (!SD.begin(PIN_SPI_CS)) { Serial.println(F("SD CARD FAILED, OR NOT PRESENT!")); while (1); // don't do anything more: } Serial.println(F("SD CARD INITIALIZED.")); if (!SD.exists("esp8266.txt")) { Serial.println(F("esp8266.txt doesn't exist. Creating esp8266.txt file...")); // create a new file by opening a new file and immediately close it myFile = SD.open("esp8266.txt", FILE_WRITE); myFile.close(); } // recheck if file is created or not if (SD.exists("esp8266.txt")) Serial.println(F("esp8266.txt exists on SD Card.")); else Serial.println(F("esp8266.txt doesn't exist on SD Card.")); } void loop() { }
  • Klicken Sie auf die Schaltfläche Hochladen im Arduino IDE, um den Code für den ESP8266 zu kompilieren und hochzuladen.
  • Der serielle Monitor zeigt das Ergebnis der ersten Ausführung an.
COM6
Send
SD CARD INITIALIZED. esp8266.txt doesn't exist. Creating esp8266.txt file... esp8266.txt exists on SD Card.
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  
  • Wird anders sein
  • Das im Serial Monitor für nachfolgende Durchläufe angezeigte Ergebnis wird unterschiedlich sein.
COM6
Send
SD CARD INITIALIZED. esp8266.txt exists on SD Card.
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

※ Notiz:

Sie können die Ausgabe möglicherweise nicht im Serial Monitor sehen, wenn Sie Ihren Code zum ersten Mal hochladen, falls dies vor dem Öffnen des Serial Monitors geschieht.

  • Entfernen Sie die Micro-SD-Karte aus dem Modul.
  • Stecken Sie die Micro-SD-Karte in einen USB-SD-Kartenleser.
  • Schließen Sie den USB-SD-Kartenleser an den Computer an.
  • Überprüfen Sie, ob die Datei vorhanden ist oder nicht.

ESP8266 - Wie man Daten in eine Datei auf einer Micro-SD-Karte schreibt und liest

Der folgende Code:

  • Speichert Daten in eine Datei
  • Liest den Inhalt der Datei Zeichen für Zeichen aus und zeigt ihn am seriellen Monitor an.
/* * Dieser ESP8266 NodeMCU Code wurde von newbiely.de entwickelt * Dieser ESP8266 NodeMCU 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/esp8266/esp8266-micro-sd-card */ #include <SD.h> #define PIN_SPI_CS D8 File myFile; void setup() { Serial.begin(9600); if (!SD.begin(PIN_SPI_CS)) { Serial.println(F("SD CARD FAILED, OR NOT PRESENT!")); while (1); // don't do anything more: } Serial.println(F("SD CARD INITIALIZED.")); // open file for writing myFile = SD.open("esp8266.txt", FILE_WRITE); if (myFile) { myFile.println("Created by newbiely.com"); // write a line to esp8266.txt myFile.println("Learn ESP8266 and SD Card"); // write another line to esp8266.txt myFile.close(); } else { Serial.print(F("SD Card: error on opening file esp8266.txt")); } // open file for reading myFile = SD.open("esp8266.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: error on opening file esp8266.txt")); } } void loop() { }
  • Der serielle Monitor zeigte den Inhalt der Datei an.
COM6
Send
Created by ArduinoGetStarted.com Learn ESP8266 and SD Card
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

※ Notiz:

Standardmäßig werden die Daten am Ende der Datei hinzugefügt.

Wenn Sie den ESP8266 mit dem obigen Code neu starten, wird der Text erneut an die Datei angehängt, und der Serial Monitor wird weitere Zeilen wie diese anzeigen:

COM6
Send
Erstellt von ArduinoGetStarted.com Lernen Sie ESP8266 und SD-Karte Erstellt von ArduinoGetStarted.com Lernen Sie ESP8266 und SD-Karte
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

Sie können die microSD-Karte aus dem Modul entfernen und einen USB-SD-Kartenleser verwenden, um deren Inhalt auf Ihrem Computer anzuzeigen.

ESP8266 - Wie man eine Datei auf einer Micro-SD-Karte zeilenweise liest

/* * Dieser ESP8266 NodeMCU Code wurde von newbiely.de entwickelt * Dieser ESP8266 NodeMCU 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/esp8266/esp8266-micro-sd-card */ #include <SD.h> #define PIN_SPI_CS D8 File myFile; void setup() { Serial.begin(9600); if (!SD.begin(PIN_SPI_CS)) { Serial.println(F("SD CARD FAILED, OR NOT PRESENT!")); while (1); // don't do anything more: } Serial.println(F("SD CARD INITIALIZED.")); // open file for writing myFile = SD.open("esp8266.txt", FILE_WRITE); if (myFile) { myFile.println("Created by newbiely.com"); // write a line to esp8266.txt myFile.println("Learn ESP8266 and SD Card"); // write another line to esp8266.txt myFile.close(); } else { Serial.print(F("SD Card: error on opening file esp8266.txt")); } // open file for reading myFile = SD.open("esp8266.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: error on opening file esp8266.txt")); } } void loop() { }
  • Die Ausgabe, die im seriellen Monitor angezeigt wird.
COM6
Send
SD CARD INITIALIZED. Line 1: Created by ArduinoGetStarted.com Line 2: Learn ESP8266 and SD Card
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

※ Notiz:

Sie können im seriellen Monitor zusätzliche Zeilen sehen, falls der Inhalt der Datei zuvor nicht gelöscht wurde.

ESP8266 - Wie man eine Datei auf einer MicroSD-Karte überschreibt

Standardmäßig wird der Inhalt am Ende der Datei hinzugefügt. Der einfachste Weg, eine Datei zu überschreiben, ist: die vorhandene Datei zu löschen und eine neue mit demselben Namen zu erstellen.

/* * Dieser ESP8266 NodeMCU Code wurde von newbiely.de entwickelt * Dieser ESP8266 NodeMCU 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/esp8266/esp8266-micro-sd-card */ #include <SD.h> #define PIN_SPI_CS D8 File myFile; void setup() { Serial.begin(9600); if (!SD.begin(PIN_SPI_CS)) { Serial.println(F("SD CARD FAILED, OR NOT PRESENT!")); while (1); // don't do anything more: } Serial.println(F("SD CARD INITIALIZED.")); SD.remove("esp8266.txt"); // delete the file if existed // create new file by opening file for writing myFile = SD.open("esp8266.txt", FILE_WRITE); if (myFile) { myFile.println("Created by newbiely.com"); // write a line to esp8266.txt myFile.println("Learn ESP8266 and SD Card"); // write another line to esp8266.txt myFile.close(); } else { Serial.print(F("SD Card: error on opening file esp8266.txt")); } // open file for reading myFile = SD.open("esp8266.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: error on opening file esp8266.txt")); } } void loop() { }
  • Das Ergebnis, das im seriellen Monitor angezeigt wird.
COM6
Send
SD CARD INITIALIZED. Created by ArduinoGetStarted.com Learn ESP8266 and SD Card
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  
  • Starten Sie den ESP8266 neu.
  • Überprüfen Sie, ob der Inhalt der Datei im seriellen Monitor angezeigt wird oder nicht.

Sie können die Micro-SD-Karte aus dem Modul entfernen und den Inhalt auf Ihrem Computer anzeigen. Dafür ist ein USB-SD-Kartenleser erforderlich.

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.

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