ESP32 S3 - Carte SD

Découvrez comment utiliser une carte Micro SD avec votre ESP32 S3 pour stocker et récupérer des données pour vos projets IoT. Ce tutoriel couvre tout, du câblage du module de carte SD à la lecture, l'écriture et la gestion de fichiers.

Ce que vous allez construire :

  1. Un circuit connectant l'ESP32 S3 à un module de carte Micro SD via SPI
  2. Un sketch qui ouvre ou crée un fichier sur la carte SD
  3. Des programmes qui écrivent, lisent et écrasent le contenu de fichiers
  4. Une base pour des applications de journalisation de données et de gestion de fichiers
ESP32 S3 - Carte SD

À propos du module de carte Micro SD

Le module de carte Micro SD est une carte d'interface qui relie votre ESP32 S3 à une carte Micro SD en utilisant le protocole de communication SPI. Il gère la régulation de tension et la traduction de signal afin que l'ESP32 S3 puisse lire et écrire les données de la carte de manière fiable à des niveaux logiques de 3,3V.

Caractéristiques principales

Le module communique en SPI et prend en charge les cartes Micro SD formatées en FAT16 ou FAT32. Il accepte une tension de fonctionnement entre 3,3V et 5V, ce qui le rend compatible avec un large éventail de microcontrôleurs. L'interface à six broches expose les lignes VCC, GND, MISO, MOSI, SCK et SS, et le module est bien adapté à la journalisation de données, au stockage de configuration, et à la diffusion de contenu web statique depuis des appareils IoT autonomes.

Brochage

Le module de carte Micro SD expose six broches qui correspondent directement au bus SPI de l'ESP32 S3.

Brochage du module de carte Micro SD
  1. VCC : Alimentation — connectez à la broche 5V de l'ESP32 S3
  2. GND : Masse — connectez à n'importe quelle broche GND de l'ESP32 S3
  3. MISO : Master In Slave Out — ligne de données de la carte SD vers l'ESP32 S3
  4. MOSI : Master Out Slave In — ligne de données de l'ESP32 S3 vers la carte SD
  5. SCK : Horloge série — signal de synchronisation piloté par l'ESP32 S3
  6. SS : Slave Select — ligne d'activation de puce, connectez à n'importe quelle broche numérique libre définie comme CS dans votre code

Préparation

