ESP32 MicroPython - Mini Lecteur Mp3
L'ESP32 est un microcontrôleur polyvalent 3,3V avec WiFi, Bluetooth et plusieurs ports UART matériels. Combiné avec le module DIYables Mini Mp3 Player et MicroPython, vous pouvez construire n'importe quoi, d'un simple tableau d'effets sonores à un jukebox contrôlé par WiFi.
Ce tutoriel vous guide à travers :
- La connexion du Mini Mp3 Player à un ESP32 — directement, sans résistance.
- Le chargement correct des fichiers mp3 sur la carte SD.
- La lecture, la pause, la reprise, l'arrêt et le passage aux pistes suivantes.
- Le réglage du volume avec des boutons physiques.
- La répétition de pistes, la lecture aléatoire et l'organisation de l'audio en dossiers.
- La surveillance de l'état de lecture depuis votre code.

Composants Nécessaires
Ou vous pouvez acheter les kits suivants:
| 1 | × | Kit de Démarrage DIYables ESP32 (ESP32 inclus) | |
| 1 | × | Kit de Capteurs DIYables (18 capteurs/écrans) |
Aucune résistance requise. L'ESP32 fonctionne à 3,3V — la même tension attendue par l'UART du Mini Mp3 Player.
Le Module Mini Mp3 Player
Le DIYables Mini Mp3 Player est une carte décodeur audio compacte basée sur la puce YX5200-24SS. Il lit les fichiers mp3 depuis une micro carte SD et sort l'audio via un amplificateur intégré 3W ou via des broches DAC pour un amplificateur externe.
L'ESP32 communique avec ce module via UART à 9600 bauds — une correspondance parfaite car l'ESP32 possède trois ports UART matériels. Vous pouvez dédier UART2 au module mp3 tout en gardant UART0 libre pour la console REPL MicroPython.
Le module prend en charge un ensemble riche de commandes série :
- Transport : lecture, pause, reprise, arrêt, suivant, précédent
- Volume : 31 niveaux (0–30), réglable à la volée
- Égaliseur : 6 préréglages — Normal, Pop, Rock, Jazz, Classique, Basses
- Modes de répétition : boucler une seule piste, boucler un dossier, boucler tout, ou lecture aléatoire
- Lecture par dossier : organiser l'audio dans des répertoires numérotés
- Publicités : interrompre la piste en cours avec une annonce, puis reprendre automatiquement
- Requêtes d'état : lire le numéro de piste, le volume, l'état de lecture et le nombre de fichiers
Description des Broches
| Broche | Fonction | Connexion ESP32 |
|---|---|---|
| VCC | Alimentation 3,2V à 5,0V | Connecter à 3,3V ou 5V (VIN) de l'ESP32 |
| GND | Masse | Connecter au GND de l'ESP32 |
| RX | Entrée données série | Connecter à GPIO17 de l'ESP32 (TX2) |
| TX | Sortie données série | Connecter à GPIO16 de l'ESP32 (RX2) |
| SPK_1 | Haut-parleur + (ampli intégré, 3W max) | Connecter au haut-parleur |
| SPK_2 | Haut-parleur − | Connecter au haut-parleur |
| DAC_R | Sortie ligne canal droit | Optionnel — pour ampli externe |
| DAC_L | Sortie ligne canal gauche | Optionnel — pour ampli externe |
| BUSY | LOW = en lecture, HIGH = arrêté | Optionnel — lire avec GPIO |
| IO_1 | Appui court → préc. ; appui long → vol. bas | Non utilisé (contrôlé via UART) |
| IO_2 | Appui court → suiv. ; appui long → vol. haut | Non utilisé (contrôlé via UART) |

Câblage
L'ESP32 utilise la logique 3,3V nativement, donc vous câblez les lignes série directement — aucun adaptateur de niveau ni résistance n'est nécessaire.
Nous recommandons d'utiliser UART2 (disponible par défaut sur la plupart des cartes ESP32 DevKit) :
| Mini Mp3 Player | ESP32 | Notes |
|---|---|---|
| VCC | 3.3V | Ou 5V depuis VIN si disponible |
| GND | GND | |
| RX | GPIO 17 (TX2) | Connexion directe |
| TX | GPIO 16 (RX2) | Connexion directe |
| SPK_1 | Haut-parleur + | |
| SPK_2 | Haut-parleur − |

Cette image a été créée avec Fritzing. Cliquez pour agrandir l'image.
Conseil : Si votre variante ESP32 n'expose pas GPIO 16/17 (certaines cartes DevKit-C V4 les utilisent pour la PSRAM), vous pouvez réassigner les broches UART dans le code :
Préparation de la Carte SD
Avant de téléverser du code MicroPython sur l'ESP32, préparez la micro carte SD :
- Formatez la carte en FAT16 ou FAT32 (utilisez l'utilitaire de disque de votre ordinateur).
- Copiez les fichiers mp3 dans le répertoire racine avec des noms avec zéros de tête :
- Optionnellement, organisez les pistes dans des dossiers numérotés pour une lecture multi-catégorie :
Règles clés pour la configuration ESP32 + Mini Mp3 Player :
- Les numéros de piste commencent à 1, pas à 0.
- Le module détermine l'ordre des pistes par la séquence de copie sur la carte — pas par nom de fichier. Formatez d'abord la carte, puis copiez les fichiers un par un dans l'ordre.
- Les noms de dossiers doivent être à 2 chiffres avec zéros de tête (01–99). Les noms de fichiers dans les dossiers doivent être à 3 chiffres avec zéros de tête (001–255).
- Insérez la carte SD dans le module Mini Mp3 Player avant de mettre l'ESP32 sous tension.
Étapes Rapides
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 au module Mini Mp3 Player selon le schéma fourni.
- 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 COM12 sur Windows ou /dev/ttyACM0 sur Linux).
- Naviguez vers Outils Gérer les packages dans Thonny IDE.
- Recherchez "DIYables-MicroPython-MiniMp3", puis trouvez la bibliothèque Mini Mp3 Player créée par DIYables.
- Cliquez sur DIYables-MicroPython-MiniMp3, puis cliquez sur le bouton Installer pour installer la bibliothèque.

