Les deux fichiers essentiels
boot.py
S'exécute en premier à chaque démarrage. Utilisé pour la configuration système : connexion WiFi, initialisation matérielle, paramètres globaux. Si absent, ignoré.
main.py
S'exécute après boot.py. C'est ton programme principal. Si absent, l'ESP32 reste en attente dans le REPL. C'est le fichier que tu crées pour tes projets.
Ordre de démarrage : reset → boot.py → main.py → REPL (si main.py absent ou terminé)
Le module os
| Commande | Description | Exemple |
|---|---|---|
| os.listdir() | Liste les fichiers du dossier courant | os.listdir() # ['boot.py', 'main.py'] |
| os.listdir(path) | Liste un dossier spécifique | os.listdir('/lib') |
| os.mkdir(name) | Crée un dossier | os.mkdir('lib') |
| os.remove(path) | Supprime un fichier | os.remove('old.py') |
| os.rename(src, dst) | Renomme ou déplace | os.rename('a.py', 'b.py') |
| os.stat(path) | Infos sur un fichier (taille, dates) | os.stat('main.py') |
| os.getcwd() | Dossier courant | os.getcwd() # '/' |
| os.chdir(path) | Changer de dossier | os.chdir('/lib') |
| os.uname() | Infos système (modèle, version) | os.uname() |
Exemples pratiques
Lister tous les fichiers
import os
# Fichiers à la racine
print(os.listdir())
# Avec taille
for f in os.listdir():
stat = os.stat(f)
print(f, "—", stat[6], "octets") Créer une arborescence
import os
# Créer un dossier lib pour les modules
os.mkdir('lib')
os.mkdir('data')
# Vérifier
print(os.listdir()) # ['boot.py', 'main.py', 'lib', 'data'] Lire et écrire un fichier
import os
# Écrire dans un fichier
with open('config.txt', 'w') as f:
f.write('ssid=MonWiFi\n')
f.write('password=12345\n')
# Lire
with open('config.txt', 'r') as f:
print(f.read())
# Supprimer
os.remove('config.txt') Vider complètement la carte
import os
def supprimer_tout():
for f in os.listdir():
try:
os.remove(f)
except:
pass # dossiers ignorés
# Ou depuis le REPL Thonny :
# View → Files → clic droit → Delete Infos système utiles
import os, gc
# Version MicroPython et modèle de carte
print(os.uname())
# (sysname='esp32', nodename='esp32', release='1.x.x', ...)
# Mémoire libre (RAM)
gc.collect()
print("RAM libre :", gc.mem_free(), "octets")
print("RAM allouée :", gc.mem_alloc(), "octets")
# Espace disque (Flash)
fs = os.statvfs('/')
bloc = fs[0]
libre = fs[3]
total = fs[2]
print("Flash libre :", libre * bloc, "octets /", total * bloc, "octets") Bonnes pratiques
Utiliser /lib pour les modules
Place tes modules tiers (.py) dans un dossier /lib. MicroPython l'ajoute automatiquement au chemin de recherche.
boot.py léger
Garde boot.py minimal — uniquement WiFi et config. Mets toute la logique dans main.py pour faciliter le débogage.
Sauvegarder les données
Pour stocker des mesures, écris dans un fichier .txt ou .csv sur la Flash. La Flash supporte ~100 000 cycles d'écriture.
Nettoyer la mémoire
Lance gc.collect() régulièrement dans les longues boucles pour libérer la mémoire RAM et éviter les MemoryError.
Utiliser Thonny pour gérer les fichiers
Thonny a un gestionnaire de fichiers visuel — plus pratique que la ligne de commande pour débuter.