ESP32 MicroPython - Lire la Configuration depuis la Carte SD

Ce guide vous montre comment charger des paramètres depuis un fichier de configuration stocké sur une carte Micro SD en utilisant l'ESP32 et MicroPython. Voici ce que nous allons couvrir :

Avec cette approche, vous pouvez gérer les paramètres de votre projet via un simple fichier texte sur la carte Micro SD, prenant en charge divers types de données incluant les entiers, flottants et chaînes.

Fichier de Configuration Carte Micro SD ESP32 MicroPython

À Propos du Module Micro SD Card

Nouveau dans le module Micro SD Card ? Découvrez tout sur ses broches, son fonctionnement et comment le programmer dans le tutoriel ESP32 MicroPython - Carte Micro SD.

Comment Ça Fonctionne

Le fichier de configuration sur la carte Micro SD suit une structure simple :

  • Chaque paramètre occupe sa propre ligne — les paires clé-valeur sont séparées par des caractères de nouvelle ligne.
  • Dans chaque ligne, la clé et la valeur sont séparées par le caractère =.

Le code MicroPython parcourt le fichier à la recherche d'une clé spécifique, extrait la valeur correspondante et l'affecte à une variable. La valeur peut être convertie en int, float ou string selon les besoins.

Schéma de Câblage

Schéma de Câblage ESP32 MicroPython Module Micro SD Card

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.

Comment Charger les Paramètres de Configuration dans des Variables

  • Créez un fichier config.txt sur votre PC avec Notepad ou Notepad++
  • Copiez les paires clé-valeur suivantes dans le fichier config.txt :
myString_1=Hello myString_2=newbiely.com myInt_1=2 myInt_2=-105 myFloat_1=0.74 myFloat_2=-46.08
  • 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)
  • Transférez le fichier config.txt dans le répertoire racine de la carte Micro SD
  • Retirez en toute sécurité la carte Micro SD du PC
  • Connectez la carte Micro SD à l'ESP32 via le module Micro SD Card en suivant le schéma de câblage ci-dessus
  • Copiez le code MicroPython ci-dessous
/* * 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-read-config-from-sd-card */ import machine import os import sdcard # Define SPI pins for the Micro SD Card module SPI_SCK_PIN = 18 # The ESP32 pin GPIO18 connected to SCK SPI_MOSI_PIN = 23 # The ESP32 pin GPIO23 connected to MOSI SPI_MISO_PIN = 19 # The ESP32 pin GPIO19 connected to MISO SPI_CS_PIN = 5 # The ESP32 pin GPIO5 connected to SS (CS) FILE_NAME = "/sd/config.txt" # Variables my_int_1 = 0 my_int_2 = 0 my_float_1 = 0.0 my_float_2 = 0.0 my_string_1 = "" my_string_2 = "" def sd_find_key(key): """Search for a key in the config file and return its value as a string.""" try: f = open(FILE_NAME, "r") for line in f: line = line.strip() if "=" in line: k, v = line.split("=", 1) if k == key: f.close() return v f.close() except Exception as e: print("SD Card: Issue encountered while attempting to open the file", FILE_NAME, e) return None def sd_find_int(key): """Read a key from config file and return as int. """ value = sd_find_key(key) if value is not None: return int(value) return 0 def sd_find_float(key): """Read a key from config file and return as float.""" value = sd_find_key(key) if value is not None: return float(value) return 0.0 def sd_find_string(key): """Read a key from config file and return as string. """ value = sd_find_key(key) if value is not None: return value return "" # Initialize SD card using SoftSPI and sdcard driver 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 my_int_1 = sd_find_int("myInt_1") my_int_2 = sd_find_int("myInt_2") my_float_1 = sd_find_float("myFloat_1") my_float_2 = sd_find_float("myFloat_2") my_string_1 = sd_find_string("myString_1") my_string_2 = sd_find_string("myString_2") print("myInt_1 =", my_int_1) print("myInt_2 =", my_int_2) print("myFloat_1 =", my_float_1) print("myFloat_2 =", my_float_2) print("myString_1 =", my_string_1) print("myString_2 =", my_string_2) 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.
  • 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.
Bibliothèque ESP32 MicroPython Carte SD
  • Collez le code MicroPython ci-dessus 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.
Shell x
>>> %Run -c $EDITOR_CONTENT
MPY: soft reboot SD Card initialized. myInt_1 = 2 myInt_2 = -105 myFloat_1 = 0.74 myFloat_2 = -46.08 myString_1 = Hello myString_2 = newbiely.com
MicroPython (ESP32) • CP2102 USB To UART Bridge Controller @ COM12 ≡
  • Le Shell affiche les valeurs analysées, qui correspondent exactement à ce qui a été sauvegardé dans le fichier de configuration sur la carte Micro SD.

N'hésitez pas à étendre le code en ajoutant d'autres paires clé-valeur pour votre projet.

※ Note:

Le code ne dépend pas de l'ordre des entrées dans le fichier de configuration. Il recherche depuis le début du fichier jusqu'à la fin jusqu'à trouver une clé correspondante.

Vidéo

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 !