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 :
- Un circuit connectant l'ESP32 S3 à un module de carte Micro SD via SPI
- Un sketch qui ouvre ou crée un fichier sur la carte SD
- Des programmes qui écrivent, lisent et écrasent le contenu de fichiers
- Une base pour des applications de journalisation de données et de gestion de fichiers

Matériel requis
Ou vous pouvez acheter les kits suivants:
| 1 | × | Kit de Démarrage DIYables ESP32 S3 (ESP32 S3 inclus) | |
| 1 | × | Kit de Capteurs DIYables (18 capteurs/écrans) |
À 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.

- VCC : Alimentation — connectez à la broche 5V de l'ESP32 S3
- GND : Masse — connectez à n'importe quelle broche GND de l'ESP32 S3
- MISO : Master In Slave Out — ligne de données de la carte SD vers l'ESP32 S3
- MOSI : Master Out Slave In — ligne de données de l'ESP32 S3 vers la carte SD
- SCK : Horloge série — signal de synchronisation piloté par l'ESP32 S3
- 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.
- Insérez la carte Micro SD dans un lecteur de carte SD USB 3.0
- Connectez le lecteur à votre PC
- Formatez la carte Micro SD en FAT16 ou FAT32 (cherchez en ligne les instructions de formatage pour votre système d'exploitation)
- Éjectez la carte en toute sécurité une fois le formatage terminé
- 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.

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
Étapes rapides
- Nouveau sur l'ESP32 S3 ? Suivez d'abord notre guide ESP32 S3 - Premiers pas.
- Préparez la carte SD : Insérez la carte Micro SD formatée dans le module de carte SD
- Câblez le circuit : Connectez le module de carte Micro SD à l'ESP32 S3 en suivant le schéma de câblage ci-dessus
- Connectez l'ESP32 S3 : Branchez l'ESP32 S3 sur votre PC à l'aide du câble USB Type-C
- Ouvrez l'Arduino IDE : Lancez l'Arduino IDE sur votre ordinateur
- Sélectionnez la carte : Choisissez ESP32 S3 dans le menu des cartes
- Sélectionnez le port : Choisissez le bon port COM pour votre ESP32 S3
- Ouvrez le moniteur série : Ouvrez le moniteur série avant de téléverser (Tools > Serial Monitor)
- Copiez le code : Copiez le code fourni ci-dessus
- Collez le code : Collez-le dans un nouveau sketch Arduino IDE
- Téléversez : Cliquez sur le bouton Upload pour flasher le code sur votre ESP32 S3
- Consultez les résultats : Vérifiez le moniteur série pour voir le statut de création du fichier
- 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) :
Exécutions suivantes (le fichier existe déjà) :
※ 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.
Résultat sur le moniteur série
Résultat attendu :
※ 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 :
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.
Résultat sur le moniteur série
Résultat attendu :
※ 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.
Résultat sur le moniteur série
Résultat attendu :
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.
- Enregistreur de données climatiques : Enregistrez les relevés de température et d'humidité à intervalles réguliers pour une surveillance environnementale à long terme.
- 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.
- Enregistreur de position GPS : Enregistrez les coordonnées GPS avec horodatage pour suivre des itinéraires ou des mouvements d'actifs.
- 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.
- Moniteur agricole : Enregistrez les données d'humidité du sol, de lumière et de température sur les saisons de croissance pour analyse.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.