Arduino Nano ESP32 - Module lecteur Mini Mp3
L'Arduino Nano ESP32 est une carte puissante à 3,3V avec WiFi et Bluetooth intégrés. Dans ce tutoriel, nous allons l'associer au module DIYables Mini Mp3 Player pour construire un lecteur mp3 entièrement contrôlable. Voici ce que nous allons aborder :
- Connexion du module au Nano ESP32 — aucune résistance nécessaire grâce aux niveaux logiques 3,3V.
- Préparation de la carte SD avec des fichiers mp3 correctement nommés.
- Écriture de code pour lire, mettre en pause, reprendre, arrêter et passer les pistes.
- Contrôle du volume via des boutons et des commandes série.
- Configuration de la boucle de pistes, lecture aléatoire complète et lecture basée sur les dossiers.
- Lecture de l'état du module (piste actuelle, volume, état de lecture).

Matériel nécessaire
Ou vous pouvez acheter les kits suivants:
| 1 | × | Kit de Capteurs DIYables (18 capteurs/écrans) |
Remarque : Aucune résistance de 1K n'est nécessaire — le Nano ESP32 utilise la logique 3,3V, qui correspond nativement au module.
Présentation du module Mini Mp3 Player
Le DIYables Mini Mp3 Player est un module décodeur mp3 autonome alimenté par la puce YX5200-24SS. Insérez une carte micro SD avec des fichiers mp3, connectez un petit haut-parleur et envoyez des commandes série pour contrôler la lecture.
Le module accepte des commandes UART à 9600 bauds et fournit les fonctionnalités suivantes :
- Contrôle de lecture complet : lecture, pause, reprise, arrêt, suivant, précédent
- 31 niveaux de volume (0 à 30)
- 6 préréglages d'égaliseur (Normal, Pop, Rock, Jazz, Classic, Bass)
- Modes de répétition : boucle de piste unique, boucle de dossier, boucle de tout, lecture aléatoire
- Lecture organisée par dossiers pour l'audio catégorisé
- Insertion de publicité (interrompre et reprendre)
- Requêtes de statut en temps réel
Brochage
| Broche | Fonction |
|---|---|
| VCC | Alimentation de 3,2V à 5,0V |
| GND | Masse |
| RX | Entrée UART (connecter à TX de la carte) |
| TX | Sortie UART (connecter à RX de la carte) |
| SPK_1 | Haut-parleur + (amplificateur intégré 3W) |
| SPK_2 | Haut-parleur − |
| DAC_R | Sortie ligne droite |
| DAC_L | Sortie ligne gauche |
| BUSY | LOW = en lecture, HIGH = inactif |
| IO_1 | Appui court → précédent, appui long → volume bas |
| IO_2 | Appui court → suivant, appui long → volume haut |

Schéma de câblage
Le Nano ESP32 fonctionne à une logique 3,3V — la même tension que le Mini Mp3 Player utilise en interne. Cela signifie que vous pouvez connecter TX/RX directement sans aucune résistance.
Nous utiliserons Serial1 sur le Nano ESP32 pour la communication avec le module, en gardant le Serial par défaut libre pour le Moniteur Série.
| Mini Mp3 Player | Arduino Nano ESP32 | Remarques |
|---|---|---|
| VCC | 3.3V | Le module accepte aussi 5V depuis VBUS si nécessaire |
| GND | GND | |
| RX | TX1 (D5) | Connexion directe — aucune résistance nécessaire |
| TX | RX1 (D4) | Connexion directe |
| SPK_1 | Haut-parleur + | |
| SPK_2 | Haut-parleur − |

Cette image a été créée avec Fritzing. Cliquez pour agrandir l'image.
Configuration de la carte SD
Préparez la carte micro SD avant de l'insérer dans le module :
- Formatez en FAT16 ou FAT32.
- Copiez les fichiers mp3 à la racine avec des noms complétés par des zéros :
Pour la lecture par dossiers :
Rappel :
- La numérotation des pistes commence à 1 (pas 0).
- Le module détermine l'ordre des pistes à partir de la séquence de copie, pas des noms de fichiers. Formatez d'abord la carte, puis copiez les fichiers individuellement dans l'ordre.
- Noms de dossiers : 2 chiffres, complétés par des zéros (01–99). Noms de fichiers à l'intérieur : 3 chiffres, complétés par des zéros (001–255).
Installation de la bibliothèque
- Connectez le Nano ESP32 à votre ordinateur via USB-C.
- Ouvrez l'Arduino IDE, sélectionnez Arduino Nano ESP32 comme votre carte, et choisissez le port correct.
- Allez dans le panneau Bibliothèques sur la gauche.
- Recherchez "DIYables_MiniMp3" et installez la bibliothèque par DIYables.
- Cliquez sur Installer.

