Apprenez à lire des fichiers audio .mp3 ou .wav stockés sur une carte microSD à l’aide d’un ESP32. Nous utiliserons le module de lecteur de musique MP3 série YX5300/YX6300 connecté à une carte ESP32 et programmé avec l’IDE Arduino.

Lecture recommandée : [Extended Guide] ESP32 avec lecteur MP3 YX5300/YX6300 (Arduino IDE)
Présentation du module de lecteur de musique MP3 série YX5300/YX6300
Le YX5300 / YX6300 est un module de lecteur de musique MP3 série (UART) à faible coût qui peut être interfacé avec des microcontrôleurs (tels que l’ESP32, l’ESP8266 ou l’Arduino) pour lire des fichiers .mp3 ou .wav stockés sur une carte MicroSD en envoyant des commandes série.

Où acheter ?
Vous pouvez consulter notre page Maker Advisor Tools pour comparer le prix du module YX5300 / YX6300 dans différents magasins :
Vous aurez également besoin d’un modèle de carte de développement ESP32 de votre choix.
Câblage du lecteur de musique MP3 série YX5300 / YX6300 à l’ESP32

Le câblage du lecteur MP3 à l’ESP32 est assez simple, car il ne nécessite que deux broches série : RX et TX.
| YX5300 / YX6300 | ESP32 |
| Émission | GPIO 16 (UART 2 RX) |
| RX | GPIO 17 (UART 2 TX) |
| VCC | NIV (5V) |
| GND | GND |
Selon les spécifications du produit dans le manuel, le VCC fonctionne avec des tensions comprises entre 3,2 V et 5,2 V. Selon nos tests, il fonctionne de manière plus fiable lorsqu’il est connecté à 5 V (VIN).
* Vous pouvez utiliser n’importe quel autre GPIO RX/TX. Consultez le guide de brochage ESP32 :
Vous aimerez peut-être également : Communication UART ESP32 (série) : définir les broches, les interfaces, envoyer et recevoir des données (Arduino IDE).
Nous allons connecter la broche RX au GPIO 17 et la broche TX au GPIO 16.

Important : dans tous les projets utilisant des commandes série, vous devez connecter les broches TX-RX et RX-TX. Cependant, si le code ne fonctionne pas correctement (pas d’envoi/réception de commandes série), vous devrez peut-être échanger le câblage et connecter RX-RX et TX-TX. L’un de nos lecteurs MP3 série était livré avec les mauvaises étiquettes sur le module, et la seule façon dont il fonctionnait était de le connecter avec TX-TX et RX-RX.
Préparation de l’IDE Arduino
Nous allons programmer la carte ESP32 à l’aide de l’IDE Arduino. Assurez-vous donc que le module complémentaire ESP32 est installé. Suivez le tutoriel suivant :
Si vous préférez utiliser VSCode + PlatformIO, suivez plutôt le tutoriel suivant :
Installation de la bibliothèque YX5300 pour ESP32 (compatible YX6300)
Il existe plusieurs bibliothèques pour interfacer le module série YX5300 avec l’ESP32. Nous utiliserons la bibliothèque YX5300_ESP32 de bluejunimo (même si la bibliothèque s’appelle YX5300 pour ESP32, elle est également entièrement compatible avec le module MP3 YX6300 sans aucune modification supplémentaire).
Vous pouvez installer la bibliothèque via le gestionnaire de bibliothèque Arduino IDE. Recherchez YX5300 pour ESP32 et installez la bibliothèque par bluejunimo.

Préparation de la carte MicroSD
Le lecteur MP3 YX5300 dispose d’un emplacement pour carte microSD dans lequel vous pouvez insérer une carte microSD pour stocker vos fichiers .mp3 ou .wav. Voici les principales spécifications prises en charge par le module.
| YX5300 | Valeur |
| Cartes MicroSD prises en charge | MicroSD <= 32 Go |
| Format de la carte | FAT16 / FAT32 |
| Formats de piste | .mp3 / .wav |
| Fréquences | 8-48 kHz |
Avant de poursuivre le didacticiel, assurez-vous de formater votre carte microSD en FAT32. Suivez les instructions suivantes pour formater votre carte microSD ou utilisez un outil logiciel tel que SD Card Formater (compatible avec Windows et Mac OS).
1. Insérez la carte microSD dans votre ordinateur. Accédez à Poste de travail et cliquez avec le bouton droit sur la carte SD. Sélectionnez Format comme indiqué dans la figure ci-dessous.

2. Une nouvelle fenêtre apparaît. Sélectionnez FAT32, appuyez sur Démarrer pour initialiser le processus de formatage et suivez les instructions à l’écran.

3. Afin de lire des morceaux de musique, vos dossiers et vos fichiers doivent être nommés correctement afin que le module MP3 puisse y accéder. Voici un exemple de structure de dossiers et de noms de fichiers :
01/
001xxx.mp3
002xxx.mp3
003xxx.mp3
02/
004xxx.mp3
005xxx.mp3
03/
006xxx.mp3
007xxx.mp3
008xxx.mp3
Vos dossiers doivent comporter 2 chiffres et chaque piste doit commencer par 3 chiffres. Chaque nom de piste doit être unique. Remarque : il y a un maximum de 99 dossiers contenant 255 chansons dans chaque dossier.
Exemple, commencez par créer 2 dossiers dans votre carte microSD (nommez vos dossiers : 01 et 02) :

4. Copiez les fichiers .mp3 ou .wav en commençant par 001, 002 et 003. Les noms de fichiers doivent être séquentiels et commencer par 3 chiffres.

5. Enfin, retirez la carte microSD de votre ordinateur et connectez-la au module YX5300.