- 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.
- Insérez la carte SD avec les fichiers mp3 dans le module Mini Mp3 Player.
- Écoutez la lecture audio via le haut-parleur connecté.
Modèle de Code de Démarrage
Code ESP32 MicroPython — Lire une Piste
Essayez
- Chargez la carte SD, câblez le module, connectez l'ESP32 via USB.
- Téléversez le code avec Thonny IDE ou votre outil MicroPython préféré.
Contrôle de Lecture
Toutes les commandes de lecture sont non bloquantes — l'ESP32 envoie la commande via UART2 et retourne immédiatement, donc votre code MicroPython continue de s'exécuter.
| Méthode | Action | Exemple de code |
|---|---|---|
| play(n) | Lit la piste numéro n depuis la racine | mp3.play(1) |
| play_next() | Passe à la piste suivante | mp3.play_next() |
| play_previous() | Revient à la piste précédente | mp3.play_previous() |
| pause() | Met la lecture en pause à la position actuelle | mp3.pause() |
| resume() | Continue depuis la position de pause | mp3.resume() |
| stop() | Arrête complètement la lecture | mp3.stop() |
Code ESP32 MicroPython — Plusieurs Pistes
Code ESP32 MicroPython — Boutons de Volume
API Volume
L'ESP32 peut régler le volume à n'importe quel niveau entre 0 (muet) et 30 (maximum) instantanément, ou monter/descendre d'un niveau à la fois — utile pour le contrôle par boutons.
| Méthode | Action | Exemple |
|---|---|---|
| set_volume(v) | Régler le volume à un niveau spécifique (0–30) | mp3.set_volume(20) |
| volume_up() | Augmenter le volume d'un cran | mp3.volume_up() |
| volume_down() | Diminuer le volume d'un cran | mp3.volume_down() |
| get_volume() | Interroger le niveau de volume actuel | mp3.get_volume() |
Code ESP32 MicroPython — Suivant/Précédent
Code ESP32 MicroPython — Pause/Reprise
Code ESP32 MicroPython — Boucler une Piste
Répétition & Lecture Aléatoire
Ces modes de répétition s'exécutent entièrement sur le module mp3 — l'ESP32 envoie simplement la commande une fois et le module gère la lecture continue automatiquement.
| Méthode | Comportement | Exemple |
|---|---|---|
| loop_track(n) | Répéter une seule piste indéfiniment | mp3.loop_track(1) |
| loop_folder(f) | Parcourir toutes les pistes d'un dossier | mp3.loop_folder(1) |
| loop_all() | Lire toutes les pistes sur la carte SD, puis recommencer | mp3.loop_all() |
| stop_loop() | Arrêter la répétition après la fin de la piste actuelle | mp3.stop_loop() |
| shuffle() | Lire toutes les pistes dans un ordre aléatoire | mp3.shuffle() |
Code ESP32 MicroPython — Lecture par Dossier
API Dossier
La lecture par dossier est idéale pour les projets ESP32 nécessitant de l'audio catégorisé — par exemple, différentes langues, catégories de sons ou listes de lecture.
| Méthode | Description | Exemple |
|---|---|---|
| play_folder(f, t) | Lire la piste t du dossier f (jusqu'à 99 dossiers, 255 pistes chacun) | mp3.play_folder(1, 1) |
| play_large_folder(f, t) | Mode grand dossier (jusqu'à 15 dossiers, 3000 pistes chacun) | mp3.play_large_folder(1, 2000) |
| play_from_mp3_folder(t) | Lire depuis le dossier /mp3 spécial (jusqu'à 9999 pistes) | mp3.play_from_mp3_folder(1) |
Code ESP32 MicroPython — Contrôle via Console Série
| Commande | Effet |
|---|---|
| 1–9 | Lire une piste |
| + / − | Volume |
| p / r / s | Pause / Reprise / Arrêt |
| n / b | Suivant / Précédent |
| ? | État |
Options d'Égaliseur
Le module intègre un DSP avec six préréglages EQ. Sur l'ESP32, vous pouvez changer les modes EQ en temps réel — même pendant la lecture d'une piste.
| Constante | ID | Profil Sonore |
|---|---|---|
| EQ_NORMAL | 0 | Réponse plate / neutre |
| EQ_POP | 1 | Voix et aigus brillants |
| EQ_ROCK | 2 | Médiums et basses percutants |
| EQ_JAZZ | 3 | Ton chaud et doux |
| EQ_CLASSIC | 4 | Équilibré sur toutes les fréquences |