ESP32 MicroPython - Carte Micro SD
Ce guide vous explique comment interfacer une carte Micro SD avec l'ESP32 sous MicroPython. Vous apprendrez à :
Ouvrir ou créer un fichier sur la carte Micro SD avec MicroPython sur l'ESP32.
Sauvegarder des données dans un fichier stocké sur la carte Micro SD.
Lire le contenu d'un fichier caractère par caractère depuis la carte Micro SD.
Traiter un fichier sur la carte Micro SD en le lisant ligne par ligne.
Ajouter de nouvelles données à un fichier existant sur la carte Micro SD.
Écraser le contenu d'un fichier sur la carte Micro SD.
Ou vous pouvez acheter les kits suivants:
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.
Un module Micro SD Card sert d'adaptateur permettant à l'ESP32 de communiquer avec une carte Micro SD via le protocole SPI. Il sert de connecteur entre le microcontrôleur et la carte de stockage.
Le module Micro SD Card possède 6 broches :
Broche VCC : alimente le module, à connecter à la sortie 5V de l'ESP32.
Broche GND : référence de masse, à connecter au GND de l'ESP32.
Broche MISO : (Master In Slave Out) ligne de données de la carte SD vers l'ESP32.
Broche MOSI : (Master Out Slave In) ligne de données de l'ESP32 vers la carte SD.
Broche SCK : signal d'horloge SPI, à connecter au SCK de l'ESP32.
Broche SS : (Slave Select) broche de sélection de puce, assignée dans le code MicroPython.
Insérez la carte Micro SD dans un lecteur de carte SD USB 3.0 et connectez-le à votre PC
Vérifiez que la carte Micro SD utilise le format FAT16 ou FAT32 (recherchez des instructions en ligne si nécessaire)

Cette image a été créée avec Fritzing. Cliquez pour agrandir l'image.
Le tableau de câblage ci-dessous montre comment connecter le module Micro SD Card à l'ESP32 :
| Module Micro SD Card | ESP32 |
| VCC | 5V |
| GND | GND |
| MISO | GPIO19 |
| MOSI | GPIO23 |
| SCK | GPIO18 |
| CS | GPIO5 |
※ Note:
Si votre shield (comme un shield Ethernet) dispose déjà d'un slot Micro SD Card intégré, vous pouvez ignorer le module externe et simplement insérer la carte directement dans le shield.
/*
* Ce code ESP32 MicroPython a été développé par newbiely.fr
* Ce code ESP32 MicroPython 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-micropython/esp32-micropython-micro-sd-card
*/
import machine
import os
import sdcard
SPI_SCK_PIN = 18
SPI_MOSI_PIN = 23
SPI_MISO_PIN = 19
SPI_CS_PIN = 5
spi = machine.SoftSPI(baudrate=1000000, polarity=0, phase=0,
sck=machine.Pin(SPI_SCK_PIN),
mosi=machine.Pin(SPI_MOSI_PIN),
miso=machine.Pin(SPI_MISO_PIN))
cs = machine.Pin(SPI_CS_PIN, machine.Pin.OUT)
try:
sd = sdcard.SDCard(spi, cs)
os.mount(sd, "/sd")
print("SD CARD INITIALIZED.")
except Exception as e:
print("SD CARD FAILED, OR NOT PRESENT!", e)
raise SystemExit
file_path = "/sd/esp32.txt"
if file_path.replace("/sd/", "") not in os.listdir("/sd"):
print("esp32.txt doesn't exist. Creating esp32.txt file...")
f = open(file_path, "w")
f.close()
if file_path.replace("/sd/", "") in os.listdir("/sd"):
print("esp32.txt exists on SD Card.")
else:
print("esp32.txt doesn't exist on SD Card.")
os.umount("/sd")
Voici les instructions pour configurer et exécuter votre code MicroPython sur l'ESP32 avec Thonny IDE :
Assurez-vous que Thonny IDE est installé sur votre ordinateur.
Confirmez que le firmware MicroPython est chargé sur votre carte ESP32.
Si c'est la première fois que vous utilisez un ESP32 avec MicroPython, consultez le guide
ESP32 - Premiers pas. pour des instructions étape par étape.
Insérez la carte Micro SD dans le module Micro SD Card.
Effectuez le câblage entre le module Micro SD Card et l'ESP32 selon le schéma de câblage ci-dessus.
Connectez la carte ESP32 à votre ordinateur avec un câble USB.
Ouvrez Thonny IDE sur votre ordinateur.
Dans Thonny IDE, allez dans Outils Options.
Dans l'onglet Interpréteur, choisissez MicroPython (ESP32) dans le menu déroulant.
Assurez-vous que le bon port est sélectionné. Thonny IDE le détecte généralement automatiquement, mais vous devrez peut-être le sélectionner manuellement (comme COM3 sur Windows ou /dev/ttyACM0 sur Linux).
Naviguez vers Outils Gérer les packages dans Thonny IDE.
Recherchez "sdcard", puis trouvez la bibliothèque sdcard fournie par micropython-lib.
Cliquez sur sdcard, puis cliquez sur le bouton Installer pour installer la bibliothèque de carte SD.

