ESP32 - Mini Lecteur Mp3
L'ESP32 est un microcontrôleur polyvalent 3,3V avec WiFi, Bluetooth et plusieurs ports série matériels. Combiné avec le module DIYables Mini Mp3 Player, 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 petite carte basée sur la puce YX5200-24SS. Il décode les fichiers mp3 depuis une micro carte SD et peut piloter directement un haut-parleur via son amplificateur intégré 3W. Vous pouvez également utiliser les broches DAC pour alimenter un amplificateur externe afin d'obtenir une puissance sonore plus élevée.
Tout est contrôlé via des commandes série à 9600 bauds :
- Transport : lecture, pause, reprise, arrêt, suivant, précédent
- Volume : 31 niveaux (0–30)
- Égaliseur : Normal, Pop, Rock, Jazz, Classique, Basses
- Répétition : boucler une seule piste, boucler un dossier, boucler toutes les pistes, lecture aléatoire
- Dossiers : lecture depuis des répertoires numérotés sur la carte
- Publicités : interrompre temporairement la lecture, puis reprendre
- Requêtes : lire le numéro de piste, le volume, l'état de lecture, le nombre de pistes
Description des Broches
| Broche | Fonction |
|---|---|
| VCC | Alimentation 3,2V à 5,0V |
| GND | Masse |
| RX | Entrée données série (connecter à la broche TX de l'ESP32) |
| TX | Sortie données série (connecter à la broche RX de l'ESP32) |
| SPK_1 | Haut-parleur + (ampli intégré, 3W max) |
| SPK_2 | Haut-parleur − |
| DAC_R | Sortie ligne canal droit |
| DAC_L | Sortie ligne canal gauche |
| BUSY | LOW = en lecture, HIGH = arrêté |
| IO_1 | Appui court → piste préc. ; appui long → vol. bas |
| IO_2 | Appui court → piste suiv. ; appui long → vol. haut |

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 Serial2 (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.
Si vous ne savez pas comment alimenter l'ESP32 et d'autres composants, consultez les instructions dans le tutoriel suivant : Comment alimenter l'ESP32..
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 de Serial2 dans le code :
Préparation de la Carte SD
- Formatez en FAT16 ou FAT32.
- Placez les fichiers mp3 à la racine :
- Pour une lecture organisée, utilisez des dossiers numérotés :
Notes importantes :
- Les numéros de piste commencent à 1.
- Le module indexe les pistes selon l'ordre dans lequel elles ont été copiées sur la carte, pas par nom de fichier. Formatez toujours d'abord, puis copiez séquentiellement.
- Noms de dossiers : 01–99 (2 chiffres), noms de fichiers : 001–255 (3 chiffres).
Installation de la Bibliothèque
- Connectez l'ESP32 à votre ordinateur.
- Dans l'IDE Arduino, sélectionnez votre variante de carte ESP32 et le port correct.
- Ouvrez le gestionnaire de Bibliothèques.
- Recherchez "DIYables_MiniMp3" et installez la bibliothèque de DIYables.

Aucune dépendance — fonctionne immédiatement.
Modèle de Code de Démarrage
Code ESP32 — Lire une Piste
Essayez
- Chargez la carte SD, câblez le module, connectez l'ESP32 via USB.
- Sélectionnez votre carte ESP32 dans l'IDE et téléversez.
Contrôle de Lecture
| Méthode | Action | Exemple de code |
|---|---|---|
| play(n) | Lit la piste numéro n | mp3.play(1) |
| playNext() | Passe à la piste suivante | mp3.playNext() |
| playPrevious() | Revient à la piste précédente | mp3.playPrevious() |
| pause() | Met la lecture en pause | mp3.pause() |
| resume() | Reprend là où vous vous êtes arrêté | mp3.resume() |
| stop() | Arrête complètement la lecture | mp3.stop() |
Code ESP32 — Plusieurs Pistes
Code ESP32 — Boutons de Volume
API Volume
| Méthode | Action | Exemple |
|---|---|---|
| setVolume(v) | Passer au niveau v | mp3.setVolume(20) |
| volumeUp() | Incrémenter de 1 | mp3.volumeUp() |
| volumeDown() | Décrémenter de 1 | mp3.volumeDown() |
| getVolume() | Lire le niveau actuel | mp3.getVolume() |
Code ESP32 — Suivant/Précédent
Code ESP32 — Pause/Reprise
Code ESP32 — Boucler une Piste
Répétition & Lecture Aléatoire
| Méthode | Comportement | Exemple |
|---|---|---|
| loopTrack(n) | Répéter la piste n indéfiniment | mp3.loopTrack(1) |
| loopFolder(f) | Répéter toutes les pistes du dossier f | mp3.loopFolder(1) |
| loopAll() | Répéter toutes les pistes | mp3.loopAll() |
| stopLoop() | Annuler la boucle active | mp3.stopLoop() |
| shuffle() | Aléatoiriser la lecture | mp3.shuffle() |
Code ESP32 — Lecture par Dossier
API Dossier
| Méthode | Description | Exemple |
|---|---|---|
| playFolder(f, t) | Lire la piste t du dossier f | mp3.playFolder(1, 1) |
| playLargeFolder(f, t) | Grand dossier (15 dossiers, 3000 pistes) | mp3.playLargeFolder(1, 2000) |
| playFromMP3Folder(t) | Lire depuis le dossier /mp3 | mp3.playFromMP3Folder(1) |
Code ESP32 — Contrôle via le Moniteur 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
| Constante | ID | Caractère |
|---|---|---|
| DIYables_MiniMp3::EQ_NORMAL | 0 | Neutre |
| DIYables_MiniMp3::EQ_POP | 1 | Brillant |
| DIYables_MiniMp3::EQ_ROCK | 2 | Percutant |
| DIYables_MiniMp3::EQ_JAZZ | 3 | Chaleureux |
| DIYables_MiniMp3::EQ_CLASSIC | 4 | Équilibré |
| DIYables_MiniMp3::EQ_BASS | 5 | Grave prononcé |
Vérification de l'État du Module
Ces fonctions bloquent pendant 100 ms maximum en attendant la réponse du module. Elles retournent −1 si aucune réponse n'arrive.
| Fonction | Retour | Description |
|---|---|---|
| isPlaying() | bool | true pendant la lecture active |
| getVolume() | int16_t | Volume actuel (0–30) |
| getEQ() | int16_t | Égaliseur actif (0–5) |
| getTrackCount() | int16_t | Nombre total de pistes sur la carte SD |
| getCurrentTrack() | int16_t | Numéro de la piste en cours de lecture |
| getFolderCount() | int16_t | Nombre total de dossiers sur la carte SD |
| getTrackCountInFolder(f) | int16_t | Nombre de pistes dans le dossier f |