Avant de commencer, vous devez préparer votre carte Micro SD afin que l'ESP32 S3 puisse y accéder correctement.

  1. Insérez la carte Micro SD dans un lecteur de carte SD USB 3.0
  2. Connectez le lecteur à votre PC
  3. Formatez la carte Micro SD en FAT16 ou FAT32 (cherchez en ligne les instructions de formatage pour votre système d'exploitation)
  4. Éjectez la carte en toute sécurité une fois le formatage terminé
  5. Insérez la carte formatée dans le module de carte Micro SD

Schéma de câblage

Connectez le module de carte Micro SD à l'ESP32 S3 en suivant le schéma ci-dessous, en gardant tous les fils courts et bien rangés pour réduire le bruit sur le bus SPI. Vérifiez chaque connexion avant de mettre la carte sous tension.

Schéma de câblage du module de carte Micro SD ESP32 S3

Cette image a été créée avec Fritzing. Cliquez pour agrandir l'image.

Consignes de sécurité

Vérifiez toujours que la carte SD est bien insérée dans le module avant d'exécuter du code, car une carte mal insérée causera des échecs d'initialisation difficiles à diagnostiquer. Utilisez une carte Micro SD de qualité, de marque reconnue, pour éviter des erreurs de lecture/écriture intermittentes, et ne retirez jamais la carte pendant que l'ESP32 S3 écrit activement des données pour éviter une corruption du système de fichiers.

Broche du module Micro SD Broche ESP32 S3
VCC 5V
GND GND
MISO GPIO13 (MISO)
MOSI GPIO11 (MOSI)
SCK GPIO12 (SCK)
SS GPIO10 (CS)

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

Aperçu du code

Le code suivant illustre comment initialiser la carte SD via SPI et ouvrir un fichier nommé, en le créant automatiquement s'il n'existe pas déjà. À chaque démarrage, le sketch vérifie la présence du fichier, indique s'il a été trouvé ou nouvellement créé, puis se termine — vous donnant un moyen propre et reproductible de préparer un stockage persistant avant qu'aucune donnée ne soit écrite.

Code ESP32 S3

/* * Ce code ESP32 S3 a été développé par newbiely.fr * Ce code ESP32 S3 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/esp32-s3/esp32-s3-sd-card */ #include <SD.h> #define PIN_SPI_CS 10 // The ESP32 S3 pin connected to the CS pin of SD card module File myFile; void setup() { Serial.begin(115200); 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

  1. Nouveau sur l'ESP32 S3 ? Suivez d'abord notre guide ESP32 S3 - Premiers pas.
  2. Préparez la carte SD : Insérez la carte Micro SD formatée dans le module de carte SD
  3. Câblez le circuit : Connectez le module de carte Micro SD à l'ESP32 S3 en suivant le schéma de câblage ci-dessus
  4. Connectez l'ESP32 S3 : Branchez l'ESP32 S3 sur votre PC à l'aide du câble USB Type-C
  5. Ouvrez l'Arduino IDE : Lancez l'Arduino IDE sur votre ordinateur
  6. Sélectionnez la carte : Choisissez ESP32 S3 dans le menu des cartes
  7. Sélectionnez le port : Choisissez le bon port COM pour votre ESP32 S3
  8. Ouvrez le moniteur série : Ouvrez le moniteur série avant de téléverser (Tools > Serial Monitor)
  9. Copiez le code : Copiez le code fourni ci-dessus
  10. Collez le code : Collez-le dans un nouveau sketch Arduino IDE
  11. Téléversez : Cliquez sur le bouton Upload pour flasher le code sur votre ESP32 S3
  12. Consultez les résultats : Vérifiez le moniteur série pour voir le statut de création du fichier
  13. Astuce : Ouvrez toujours le moniteur série avant de téléverser afin de capturer chaque message d'initialisation dès le tout premier démarrage.

Résultat sur le moniteur série

Première exécution (le fichier n'existe pas encore) :

∞
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
ESP32S3 Dev Module
Newbiely.ino
···
8 Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'ESP32S3 Dev Module' on 'COM15')
New Line
9600 baud
[2026-06-16 10:23:45] SD CARD INITIALIZED. [2026-06-16 10:23:46] esp32.txt doesn't exist. Creating esp32.txt file... [2026-06-16 10:23:46] esp32.txt exists on SD Card.
Ln 11, Col 1
ESP32S3 Dev Module on COM15
2

Exécutions suivantes (le fichier existe déjà) :

∞
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
ESP32S3 Dev Module
Newbiely.ino
···
8 Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'ESP32S3 Dev Module' on 'COM15')
New Line
9600 baud
[2026-06-16 10:25:12] SD CARD INITIALIZED. [2026-06-16 10:25:12] esp32.txt exists on SD Card.
Ln 11, Col 1
ESP32S3 Dev Module on COM15
2

※ Note:

Vous risquez de ne PAS voir de résultat sur le moniteur série pour la première exécution si votre premier téléversement est effectué avant d'ouvrir le moniteur série.

Vérifier sur le PC :

  • Retirez la carte Micro SD du module
  • Insérez-la dans votre lecteur de carte SD USB
  • Connectez le lecteur à votre PC
  • Ouvrez le dossier de la carte SD et vérifiez que le fichier esp32.txt a été créé

ESP32 S3 - Comment écrire/lire des données dans/depuis un fichier sur une carte Micro SD

Aperçu du code

Le code suivant montre comment écrire des données texte dans un fichier et les relire immédiatement, en affichant chaque caractère sur le moniteur série. Il ouvre ou crée le fichier cible, écrit deux lignes de contenu, puis revient au début et diffuse chaque caractère — vous donnant un moyen simple de confirmer que ce qui a été écrit correspond à ce qui est lu.

