====== Lecteur audio mp3/microSD/ESP8266 ====== Pour faire les lecteurs de fichier mp3 sur le salon d'écoute: * DFPlayer_Mini_SKU_DFR0299 * ESP8266 * amplificateur sur 12V * régulateur 12V/5V Les sorties sont stéreo :) Pistes: * https://wiki.dfrobot.com/DFPlayer_Mini_SKU_DFR0299 pour un futur commande WiFi : * https://cine-16mm-scopitones.pagesperso-orange.fr/arduino/DFPlayer-mini-ESP8266/index.html#codeHTML * https://cine-16mm-scopitones.pagesperso-orange.fr/arduino/DFPlayer-mini-ESP8266/codeUTILITAIRE.html * https://github.com/roberttidey/dfPlayer ? Juste modifié l'exemple pour un lancement dans le setup de la lecteur du fichier audio en boucle, faudra regarder a mettre l'ESP en pause apres la commande ... consommation... /*************************************************** DFPlayer - A Mini MP3 Player ESP8266 *************************************************** Created 2016-12-07 By [Angelo qiao](Angelo.qiao@dfrobot.com) Modif Gepeto@du-libre.org 2023 Lit en boucle le premier fichier de la microSD GNU Lesser General Public License. See for details. All above must be included in any redistribution ****************************************************/ /***********Notice and Trouble shooting*************** Connection and Diagram can be found here ****************************************************/ #include "Arduino.h" #include "SoftwareSerial.h" #include "DFRobotDFPlayerMini.h" SoftwareSerial mySoftwareSerial(D1, D2); // RX, TX DFRobotDFPlayerMini myDFPlayer; void printDetail(uint8_t type, int value); void setup() { mySoftwareSerial.begin(9600); Serial.begin(115200); Serial.println(); Serial.println(F("DFRobot DFPlayer Mini Demo")); Serial.println(F("Initializing DFPlayer ... (May take 3~5 seconds)")); if (!myDFPlayer.begin(mySoftwareSerial)) { //Use softwareSerial to communicate with mp3. Serial.println(F("Unable to begin:")); Serial.println(F("1.Please recheck the connection!")); Serial.println(F("2.Please insert the SD card!")); while(true){ delay(0); // Code to compatible with ESP8266 watch dog. } } Serial.println(F("DFPlayer Mini online.")); Serial.println(F("DFPLAYER_EQ_NORMAL volume 25/30")); myDFPlayer.EQ(DFPLAYER_EQ_NORMAL); myDFPlayer.volume(25); //Set volume value. From 0 to 30 myDFPlayer.play(1); //Play the first mp3 Serial.println(F("boucle sur le premier")); } void loop() { /* static unsigned long timer = millis(); if (millis() - timer > 300000) { timer = millis(); myDFPlayer.next(); //Play next mp3 every 3 second. } */ if (myDFPlayer.available()) { printDetail(myDFPlayer.readType(), myDFPlayer.read()); //Print the detail message from DFPlayer to handle different errors and states. } } void printDetail(uint8_t type, int value){ switch (type) { case TimeOut: Serial.println(F("Time Out!")); break; case WrongStack: Serial.println(F("Stack Wrong!")); break; case DFPlayerCardInserted: Serial.println(F("Card Inserted!")); break; case DFPlayerCardRemoved: Serial.println(F("Card Removed!")); break; case DFPlayerCardOnline: Serial.println(F("Card Online!")); break; case DFPlayerUSBInserted: Serial.println("USB Inserted!"); break; case DFPlayerUSBRemoved: Serial.println("USB Removed!"); break; case DFPlayerPlayFinished: Serial.print(F("Number:")); Serial.print(value); Serial.println(F(" Play Finished!")); break; case DFPlayerError: Serial.print(F("DFPlayerError:")); switch (value) { case Busy: Serial.println(F("Card not found")); break; case Sleeping: Serial.println(F("Sleeping")); break; case SerialWrongStack: Serial.println(F("Get Wrong Stack")); break; case CheckSumNotMatch: Serial.println(F("Check Sum Not Match")); break; case FileIndexOut: Serial.println(F("File Index Out of Bound")); break; case FileMismatch: Serial.println(F("Cannot Find File")); break; case Advertise: Serial.println(F("In Advertise")); break; default: break; } break; default: break; } } {{tag>esp8266}} {{tag>audio}}