Vous pouvez cliquer ici pour télécharger un dossier .zip contenant les fichiers musicaux libres de droits utilisés pour ce projet.
Connexion d’un casque ou de haut-parleurs au module YX5300
Le YX5300 n’est livré avec aucun casque ni haut-parleur, mais vous pouvez utiliser des écouteurs similaires à ceux illustrés dans l’image ci-dessous et les brancher sur la prise casque du module.

Code – Lire des fichiers audio .mp3/.wav à l’aide du lecteur MP3 YX5300/YX6300
Le code suivant est celui fourni par la bibliothèque pour en lire avec le module lecteur MP3 YX5300 connecté à un ESP32. Il lira les fichiers audio stockés sur la carte microSD via le casque ou le haut-parleur.
/*********
Rui Santos & Sara Santos - Raspberryme.com
Complete project details at https://Raspberryme.com/esp32-yx5300-yx6300-mp3-player-arduino/
Example based on the library example by bluejunimo https://github.com/bluejunimo/YX5300_ESP32/
*********/
#include
// Connect to YX5300 Serial pins (RX and TX)
#define RX 16
#define TX 17
// mp3 object
YX5300_ESP32 mp3;
void setup() {
// Initialize connection with the YX5300/YX6300 module
mp3 = YX5300_ESP32(Serial2, RX, TX);
// Shows the hex commands being sent to the mp3 device (includes helpful errors)
Serial.begin(115200);
mp3.enableDebugging();
// Plays the first track stored on the microSD Card (Track Formats .mp3/.wav | Frequencies 8-48 kHz)
// MicroSD Card folder and file structure, example folder name 01 and file name 001xxx.mp3:
// 01/001xxx.mp3 01/002xxx.mp3 01/003xxx.mp3 02/004xxx.mp3
mp3.playTrack(1);
}
void loop() {
// put your main code here, to run repeatedly:
}
Afficher le code brut
Comment fonctionne le code
Décomposons le fonctionnement du code.
Inclure la bibliothèque YX5300_ESP32
Tout d’abord, vous devez inclure la bibliothèque YX5300_ESP32.h créée par bluejunimo qui rendra très simple l’interface avec le module lecteur MP3.
#include
Initialiser le YX5300
Définissez les broches YX5300 RX et TX et créez un objet pour le module appelé mp3.
#define RX 16
#define TX 17
YX5300_ESP32 mp3;
installation()
Dans le setup(), commencez par initialiser le module avec un canal série spécifique.
mp3 = YX5300_ESP32(Serial2, RX, TX);
Lecture recommandée : Communication UART ESP32 (série) : définir les broches, les interfaces, envoyer et recevoir des données (Arduino IDE).
Activez la communication série et le débogage MP3, afin que vous puissiez voir les commandes série hexadécimales envoyées à l’appareil. Une fois le débogage activé, vous verrez également des erreurs utiles.
Serial.begin(115200);
mp3.enableDebugging();
Vous pouvez lire rapidement la première piste stockée sur la carte microSD à l’aide de la commande suivante :
mp3.playTrack(1);
Démonstration
Téléchargez le code précédent sur votre carte ESP32. Il lira la première piste stockée sur la carte microSD. Votre moniteur série devrait imprimer un message similaire :

Si le casque ou le haut-parleur est branché sur la prise casque, vous devriez entendre la première piste stockée sur votre carte microSD.

Si vous rencontrez des problèmes avec ce projet, suivez la section de dépannage suivante.
Dépannage du module de lecteur MP3 YX5300/YX6300
Si vous avez téléchargé le code précédent, mais que vous n’entendez aucun son avec le module de lecteur MP3 YX5300/YX6300, il peut s’agir de l’un des problèmes suivants.
- Erreur de câblage : dans tous les projets utilisant des commandes série, vous devez connecter les broches TX-RX et RX-TX. Cependant, si le code ne fonctionne pas correctement (pas d’envoi/réception de commandes série), vous devrez peut-être échanger le câblage et connecter RX-RX et TX-TX. L’un de nos lecteurs MP3 série était livré avec les mauvaises étiquettes sur le module, et la seule façon dont il fonctionnait était de le connecter avec TX-TX et RX-RX ;
- Pas assez de puissance : selon les spécifications du produit dans le manuel, le VCC fonctionne avec des tensions comprises entre 3,2 V et 5,2 V. Selon nos tests, il fonctionne de manière plus fiable lorsqu’il est connecté à 5 V (VIN) ;
- Problème de carte MicroSD : votre microSD doit être égale ou inférieure à 32 Go et formatée en FAT16/FAT32. Les formats de piste doivent être dans des fichiers .mp3/.wav avec des fréquences de 8 à 48 kHz ;
- Mauvaise structure de dossiers/noms de fichiers : la structure des dossiers et des fichiers de votre carte microSD est incorrecte, exemple de dossiers et de noms de fichiers : 01/001xxx.mp3 01/002xxx.mp3 01/003xxx.mp3 02/004xxx.mp3 ;
- Problème d’écouteurs/haut-parleurs : nous vous recommandons de tester vos écouteurs/haut-parleurs sur un autre appareil pour vous assurer qu’ils fonctionnent.
Conclusion
Il s’agissait d’un guide rapide sur la façon de lire des sons avec le module lecteur MP3 YX5300/YX6300 avec une carte ESP32. Pour un guide complet et étendu sur la façon d’interfacer le YX5300/YX6300, vous pouvez lire cet autre guide :
Nous espérons que vous avez trouvé ce guide utile. Nous avons d’autres guides qui pourraient être utiles :
Pour en savoir plus sur l’ESP32, assurez-vous de consulter nos ressources :
Cette vidéo vous emmène dans l’histoire de Raspberry Pi :

-
ANGEEK YX5300 Module de Lecteur de Musique MP3 série à Commande UART pour Arduino/AVR/Arm/PIC
-
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
