ESP32 - SD-kaart

In deze handleiding verkennen we hoe u een Micro SD-kaart gebruikt met de ESP32. We behandelen de volgende onderwerpen:

Hardware Benodigd

1×ESP32 ESP-WROOM-32 Ontwikkelingsmodule
1×USB-kabel Type-C
1×Micro SD-kaart
1×Micro SD-kaartmodule
1×Jumperkabels
1×Breadboard (experimenteerprint)
1×USB 3.0 SD-kaartlezer
1×(Aanbevolen) Schroefklem Uitbreidingsboard voor ESP32
1×(Aanbevolen) Breakout Expansion Board for ESP32
1×(Aanbevolen) Stromsplitter voor ESP32

Of u kunt de volgende kits kopen:

1×DIYables Sensorkit (30 sensoren/displays)
1×DIYables Sensorkit (18 sensoren/displays)
Openbaarmaking: Sommige van de links in deze sectie zijn Amazon-affiliate links. We kunnen een commissie ontvangen voor aankopen die via deze links worden gedaan, zonder extra kosten voor u. We waarderen uw steun.

Over de Micro SD-kaartmodule

De Micro SD-kaartmodule kan worden aangesloten op de ESP32 en kan een Micro SD-kaart bevatten. Met andere woorden, de Micro SD-kaartmodule fungeert als een brug tussen de ESP32 en de Micro SD-kaart.

Pinout

Micro SD Card Module Pinout

De Micro SD-kaartmodule heeft 6 pinnen:

  • VCC-pin: sluit aan op de 5V-pin van de ESP32.
  • GND-pin: sluit aan op de GND van de ESP32.
  • MISO-pin: (Master In Slave Out) sluit aan op de MISO-pin van de ESP32.
  • MOSI-pin: (Master Out Slave In) sluit aan op de MOSI-pin van de ESP32.
  • SCK-pin: sluit aan op de SCK-pin van de ESP32.
  • SS-pin: (Slave Select) sluit aan op de pin die in de ESP32-code als SS-pin is opgegeven.

Voorbereiding

  • Verbind de Micro SD-kaart met de pc via de USB 3.0 SD-kaartlezer.
  • Zorg dat de Micro SD-kaart geformatteerd is als FAT16 of FAT32 (zoek dit op via Google).

Aansluitschema

ESP32 Micro SD Card Module Wiring Diagram

This image is created using Fritzing. Click to enlarge image

※ Notiz:

Als u een Ethernet-shield of een ander shield met een Micro SD-kaarthouder gebruikt, heeft u de Micro SD-kaartmodule niet nodig. U hoeft dan alleen de Micro SD-kaart in de houder op het shield te plaatsen.

ESP32 - Hoe een bestand te openen op de Micro SD-kaart en aan te maken als het niet bestaat

ESP32 Code

/* * Deze ESP32 code is ontwikkeld door newbiely.nl * Deze ESP32 code wordt zonder enige beperking aan het publiek beschikbaar gesteld. * Voor volledige instructies en schema's, bezoek: * https://newbiely.nl/tutorials/esp32/esp32-sd-card */ #include <SD.h> #define PIN_SPI_CS 5 // The ESP32 pin GPIO5 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() { }

Snelle Stappen

  • Als u de ESP32 voor het eerst gebruikt, bekijk dan hoe u de omgeving instelt voor ESP32 in de Arduino IDE.
  • Open Arduino IDE op uw pc.
  • Selecteer de juiste ESP32 board (bijv. ESP32 Dev Module) en COM-poort.
  • Plaats de Micro SD-kaart in de Micro SD-kaartmodule.
  • Maak de verbindingen tussen de Micro SD-kaartmodule en de ESP32 volgens het bovenstaande aansluitschema.
  • Verbind de ESP32 via USB-kabel met de pc.
  • Open de Seriële Monitor in de Arduino IDE.
  • Kopieer de bovenstaande code en plak deze in de Arduino IDE.
  • Klik op de knop Upload in de Arduino IDE om de code naar de ESP32 te uploaden.
  • Het resultaat op de Seriële Monitor bij de eerste uitvoering:
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  
  • Het resultaat op de Seriële Monitor bij volgende uitvoeringen:
COM6
Send
SD CARD INITIALIZED. esp32.txt exists on SD Card.
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

※ Notiz:

Het kan zijn dat u de output op de Seriële Monitor bij de eerste upload niet ziet als u deze niet hebt geopend vóór het uploaden van de code.

  • Verwijder de Micro SD-kaart uit de module.
  • Steek de Micro SD-kaart in een USB SD-kaartlezer.
  • Verbind de USB SD-kaartlezer met de pc.
  • Controleer of het bestand bestaat.

ESP32 - Hoe data te schrijven/lezen naar/van een bestand op de Micro SD-kaart

De onderstaande code doet het volgende:

  • Schrijft data naar een bestand
  • Leest de inhoud van het bestand karakter voor karakter en toont dit in de Seriële Monitor
/* * Deze ESP32 code is ontwikkeld door newbiely.nl * Deze ESP32 code wordt zonder enige beperking aan het publiek beschikbaar gesteld. * Voor volledige instructies en schema's, bezoek: * https://newbiely.nl/tutorials/esp32/esp32-sd-card */ #include <SD.h> #define PIN_SPI_CS 5 // The ESP32 pin GPIO5 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() { }
  • De Seriële Monitor toont de inhoud van het bestand:
COM6
Send
Created by newbiely.com Learn ESP32 and SD Card
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

※ Notiz:

Data wordt standaard aan het einde van het bestand toegevoegd. Als u de ESP32 met bovenstaande code herstart, wordt de tekst opnieuw aan het bestand toegevoegd ⇒ de Seriële Monitor toont dan meer regels zoals hieronder:

COM6
Send
Created by newbiely.com Learn ESP32 and SD Card Created by newbiely.com Learn ESP32 and SD Card
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

U kunt ook de Micro SD-kaart uit de module halen en op uw pc openen om de inhoud te bekijken (hiervoor is een USB SD-kaartlezer nodig).

ESP32 - Hoe een bestand regel-voor-regel te lezen op de Micro SD-kaart

/* * Deze ESP32 code is ontwikkeld door newbiely.nl * Deze ESP32 code wordt zonder enige beperking aan het publiek beschikbaar gesteld. * Voor volledige instructies en schema's, bezoek: * https://newbiely.nl/tutorials/esp32/esp32-sd-card */ #include <SD.h> #define PIN_SPI_CS 5 // The ESP32 pin GPIO5 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() { }
  • Het resultaat op de Seriële Monitor:
COM6
Send
SD CARD INITIALIZED. Line 1: Created by newbiely.com Line 2: Learn ESP32 and SD Card
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

※ Notiz:

U kunt meer regels op de Seriële Monitor zien als de inhoud van het bestand niet eerder is verwijderd.

ESP32 - Hoe een bestand op de Micro SD-kaart te overschrijven

Standaard wordt de inhoud aan het einde van het bestand toegevoegd. De eenvoudigste manier om een bestand te overschrijven is: verwijder het bestaande bestand en maak een nieuw bestand met dezelfde naam aan.

/* * Deze ESP32 code is ontwikkeld door newbiely.nl * Deze ESP32 code wordt zonder enige beperking aan het publiek beschikbaar gesteld. * Voor volledige instructies en schema's, bezoek: * https://newbiely.nl/tutorials/esp32/esp32-sd-card */ #include <SD.h> #define PIN_SPI_CS 5 // The ESP32 pin GPIO5 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() { }
  • Het resultaat op de Seriële Monitor:
COM6
Send
SD CARD INITIALIZED. Created by newbiely.com Learn ESP32 and SD Card
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  
  • Herstart de ESP32.
  • Controleer of de inhoud op de Seriële Monitor is aangevuld of overschreven.

U kunt ook de Micro SD-kaart uit de module verwijderen en deze op uw pc openen om de inhoud te controleren (hiervoor is een USB SD-kaartlezer nodig).

Video Tutorial

We overwegen het maken van videotutorials. Als u videotutorials belangrijk vindt, abonneer u dan op ons YouTube-kanaal om ons te motiveren de video's te maken.

Bekijk onze video-tutorial voor een visuele begeleiding bij dit project! De video biedt extra inzichten en helpt u stap voor stap door het proces.

Functie Referenties

※ ONZE BERICHTEN

  • U bent welkom om de link naar deze tutorial te delen. Gebruik onze inhoud echter niet op andere websites. We hebben veel moeite en tijd gestoken in het maken van de inhoud, respecteer alstublieft ons werk!