Dans ce guide rapide, nous partagerons un simple script Micropython qui affiche des informations utiles sur votre carte. C’est un excellent outil pour les diagnostics et les tests. Le script récupère des détails sur la puce (telles que le modèle et la fréquence du CPU), l’adresse MAC, l’utilisation de la mémoire, la disponibilité du PSRAM, la taille du système de fichiers et l’espace libre, et répertorie les fichiers stockés sur la carte. Ce guide fonctionne avec les planches ESP32, ESP8266 et Raspberry Pi Pico.

Le code utilisé dans ce tutoriel a été créé et partagé par Charles E. Hamilton, l’un de nos lecteurs.
Nouveau sur Micropython? Consultez notre ebook: Micropython Programming avec ESP32 et ESP8266 Ebook (2e édition)
Condition préalable
Pour suivre ce didacticiel, vous avez besoin de micro-firmware Micropython installé sur vos cartes ESP32 ou ESP8266. Vous avez également besoin d’un IDE pour écrire et télécharger le code sur votre carte. Nous suggérons d’utiliser Thonny IDE ou UpyCraft IDE:
- Thonny Ide:
- upycraft ide:
En savoir plus sur MicropyThon: programmation Micropython avec ESP32 et ESP8266
Obtenir des informations système – Script micropopython
Après avoir chargé le micrologiciel MicropyThon sur votre carte, copiez le code suivant sur Thonny IDE ou IDE de votre choix.
# WhatsInIt.py - MicroPython Hardware & Environment Diagnostic Tool
# For ESP32 / ESP8266 boards
# Last updated: April 26, 2025 by Charles E. Hamilton
# This program is released into the public domain free of license and without warranties of any kind
# https://Raspberryme.com/micropython-esp32-esp8266-device-info/
import os
import sys
import gc
import machine
import network
import ubinascii
try:
import esp
except ImportError:
esp = None
try:
import esp32
except ImportError:
esp32 = None
print("\n" + "=" * 40)
print(" WHATS IN IT REPORT")
print("=" * 40)
# --- Chip & CPU Info ---
print("\n[CHIP INFO]")
print(f"Platform: {sys.platform}")
print(f"MicroPython ver: {os.uname().release} ({os.uname().version})")
print(f"Machine ID: {os.uname().machine}")
print(f"CPU Frequency: {machine.freq()} Hz")
# --- MAC Address ---
print("\n[NETWORK]")
wlan = network.WLAN(network.STA_IF)
wlan.active(True)
mac = ubinascii.hexlify(wlan.config('mac'), ':').decode()
print(f"MAC Address: {mac}")
# --- Memory Info ---
print("\n[MEMORY]")
print(f"Heap Allocated: {gc.mem_alloc()} bytes")
print(f"Heap Free: {gc.mem_free()} bytes")
# Flash size (ESP32 only)
if esp:
try:
flash_size = esp.flash_size()
print(f"Flash Size: {flash_size // (1024*1024)} MB")
except:
print("Flash Size: Not available")
# PSRAM status (ESP32 only)
if esp32:
try:
psram_status = "Available" if esp32.ULP() is not None else "Not available"
except:
psram_status = "Not detected"
print(f"PSRAM: {psram_status}")
# --- Filesystem Info ---
print("\n[FILESYSTEM]")
try:
fs_stats = os.statvfs("/")
block_size = fs_stats[0]
total_blocks = fs_stats[2]
free_blocks = fs_stats[3]
total = (block_size * total_blocks) // 1024
free = (block_size * free_blocks) // 1024
print(f"Total Size: {total} KB")
print(f"Free Space: {free} KB")
except:
print("Filesystem info: Not available")
# --- Directory Contents ---
print("\n[FILES IN ROOT DIR]")
try:
files = os.listdir()
for f in files:
print(f" - {f}")
except:
print("Cannot list files.")
# --- Closing ---
print("\n[END OF REPORT]")
print("=" * 40)
Afficher le code brut
La section suivante imprime les informations sur la puce et la plate-forme CPU utilisée, la version micropython, le modèle de carte et la fréquence du processeur.
# --- Chip & CPU Info ---
print("\n[CHIP INFO]")
print(f"Platform: {sys.platform}")
print(f"MicroPython ver: {os.uname().release} ({os.uname().version})")
print(f"Machine ID: {os.uname().machine}")
print(f"CPU Frequency: {machine.freq()} Hz")
Ces lignes impriment l’adresse MAC de la carte. L’adresse MAC est un identifiant unique attribué à l’interface réseau de votre appareil. Il est utilisé pour la communication sur le Wi-Fi et d’autres réseaux.
# --- MAC Address ---
print("\n[NETWORK]")
wlan = network.WLAN(network.STA_IF)
wlan.active(True)
mac = ubinascii.hexlify(wlan.config('mac'), ':').decode()
print(f"MAC Address: {mac}")
Nous imprimons des informations sur la mémoire de la carte. Le tas alloué est la quantité de RAM actuellement utilisée par votre programme, tandis que le tas gratuit est la quantité de RAM toujours disponible pour une utilisation.
# --- Memory Info ---
print("\n[MEMORY]")
print(f"Heap Allocated: {gc.mem_alloc()} bytes")
print(f"Heap Free: {gc.mem_free()} bytes")
Il y a aussi une section pour imprimer la taille du flash de la carte et s’il y a du PSRAM disponible.
# Flash size (ESP32 only)
if esp:
try:
flash_size = esp.flash_size()
print(f"Flash Size: {flash_size // (1024*1024)} MB")
except:
print("Flash Size: Not available")
# PSRAM status (ESP32 only)
if esp32:
try:
psram_status = "Available" if esp32.ULP() is not None else "Not available"
except:
psram_status = "Not detected"
print(f"PSRAM: {psram_status}")
Enfin, nous imprimons la taille totale du système de fichiers et l’espace libre.
# --- Filesystem Info ---
print("\n[FILESYSTEM]")
try:
fs_stats = os.statvfs("/")
block_size = fs_stats[0]
total_blocks = fs_stats[2]
free_blocks = fs_stats[3]
total = (block_size * total_blocks) // 1024
free = (block_size * free_blocks) // 1024
print(f"Total Size: {total} KB")
print(f"Free Space: {free} KB")
except:
print("Filesystem info: Not available")
Et s’il y a des fichiers dans le répertoire root du système de fichiers.
# --- Directory Contents ---
print("\n[FILES IN ROOT DIR]")
try:
files = os.listdir()
for f in files:
print(f" - {f}")
except:
print("Cannot list files.")
Tester le code
Avec la carte connectée à votre ordinateur et avec une connexion établie avec Thonny IDE, cliquez sur le bouton Green Exécuter pour exécuter le programme sur votre carte.

Les informations sur votre carte seront imprimées dans le shell Micropython.
Vous trouverez ci-dessous le rapport pour une carte ESP32 DOIT.

Nous avons également testé ce script avec un ESP32S3, ESP8266, et une carte Raspberry Pi Pico (vous pouvez cliquer sur les images pour agrandir).



Emballage
Dans ce guide rapide, nous avons partagé un croquis utile que vous pouvez utiliser et adapter dans vos projets pour obtenir des informations essentielles sur la puce et le processeur de votre carte, ainsi que des informations sur la mémoire et le système de fichiers.
Pour en savoir plus sur Micropython, consultez nos ressources:
Plongez dans l’histoire de Raspberry Pi avec cette vidéo :

-
AZDelivery ESP32 NodeMCU Module WLAN WiFi Dev Kit C Development Board avec CP2102 (successeur de ESP8266) Compatible avec Arduino incluant Un E-Book!
-
ELEGOO 3PCS Carte de Développement ESP32 Type-C, 2,4 GHz WiFi + Bluetooth Dual Core Carte de Contrôle pour Arduino, Support MicroPython, NodeMCU, AP/STA/AP+STA, Puce CP2102