Copiez le code MicroPython fourni et collez-le dans l'éditeur de Thonny.
Sauvegardez le code sur votre ESP32 en :
Cliquant sur le bouton Enregistrer ou en appuyant sur Ctrl+S.
Dans la boîte de dialogue d'enregistrement, choisissez Appareil MicroPython.
Nommez le fichier main.py.
Cliquez sur le bouton vert Exécuter (ou appuyez sur F5) pour exécuter le script.
Consultez le message dans le Shell en bas de Thonny.
Le résultat dans le Shell pour la première exécution
>>> %Run -c $EDITOR_CONTENT
MPY: soft reboot
SD CARD INITIALIZED.
esp32.txt doesn't exist. Creating esp32.txt file...
esp32.txt exists on SD Card.
MicroPython (ESP32) • CP2102 USB To UART Bridge Controller @ COM12 ≡
>>> %Run -c $EDITOR_CONTENT
MPY: soft reboot
SD CARD INITIALIZED.
esp32.txt exists on SD Card.
MicroPython (ESP32) • CP2102 USB To UART Bridge Controller @ COM12 ≡
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
Le code MicroPython suivant effectue deux opérations :
/*
* Ce code ESP32 MicroPython a été développé par newbiely.fr
* Ce code ESP32 MicroPython 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-micropython/esp32-micropython-micro-sd-card
*/
import machine
import os
import sdcard
SPI_SCK_PIN = 18
SPI_MOSI_PIN = 23
SPI_MISO_PIN = 19
SPI_CS_PIN = 5
spi = machine.SoftSPI(baudrate=1000000, polarity=0, phase=0,
sck=machine.Pin(SPI_SCK_PIN),
mosi=machine.Pin(SPI_MOSI_PIN),
miso=machine.Pin(SPI_MISO_PIN))
cs = machine.Pin(SPI_CS_PIN, machine.Pin.OUT)
try:
sd = sdcard.SDCard(spi, cs)
os.mount(sd, "/sd")
print("SD CARD INITIALIZED.")
except Exception as e:
print("SD CARD FAILED, OR NOT PRESENT!", e)
raise SystemExit
file_path = "/sd/esp32.txt"
try:
f = open(file_path, "a")
f.write("Created by newbiely.com\n")
f.write("Learn ESP32 and SD Card\n")
f.close()
except Exception as e:
print("SD Card: Issue encountered while attempting to open the file esp32.txt", e)
try:
f = open(file_path, "r")
while True:
ch = f.read(1)
if not ch:
break
print(ch, end="")
f.close()
except Exception as e:
print("SD Card: Issue encountered while attempting to open the file esp32.txt", e)
os.umount("/sd")
>>> %Run -c $EDITOR_CONTENT
MPY: soft reboot
Created by newbiely.com
Learn ESP32 and SD Card
MicroPython (ESP32) • CP2102 USB To UART Bridge Controller @ COM12 ≡
※ Note:
Par défaut, les nouvelles données sont ajoutées à la fin du fichier. Si vous redémarrez l'ESP32 avec le même code, le texte est ajouté à nouveau, donc la sortie du Shell ressemblera à ceci :
>>> %Run -c $EDITOR_CONTENT
MPY: soft reboot
Created by newbiely.com
Learn ESP32 and SD Card
Created by newbiely.com
Learn ESP32 and SD Card
MicroPython (ESP32) • CP2102 USB To UART Bridge Controller @ COM12 ≡
Vous pouvez également retirer la carte Micro SD du module et consulter son contenu sur votre PC (un lecteur de carte SD USB est requis)
/*
* Ce code ESP32 MicroPython a été développé par newbiely.fr
* Ce code ESP32 MicroPython 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-micropython/esp32-micropython-micro-sd-card
*/
import machine
import os
import sdcard
SPI_SCK_PIN = 18
SPI_MOSI_PIN = 23
SPI_MISO_PIN = 19
SPI_CS_PIN = 5
spi = machine.SoftSPI(baudrate=1000000, polarity=0, phase=0,
sck=machine.Pin(SPI_SCK_PIN),
mosi=machine.Pin(SPI_MOSI_PIN),
miso=machine.Pin(SPI_MISO_PIN))
cs = machine.Pin(SPI_CS_PIN, machine.Pin.OUT)
try:
sd = sdcard.SDCard(spi, cs)
os.mount(sd, "/sd")
print("SD CARD INITIALIZED.")
except Exception as e:
print("SD CARD FAILED, OR NOT PRESENT!", e)
raise SystemExit
file_path = "/sd/esp32.txt"
try:
f = open(file_path, "a")
f.write("Created by newbiely.com\n")
f.write("Learn ESP32 and SD Card\n")
f.close()
except Exception as e:
print("SD Card: Issue encountered while attempting to open the file esp32.txt", e)
try:
f = open(file_path, "r")
line_count = 0
while True:
line = f.readline()
if not line:
break
line_count += 1
print("Line {}: {}".format(line_count, line.strip()))
f.close()
except Exception as e:
print("SD Card: Issue encountered while attempting to open the file esp32.txt", e)
os.umount("/sd")
>>> %Run -c $EDITOR_CONTENT
MPY: soft reboot
SD CARD INITIALIZED.
Line 1: Created by newbiely.com
Line 2: Learn ESP32 and SD Card
MicroPython (ESP32) • CP2102 USB To UART Bridge Controller @ COM12 ≡
※ Note:
Des lignes supplémentaires peuvent apparaître dans le Shell si le fichier contient déjà des données d'exécutions précédentes.
Comme les données sont ajoutées par défaut, l'approche la plus simple pour écraser un fichier est de supprimer le fichier existant puis d'en créer un nouveau avec le même nom.
/*
* Ce code ESP32 MicroPython a été développé par newbiely.fr
* Ce code ESP32 MicroPython 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-micropython/esp32-micropython-micro-sd-card
*/
import machine
import os
import sdcard
SPI_SCK_PIN = 18
SPI_MOSI_PIN = 23
SPI_MISO_PIN = 19
SPI_CS_PIN = 5
spi = machine.SoftSPI(baudrate=1000000, polarity=0, phase=0,
sck=machine.Pin(SPI_SCK_PIN),
mosi=machine.Pin(SPI_MOSI_PIN),
miso=machine.Pin(SPI_MISO_PIN))
cs = machine.Pin(SPI_CS_PIN, machine.Pin.OUT)
try:
sd = sdcard.SDCard(spi, cs)
os.mount(sd, "/sd")
print("SD CARD INITIALIZED.")
except Exception as e:
print("SD CARD FAILED, OR NOT PRESENT!", e)
raise SystemExit
file_path = "/sd/esp32.txt"
try:
os.remove(file_path)
except OSError:
pass
try:
f = open(file_path, "w")
f.write("Created by newbiely.com\n")
f.write("Learn ESP32 and SD Card\n")
f.close()
except Exception as e:
print("SD Card: Issue encountered while attempting to open the file esp32.txt", e)
try:
f = open(file_path, "r")
while True:
ch = f.read(1)
if not ch:
break
print(ch, end="")
f.close()
except Exception as e:
print("SD Card: Issue encountered while attempting to open the file esp32.txt", e)
os.umount("/sd")
>>> %Run -c $EDITOR_CONTENT
MPY: soft reboot
SD CARD INITIALIZED.
Created by newbiely.com
Learn ESP32 and SD Card
MicroPython (ESP32) • CP2102 USB To UART Bridge Controller @ COM12 ≡
Vous pouvez également retirer la carte Micro SD du module et inspecter le fichier sur votre PC (un lecteur de carte SD USB est requis)
※ 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 !