La bibliothèque n'a aucune dépendance externe.
Code Nano ESP32 — Modèle de base
Puisque le Nano ESP32 a des ports série matériels, nous utilisons Serial1 au lieu de SoftwareSerial :
Aucune bibliothèque SoftwareSerial nécessaire ! Le port série matériel est plus fiable, surtout au faible débit de 9600 bauds que ce module utilise.
Code Nano ESP32 — Lire une seule piste
Comment tester
- Chargez la carte SD avec des fichiers mp3 et insérez-la dans le module.
- Câblez le module au Nano ESP32 comme indiqué ci-dessus (sans résistance !).
- Connectez la carte via USB-C, sélectionnez Arduino Nano ESP32, et téléversez.
Vous devriez entendre la piste 001.mp3 via le haut-parleur connecté.
Commandes de lecture
| Méthode | Objectif | Exemple |
|---|---|---|
| play(trackNum) | Démarrer une piste spécifique | mp3.play(1) |
| playNext() | Passer à la piste suivante | mp3.playNext() |
| playPrevious() | Aller à la piste précédente | mp3.playPrevious() |
| pause() | Mettre en pause la piste active | mp3.pause() |
| resume() | Reprendre la piste | mp3.resume() |
| stop() | Arrêter la lecture | mp3.stop() |
Code Nano ESP32 — Lire plusieurs pistes
Comment tester
- Assurez-vous que la carte SD a au moins 3 pistes. Téléversez, et les pistes vont se succéder toutes les 5 secondes.
Code Nano ESP32 — Contrôle du volume
Comment tester
- Câblez deux boutons, téléversez le sketch, et appuyez sur les boutons pendant la lecture de musique.
Commandes de volume
| Méthode | Objectif | Exemple |
|---|---|---|
| setVolume(v) | Passer à un niveau de volume spécifique | mp3.setVolume(20) |
| volumeUp() | Augmenter d'un pas | mp3.volumeUp() |
| volumeDown() | Diminuer d'un pas | mp3.volumeDown() |
| getVolume() | Interroger le niveau actuel | mp3.getVolume() |
Code Nano ESP32 — Boutons Suivant/Précédent
Comment tester
- Câblez des boutons et téléversez. Appuyez sur NEXT ou PREV pour naviguer dans vos pistes.
Code Nano ESP32 — Basculer Pause/Reprise
Code Nano ESP32 — Mettre une piste en boucle
Commandes de répétition et lecture aléatoire
| Méthode | Objectif | Exemple |
|---|---|---|
| loopTrack(t) | Répéter continuellement une piste | mp3.loopTrack(1) |
| loopFolder(f) | Répéter toutes les pistes d'un dossier | mp3.loopFolder(1) |
| loopAll() | Répéter tout sur la carte | mp3.loopAll() |
| stopLoop() | Terminer le mode de répétition actuel | mp3.stopLoop() |
| shuffle() | Ordre de lecture aléatoire | mp3.shuffle() |
Code Nano ESP32 — Lire depuis un dossier
Méthodes de dossier
| Méthode | Objectif | Exemple |
|---|---|---|
| playFolder(f, t) | Sélectionner la piste t du dossier f | mp3.playFolder(1, 1) |
| playLargeFolder(f, t) | Mode grand dossier (jusqu'à 3000 pistes) | mp3.playLargeFolder(1, 1500) |
| playFromMP3Folder(t) | Accéder au dossier spécial /mp3 | mp3.playFromMP3Folder(1) |
Code Nano ESP32 — Contrôle par Moniteur Série
Commandes série
| Entrée | Résultat |
|---|---|
| 1–9 | Lire cette piste |
| + / − | Volume haut / bas |
| p | Pause |
| r | Reprendre |
| s | Arrêter |
| n | Piste suivante |
| b | Piste précédente |
| ? | Afficher le statut |
Préréglages d'égaliseur
| Constante | ID | Tonalité |
|---|---|---|
| DIYables_MiniMp3::EQ_NORMAL | 0 | Neutre |
| DIYables_MiniMp3::EQ_POP | 1 | Pop |
| DIYables_MiniMp3::EQ_ROCK | 2 | Rock |
| DIYables_MiniMp3::EQ_JAZZ | 3 | Jazz |
| DIYables_MiniMp3::EQ_CLASSIC | 4 | Classique |
| DIYables_MiniMp3::EQ_BASS | 5 | Basses renforcées |