Fabrication d'un lecteur mp3 open-source sur ESP32 avec Arduino
Envie de construire un lecteur audio de (presque) zéro ? Voici un tutoriel avec circuit et code !
Article publié le 21/05/2021, dernière mise à jour le 17/11/2023
Lorsque notre fille était plus jeune, ma femme avait pour projet d'acheter un lecteur audio et générateur de bruit blanc pour sa chambre.
Le bruit blanc ayant parfois pour effet d'aider les enfants à s'endormir.
Après avoir trouvé quelques lecteurs compatibles pour environs 30€ sur Amazon, je lui ai proposé d'en fabriquer un moi-même pour environs 15€, avec les fonctionnalités qu'elle désirait, et c'est ce que j'ai fait.
En réalité cela m'a environs coûté 17€ au total.
Recherche
Je m'étais déjà amusé avec des Raspberry Pi et des Arduino Uno auparavant, mais ici j'ai eu envie de tester quelque chose de nouveau, plus petit et avec une consommation électrique réduite.
Si vous n'êtes pas familier avec l'environnement Arduino, je vous invite à lire l'article que je lui ai consacré sur le blog.
Sur les conseils de mon ami (et mentor) @Paul, j'ai décidé de me tourner vers une carte ESP32, compatible Arduino avec WiFi et Bluetooth intégrés.
Avec un peu de recul sur ce projet, un simple Arduino Nano aurait pu faire l'affaire, étant donné que je n'ai utilisé ni Bluetooth ni WiFi au final.
L'étape suivante consistait à trouver un composant me permettant de lire de la musique, et comme je n'avais jamais touché à ce genre de choses, j'ai simplement recherché "arduino mp3 module" sur Google, et la première réponse fût : DFPlayer Mini.
Le module est un lecteur MP3 autonome (il ne requiert aucun controller externe pour lire et jouer de la musique), supportant les microSD et intégrant déjà un ampli audio.
Exactement ce que je recherchais pour aller au plus simple et rapide possible !
Après avoir lu quelques tutoriels et regardé quelques vidéos d'explication sur YouTube, j'ai réussi à trouver quelques créateurs ayant déjà fait fonctionner les deux composants ensemble, donc j'ai pu valider ma commande, en ajoutant au passage une petite enceinte.
Composants
Voici la liste des composants que j'ai utilisé, avec les prix et les liens pour acheter ces derniers (depuis amazon.fr, non-affilié).
- ESP32 Dev Module - 9,49€
- DFPlayer Mini - 3,11€ (6,21€ pack of two)
- Speaker - 3.99€ (7,99€ pack of two)
J'ai aussi utilisé 1 carte micro SD (que j'avais auparavant), 4 boutons poussoirs, 4 résistances 10KΩ , 1 résistances 1KΩ, 1 breadboard et quelques fils présents dans mon kit de démarrage.
Circuit
Après avoir reçu toutes les pièces et avoir consulté d'autres tutoriels pour comprendre comment faire fonctionner l'ESP32 et le DFPlayer Mini ensemble, j'ai fini par concevoir le circuit ci-dessous :
Comme vous pouvez le voir, l'ESP32 communique avec le lecteur audio par ses pins du port série, et d'après les instructions d'utilisations trouvées sur le net, le lien TX-RX a besoin d'une résistance de 1KΩ pour réduire les perturbations.
Code
Tout le code que vous aurez besoin d'envoyer sur l'ESP32 pour le faire fonctionner avec le schéma ci-dessus est disponible directement sur GitHub en tant que projet open-source auquel vous êtes libre de contribuer !
En bonus, voici une petite vidéo que j'ai prise en faisant le montage, vous pourrez voir que le lecteur fonctionne parfaitement !
Xyxyblblbl
09/16/2024, 11:29 AM
Bonjour, Je suis grand grand débutant mais je suis très intéressé par cet objet et je voudrais vous poser quelques questions. Comment est-ce que le lecteur est alimenté? Est-ce qu'il y a des composants à souder entre eux? Pensez-vous qu'on peut rajouter facilement une entrée jack pour y brancher un casque? Enfin, est-ce qu'on trouve facilement des boutons poussoir plus ergonomiques (utilisables par un enfant?)?
NicolasBrondinBernard
09/16/2024, 12:57 PM
@Xyxyblblbl Le lecteur est alimenté par la carte du micro-controleur (ESP-32), qui ici est lui-même alimenté par un câble USB. Il est également possible de l'alimenter avec une batterie ou des piles, mais cela demande un peu plus de composants pour avoir la bonne tension de sortie pour alimenter l'ESP !
Ici les composants sont fixés sur une carte de prototypage sans soudure, mais si l'on veut en faire un vrai objet oui il faut souder les composants sur un circuit imprimé. Pour la prise Jack, oui il suffit de remplacer l'enceinte par une prise Jack femelle, normalement le DFPlayer Mini peut même sortir de la stéréo !
Pour les boutons poussoir ça doit exister, mais ceux là sont souvent utilisés, avec une simple couche de silicone par dessus.
Xyxyblblbl
09/16/2024, 6:30 PM
@NicolasBrondinBernard Ok ça marche merci beaucoup ! En fait concernant la prise Jack femelle je pensais la mettre en parallèle de la sortie haut-parleur, je ne sais pas si ça peut se faire facilement?
NicolasBrondinBernard
09/16/2024, 7:43 PM
@Xyxyblblbl Il y a deux problèmes à ça : D'abord cela signifie que même si un casque est branché sur la prise Jack, du son sortira quand même par l'enceinte. Ensuite cela divisera la tension de sortie par deux, donc deux fois moins de volume ! À ce moment-là il vaut mieux enlever carrément l'enceinte, mettre une prise Jack et trouver une petite enceinte à relier en Jack 👍