/* * Ce code ESP32 S3 a été développé par newbiely.fr * Ce code ESP32 S3 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/esp32-s3/esp32-s3-sd-card */ #include <SD.h> #define PIN_SPI_CS 10 // The ESP32 S3 pin connected to the CS pin of SD card module File myFile; void setup() { Serial.begin(115200); 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() { }

Résultat sur le moniteur série

Résultat attendu :

∞
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
ESP32S3 Dev Module
Newbiely.ino
···
8 Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'ESP32S3 Dev Module' on 'COM15')
New Line
9600 baud
[2026-06-16 11:30:22] SD CARD INITIALIZED. [2026-06-16 11:30:22] Created by newbiely.com [2026-06-16 11:30:22] Learn ESP32 S3 and SD Card
Ln 11, Col 1
ESP32S3 Dev Module on COM15
2

※ Note:

Les données seront ajoutées à la fin du fichier par défaut. Si vous redémarrez l'ESP32 S3 avec le code ci-dessus, le texte sera ajouté à nouveau et le moniteur série affichera plus de lignes :

∞
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
ESP32S3 Dev Module
Newbiely.ino
···
8 Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'ESP32S3 Dev Module' on 'COM15')
New Line
9600 baud
[2026-06-16 11:32:45] SD CARD INITIALIZED. [2026-06-16 11:32:45] Created by newbiely.com [2026-06-16 11:32:45] Learn ESP32 S3 and SD Card [2026-06-16 11:32:45] Created by newbiely.com [2026-06-16 11:32:45] Learn ESP32 S3 and SD Card
Ln 11, Col 1
ESP32S3 Dev Module on COM15
2

Vérifier le fichier :

  • Retirez la carte Micro SD du module en toute sécurité
  • Insérez-la dans votre lecteur de carte SD USB
  • Connectez-la à votre PC et ouvrez le fichier pour voir son contenu

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

Aperçu du code

Le code suivant illustre la lecture du contenu d'un fichier ligne par ligne plutôt que caractère par caractère, ce qui est bien plus pratique quand votre fichier contient des données structurées ou des entrées de journal. Il utilise readStringUntil('\n') pour extraire chaque ligne et numérote le résultat afin que vous puissiez voir instantanément combien de lignes contient le fichier.

/* * Ce code ESP32 S3 a été développé par newbiely.fr * Ce code ESP32 S3 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/esp32-s3/esp32-s3-sd-card */ #include <SD.h> #define PIN_SPI_CS 10 // The ESP32 S3 pin connected to the CS pin of SD card module File myFile; void setup() { Serial.begin(115200); 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() { }

Résultat sur le moniteur série

Résultat attendu :

∞
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
ESP32S3 Dev Module
Newbiely.ino
···
8 Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'ESP32S3 Dev Module' on 'COM15')
New Line
9600 baud
[2026-06-16 14:15:33] SD CARD INITIALIZED. [2026-06-16 14:15:33] Line 1: Created by newbiely.com [2026-06-16 14:15:33] Line 2: Learn ESP32 S3 and SD Card
Ln 11, Col 1
ESP32S3 Dev Module on COM15
2

※ Note:

Vous pourriez voir plus de lignes sur le moniteur série si le contenu du fichier n'a pas été supprimé avant d'exécuter ce sketch.

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

Aperçu du code

Le code suivant montre la technique la plus simple pour écraser un fichier : supprimer le fichier existant et en créer un nouveau portant le même nom avant d'écrire du contenu frais. Comme la bibliothèque SD ajoute par défaut, ce modèle de suppression-recréation est le moyen le plus fiable de s'assurer que le fichier ne contient que les données de l'exécution actuelle.

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

/* * Ce code ESP32 S3 a été développé par newbiely.fr * Ce code ESP32 S3 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/esp32-s3/esp32-s3-sd-card */ #include <SD.h> #define PIN_SPI_CS 10 // The ESP32 S3 pin connected to the CS pin of SD card module File myFile; void setup() { Serial.begin(115200); 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() { }

