Arduino Nano ESP32 - Carte SD

Dans ce guide, nous explorerons comment utiliser une carte Micro SD avec l'Arduino Nano ESP32. Nous aborderons les sujets suivants :

Préparation du matériel

1×Arduino Nano ESP32
1×USB Cable Type-C
1×Micro SD Card
1×Micro SD Card Module
1×Jumper Wires
1×Breadboard
1×USB 3.0 SD Card Reader
1×(Recommended) Screw Terminal Adapter for Arduino Nano

Or you can buy the following sensor kits:

1×DIYables Sensor Kit (30 sensors/displays)
1×DIYables Sensor Kit (18 sensors/displays)
Divulgation : Certains des liens fournis dans cette section sont des liens affiliés Amazon. Nous pouvons recevoir une commission pour tout achat effectué via ces liens, sans coût supplémentaire pour vous. Nous vous remercions de votre soutien.

À propos du module de carte Micro SD

Le module de carte Micro SD peut s'interfacer avec l'Arduino Nano ESP32 et il peut contenir une carte Micro SD. En d'autres termes, le module de carte Micro SD est un pont entre l'Arduino Nano ESP32 et la carte Micro SD.

Brochage

Brochage du module de carte Micro SD

Le module de carte Micro SD comprend 6 broches :

  • Broche VCC : connectez à la broche 5V de l'ESP32.
  • Broche GND : connectez cette broche à la GND de l'ESP32.
  • Broche MISO : (Master In Slave Out) connectez cette broche à la broche MOSI de l'ESP32.
  • Broche MOSI : (Master Out Slave In) connectez cette broche à la broche MISO de l'ESP32.
  • Broche SCK : connectez cette broche à la broche SCK de l'ESP32.
  • Broche SS : (Sélection du Slave) connectez cette broche à la broche spécifiée dans le code Arduino Nano ESP32 comme broche SS.

Préparation

  • Connectez la carte Micro SD au PC via un lecteur de carte SD USB 3.0
  • Assurez-vous que la carte Micro SD est formatée en FAT16 ou FAT32 (recherchez sur Google)

Diagramme de câblage

  • Le schéma de câblage pour alimenter la carte Arduino Nano ESP32 via le port USB.
Schéma de câblage du module carte micro SD Arduino Nano ESP32

This image is created using Fritzing. Click to enlarge image

  • Le schéma de câblage pour alimenter la carte Arduino Nano ESP32 via la broche Vin.
Schéma de câblage externe de la carte Micro SD du module Arduino Nano ESP32

This image is created using Fritzing. Click to enlarge image

Arduino Nano ESP32 - Comment ouvrir un fichier sur une carte Micro SD et le créer s'il n'existe pas

Code Arduino Nano ESP32

