Présentation d'un projet de programmation de microprocesseur, qui va piloter une puce "DFPlayer" à partir du Web, donc d'un smartphone !

Historique du développement, et de son développeur

    Retraité depuis 4 ans et demi (après une vie professionnelle dans les arts graphiques et un atelier de sérigraphie), je me suis fait offrir au Noël An 1 du Covid une platine Arduino R3, et quelques à-cotés nécessaires pour débuter.
    Je ne connaissais pas du tout le langage Arduino, n’avais jamais étudié la micro-électronique, mais avais quand même eu ce désir d’étudier ceci car :

  • j’aime bien programmer, depuis les débuts d’Hypercard (là, les jeunes ne doivent plus suivre... Pour info, ça a été, peu après les débuts du Macintosh, un langage livré avec tous les Macs, assez facile et révolutionnaire, proche du Pascal.)
  • j’aime bien Internet et surtout la partie site web dynamique (j’en ai fait plusieurs, dont un assez complexe en php, javascript, CSS, et HTML bien sûr).
  • et surtout je suis curieux d’à peu près tout, de la technique, de l’informatique, de la mécanique, et me suis souvenu avoir découvert en parcourant OpenClassroom le langage Arduino il y a 6 ou 7 ans - je travaillais encore -, et m’étais dit «Il faudrait 2 vies pour pouvoir découvrir tout ça !»


  • Non, non, pas 2 vies, la retraite, et les confinements successifs, m’ont laissé du temps pour apprendre tranquillement les bases d’Arduino, et bien sûr j’ai très vite été enthousiasmé par tout ce qui tourne autour du web, notamment les petits modules ESP, certains tout petits mais étonnamment puissants.
    Mon choix s’est porté, pour le coté pratique et peu couteux, sur la platine D1R1 qui se programme en langage Arduino et permet d’avoir environ 4 Mo de dispo (comme un petit disque dur accessible) dans lequel on peut mettre ce que l’on veut.
    Je pense que tous ceux (mis à part les élèves, et ils sont nombreux visiblement à avoir des exercices à faire) qui découvrent ce monde sympathique, à un moment donné, se demandent qu’est-ce qu’on pourrait bien se bricoler ? C’est tellement vaste, qu’il faut aussi se limiter sinon on peut partir dans tous les sens...

    Mes différentes recherches m’ont bien sûr amenés à quelques sites chinois (les ESP sont des développements chinois), et il faut avouer que c’est tentant de voir tout ce qui se fabrique, à des petits prix, dans ce domaine.
    Parmi quelques puces diverses, je me suis dit qu’un lecteur de carte SD en mp3 à quelques euros, ça devait être sympa pour sonoriser une application, et mon choix s’est porté sur le petit DFPlayer de DFRobot.

Et, de fil en aiguille, de découverte en découverte, l'idée est donc venue de créer une interface web pour piloter cette puce.

Puis une fois l'application à peu près finie, je me suis dit que ce serait bien d'en faire profiter les autres. Aussi, ne connaissant rien aux blogs et autres forums, et ne sachant comment faire, je me suis proposé à faire un tuto sous forme de site internet, ce qui rentrait dans mes compétences. Que j'ai au passage approfondies en apprenant à faire des choses que je n'avais jamais faites : des recopies vidéo d'écran, de la publication de vidéo sans YouTube ou autre, savoir mettre du code "colorisé" dans une page web, etc...

Vous avez le résultat de tout ça sous les yeux !

Pierre Saunière, La Chapelle Basse-Mer, près de Nantes, France - Novembre 2021

Présentation du tutoriel

Les 3 composants du bandeau ci-dessus résument ce projet : comment piloter un DFPlayer de DFRobot via une interface web, à partir d'une platine à base de ESP8266



Avertissement : pour des questions évidentes de droits, il n'y a pas de démonstration en vidéo sonore, car la musique est protégée par des droits. Ça peut paraître frustrant, mais ne peut que vous inciter à faire ce petit montage !
Rassurez-vous, ça marche très bien !

Idée lumineuse

Puisqu’il n’y a pas grand-chose de possible avec des boutons, orientons-nous vers le web !

Déplaçons le problème de l'interfaçage peu pratique en électronique vers le web, plus habile à manipuler des listes, des choix, des boutons, des actions

Le rôle coté ESP

Mis à part l'installation des librairies concernant internet (connexion automatique multi points d'accès, lancement et paramétrage du serveur Web, la partie "contrôle du DFPlayer mini" est extrêmement limitée coté programmation type Arduino, puisque juste une Pin à surveiller...

LittleFS, une solution fiable

Stocker, écrire et modifier des fichiers

Le code coté ESP

Après l'import des différentes bibliothèques nécessaires pour la connexion WiFi, le serveur Web, le stockage de fichiers, un pseudo port série et bien sûr le DFRobotDFPlayerMini, l'ESP fait le lien, dans les deux sens, entre le DFP et le serveur Web, qui sera donc vu de partout (si on déclare bien un canal dans sa box, ou bien uniquement en local, avec une adresse de type 92.168.1.34, qu'il faudra aussi paramétrer dans sa box. Facile à faire.