Résultat sur le moniteur série

Résultat attendu :

∞
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
ESP32S3 Dev Module
Newbiely.ino
···
8 Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'ESP32S3 Dev Module' on 'COM15')
New Line
9600 baud
[2026-06-16 16:42:18] SD CARD INITIALIZED. [2026-06-16 16:42:18] Created by newbiely.com [2026-06-16 16:42:18] Learn ESP32 S3 and SD Card
Ln 11, Col 1
ESP32S3 Dev Module on COM15
2

Tester l'écrasement :

  • Appuyez sur le bouton reset de votre ESP32 S3
  • Vérifiez le résultat du moniteur série
  • Vérifiez que le contenu n'est PAS dupliqué
  • Le fichier ne devrait contenir qu'un seul jeu de lignes

Vérifier sur le PC :

  • Retirez la carte Micro SD du module
  • Insérez-la dans votre lecteur de carte SD USB
  • Connectez-la à votre PC et ouvrez le fichier
  • Confirmez que le contenu correspond au résultat attendu

Idées d'applications

La puissance de traitement et la connectivité sans fil intégrée de l'ESP32 S3 en font un excellent compagnon pour le stockage basé sur carte SD dans des déploiements réels.

  1. Enregistreur de données climatiques : Enregistrez les relevés de température et d'humidité à intervalles réguliers pour une surveillance environnementale à long terme.
  2. Station de capteur autonome : Stockez les relevés de capteurs localement sans dépendre d'une connexion WiFi, puis téléversez-les en lot quand la connectivité est disponible.
  3. Enregistreur de position GPS : Enregistrez les coordonnées GPS avec horodatage pour suivre des itinéraires ou des mouvements d'actifs.
  4. Journal d'événements de sécurité : Enregistrez les événements de détection de mouvement ou de contact de porte avec horodatage dans un fichier journal cyclique.
  5. Moniteur agricole : Enregistrez les données d'humidité du sol, de lumière et de température sur les saisons de croissance pour analyse.
  6. Compteur de consommation électrique : Stockez les statistiques d'utilisation d'énergie quotidiennes pour des appareils ou installations solaires.

Vidéo

Regardez ci-dessous le tutoriel vidéo étape par étape pour ce projet ESP32 S3.

...VIDEO esp32-s3/micro-sd-card.mp4

...VIDEO

Défiez-vous

Les exemples ci-dessus vous donnent une base solide — allez maintenant plus loin avec ces exercices progressivement plus exigeants.

  1. Débutant : Modifiez le sketch d'ouverture de fichier pour créer un fichier avec votre propre nom personnalisé et y écrire un message personnel.
  2. Débutant : Ajoutez un horodatage à chaque ligne écrite à l'aide de la fonction millis() afin de voir quand chaque entrée a été enregistrée.
  3. Intermédiaire : Écrivez un sketch qui enregistre des valeurs de capteur simulées toutes les cinq secondes et les ajoute avec horodatage dans un fichier CSV sur la carte SD.
  4. Intermédiaire : Construisez un menu sur le moniteur série qui vous permet de choisir de lire, écrire ou supprimer un fichier en envoyant des commandes à caractère unique.
  5. Avancé : Implémentez un journal circulaire qui ne conserve que les 100 dernières entrées, supprimant automatiquement l'entrée la plus ancienne quand la limite est atteinte.
  6. Avancé : Créez un enregistreur de données multi-capteurs qui écrit les relevés de chaque capteur dans un fichier séparé et fait tourner les fichiers quotidiennement à l'aide d'un module d'horloge temps réel.

Commentaires

※ NOS MESSAGES

  • N'hésitez pas à partager le lien de ce tutoriel. Cependant, veuillez ne pas utiliser notre contenu sur d'autres sites web. Nous avons investi beaucoup d'efforts et de temps pour créer ce contenu, veuillez respecter notre travail !