/* * Ce code Arduino Nano ESP32 a été développé par newbiely.fr * Ce code Arduino Nano ESP32 est mis à disposition du public sans aucune restriction. * Pour des instructions complètes et des schémas de câblage, veuillez visiter: * https://newbiely.fr/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() { }

Étapes rapides

  • Si c'est la première fois que vous utilisez l'Arduino Nano ESP32, consultez comment configurer l'environnement pour l'Arduino Nano ESP32 sur Arduino IDE.
  • Ouvrez Arduino IDE sur votre PC.
  • Sélectionnez la bonne carte Arduino Nano ESP32 (par exemple, Arduino Nano ESP32) et le port COM.
  • Insérez la carte Micro SD dans le module de carte Micro SD.
  • Effectuez le câblage entre le module de carte Micro SD et l'Arduino Nano ESP32 comme le montre le schéma de câblage ci-dessus.
  • Connectez l'Arduino Nano ESP32 au PC via un câble USB.
  • Ouvrez Arduino IDE, sélectionnez la bonne carte et le bon port.
  • Ouvrez le moniteur série sur Arduino IDE.
  • Copiez le code ci-dessus et collez-le dans Arduino IDE.
  • Cliquez sur le bouton Upload sur Arduino IDE pour téléverser le code sur l'Arduino Nano ESP32.
  • Le résultat sur le moniteur série pour la première exécution.
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  
  • Le résultat sur le moniteur série pour les prochaines exécutions
COM6
Send
SD CARD INITIALIZED. esp32.txt exists on SD Card.
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

※ NOTE THAT:

Il se peut que vous ne voyiez PAS le résultat sur le moniteur série lors du premier lancement si le premier téléversement est effectué avant d'ouvrir le moniteur série.

  • Détachez la carte Micro SD du module
  • Insérez la carte Micro SD dans un lecteur de carte SD USB
  • Connectez le lecteur de carte SD USB au PC
  • Vérifiez si le fichier existe ou non

Arduino Nano ESP32 - Comment écrire/lire des données vers/depuis un fichier sur une carte Micro SD

Le code ci-dessous fait :

  • Écrire des données dans un fichier
  • Lire le contenu d'un fichier caractère par caractère et l'afficher sur le moniteur série.
/* * Ce code Arduino Nano ESP32 a été développé par newbiely.fr * Ce code Arduino Nano ESP32 est mis à disposition du public sans aucune restriction. * Pour des instructions complètes et des schémas de câblage, veuillez visiter: * https://newbiely.fr/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() { }
  • Le moniteur série a affiché le contenu du fichier.
COM6
Send
Created by newbiely.fr Learn Arduino Nano ESP32 and SD Card
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

※ NOTE THAT:

Les données seront ajoutées à la fin du fichier par défaut. Si vous redémarrez Arduino Nano ESP32 avec le code ci-dessus, le texte sera de nouveau ajouté au fichier ⇒ le moniteur série affichera plus de lignes comme ci-dessous :

COM6
Send
Créé par newbiely.fr Apprenez Arduino Nano ESP32 et carte SD Créé par newbiely.fr Apprenez Arduino Nano ESP32 et carte SD
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

Vous pouvez également retirer la carte Micro SD du module et l'ouvrir sur votre PC pour vérifier le contenu (un lecteur de carte SD USB est nécessaire)

Arduino Nano ESP32 - Comment lire un fichier sur une carte Micro SD ligne par ligne

/* * Ce code Arduino Nano ESP32 a été développé par newbiely.fr * Ce code Arduino Nano ESP32 est mis à disposition du public sans aucune restriction. * Pour des instructions complètes et des schémas de câblage, veuillez visiter: * https://newbiely.fr/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() { }
  • Le résultat sur le moniteur série
COM6
Send
SD CARD INITIALIZED. Line 1: Created by newbiely.fr Line 2: Learn Arduino Nano ESP32 and SD Card
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

※ NOTE THAT:

Vous pouvez voir plus de lignes sur le moniteur série si le contenu du fichier n'est pas supprimé au préalable.

Arduino Nano ESP32 - Comment écraser un fichier sur une carte Micro SD

Par défaut, le contenu sera ajouté à la fin du fichier. La manière la plus simple de remplacer un fichier est de supprimer le fichier existant et d'en créer un nouveau avec le même nom.

/* * Ce code Arduino Nano ESP32 a été développé par newbiely.fr * Ce code Arduino Nano ESP32 est mis à disposition du public sans aucune restriction. * Pour des instructions complètes et des schémas de câblage, veuillez visiter: * https://newbiely.fr/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() { }
  • Le résultat sur le moniteur série
COM6
Send
SD CARD INITIALIZED. Created by newbiely.fr Learn Arduino Nano ESP32 and SD Card
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  
  • Redémarrez Arduino Nano ESP32
  • Vérifiez si le contenu du fichier sur le moniteur série est ajouté ou non.

Vous pouvez également retirer la carte Micro SD du module et l'ouvrir sur votre PC pour vérifier le contenu (un lecteur de carte SD USB est nécessaire).

Vidéo

Références de fonction

※ OUR MESSAGES

  • Please feel free to share the link of this tutorial. However, Please do not use our content on any other websites. We invested a lot of effort and time to create the content, please respect our work!