Le code pour fichier.INO
#include <ESP8266WiFi.h>
#include <WiFiClient.h>
#include <ESP8266WiFiMulti.h>
#include <ESP8266mDNS.h>
#include <ESP8266WebServer.h>
#include <LittleFS.h>
#include "SoftwareSerial.h"
#include "DFRobotDFPlayerMini.h"
SoftwareSerial mySoftwareSerial(D10, D11); // RX, TX
const byte busy_pin = D12;
bool EtatLecture = false;
bool EtatListe = false;
bool EtatPrecedent;
String Playlist = "";
String TotalPlaylist = "";
String State;
int Volume;
uint8_t EQ = 0;
int D; //Disque (répertoire) en cours de lecture de la playlist
int M; //morceau en cours de lecture de la playlist
int Disque;
int NomDisque; //Disque (répertoire) en cours de lecture (info du DFPlayer)
int TitreMorceau; //morceau en cours de lecture (info du DFPlayer)
int Compteurplaylist = 0; //no comment...
DFRobotDFPlayerMini myDFPlayer;
void printDetail(uint8_t type, int value);
ESP8266WiFiMulti wifiMulti; // Create an instance of the ESP8266WiFiMulti class, called 'wifiMulti'
ESP8266WebServer MonServeurWeb(80); // Create a webserver object that listens for HTTP request on port 80
String getContentType(String filename); // convert the file extension to the MIME type
bool handleFileRead(String path); // send the right file to the client (if it exists)
bool etat_enregistrement = false;
String FichierPlaylist = "PlayList.txt" ;
File DataFileID;
File file_ID;
const byte led_pin = D4;
const byte sensor_pin = D2;
int pirState = LOW; // we start, assuming no motion detected
int val = 0; // variable for reading the pin status
unsigned long ancien = 0, nouveau = 0;
void aff_page_web() {
// cherchons le fichier de la page internet
file_ID = LittleFS.open("index.html", "r");
if (file_ID) {
MonServeurWeb.streamFile(file_ID, "text/html");//Envoyer la page Web
// Page_Client = file_ID.read; // je colle le contenu en texte dans une variable globale
// file_ID.close();
Serial.println("-----> index.html envoyée");
} else {
Serial.println("Problème d'ouverture du fichier index.html");
Serial.println("Assurez vous de l'avoir téléversé à l'aide \r\n de l'outil LittleFS data upload");
String rep = "Problème d'ouverture du fichier index.html dans_FS.html \r\n Assurez vous de l'avoir téléversé à l'aide \r\n de l'outils LittleFS Data Upload \r\n";
MonServeurWeb.send(404, "text/plain; charset=utf-8", rep);
}
MonServeurWeb.streamFile(file_ID, "text/html");//Envoyer la page Web
// file_ID.close();
Serial.println("-----> index.html envoyée");
Serial.print("Etat du lecteur MP3 à cet instant : "); Serial.println(digitalRead(busy_pin));// pour voir le tout
}
void actualiser() { // là, j'interroge le DFPlayer, puis j'envoie les éléments à mettre à jour sur le site
//NomDisque =myDFPlayer.readFolderCounts();//Disque (répertoire) en cours de lecture (info du DFPlayer)
// delay(500);
// TitreMorceau = myDFPlayer.readCurrentFileNumber(); //morceau en cours de lecture (info du DFPlayer)
// delay(800);
int aleatoire = random(200); // tout simplement pour voir ce qui se passe, si le rafraichissement s'exécute bien...
Serial.println("-----> Actualiser");
MonServeurWeb.send(200, "text/html", State + " " + String(Volume) + " " + String(EQ) + " " + String(D) + " " + String(M) + " " + String(aleatoire));
}
void visualiser() {
MonServeurWeb.send(200, "text/html", Playlist);
}
void effacer_donnees() {
DataFileID = LittleFS.open(FichierPlaylist, "w");// ancien contenu effacé
DataFileID.print("");// on met tout à zéro !
if (!DataFileID) {
Serial.println("Erreur ouverture fichier " + FichierPlaylist);
return;
}
DataFileID.close();
aff_page_web();//Envoyer la page Web
}
void handledownload() {
if (etat_enregistrement) {
delay(10);
DataFileID.close();
Serial.println("-----> enregistrement Arrêté");
etat_enregistrement = false;
}
DataFileID = LittleFS.open(FichierPlaylist , "r");
if (DataFileID) {
Serial.println("-----> Téléchargement en cours");
MonServeurWeb.sendHeader("Content-Type", "text/text");
MonServeurWeb.sendHeader("Content-Disposition", "attachment; filename=" + FichierPlaylist );
MonServeurWeb.sendHeader("Connection", "close");
MonServeurWeb.streamFile(DataFileID, "application/octet-stream");
DataFileID.close();
} else {
Serial.println();
Serial.println("Fichier introuvable");
MonServeurWeb.send(204, "text/html", "Fichier introuvable");
}
}
void litPlaylist() {
DataFileID = LittleFS.open(FichierPlaylist, "r");
if (DataFileID) {
Serial.println("-------------------> Lecture playlist en cours");
Playlist = DataFileID.readString(); // on recupere le contenu entier du ficher
// =Playlist;
Serial.println(Playlist);
Serial.println("-------------------FIN du fichier de playlist--------------------------");
DataFileID.close();
Compteurplaylist++;
JouePlaylist(); // on lance le premier, les suivants seront gérés par la fonction Loop()
} else {
Serial.println();
Serial.println("Fichier introuvable");
MonServeurWeb.send(204, "text/html", "Fichier introuvable");
}
}
void JouePlaylist() {
Serial.println("------------------Voici la liste qu'il me reste à jouer------------------");
Serial.println(Playlist); // la PlayList encours est stockée dans cette variable, qui se consume au fur et à mesure de l'écoute des morceaux
Serial.println("-------------------FIN de la playlist actualisée, donc ce qu'il reste à jouer--------------------------");
int finListe = Playlist.lastIndexOf("@") + 1;
Serial.print("finListe vaut------");
Serial.println(finListe);
int deb = 0;
int finMorceau;
finMorceau = Playlist.indexOf("@", deb);
if (finMorceau <= finListe + 1)
{
EtatListe = true;
MonServeurWeb.send(200, "text/html", "Playliste en lecture...");
String aJouer = Playlist.substring(deb, finMorceau); //on extrait le prochain morceau..
Playlist = Playlist.substring(finMorceau + 1, finListe); //on supprime le morceau..
Serial.print("on joue donc maintenant ce morceau : ");
Serial.println(aJouer);
if (Playlist == "") EtatListe = false; //pour le dernier de la liste
deb = finMorceau + 3;
String tempD = aJouer.substring(0, 2); //je décompose par exemple 02*0050
D = (tempD).toInt();
String tempM = aJouer.substring(3, 7);
M = (tempM).toInt();
Serial.println("$$$$$$$$$$$$$$$$$$$$$$$$");
Serial.print("Ce qui donne tempD = "); Serial.println(tempD);
Serial.print("Ce qui donne tempM = "); Serial.println(tempM);
Serial.print("Ce qui donne D = "); Serial.println(D);
Serial.print("Ce qui donne M = "); Serial.println(M);
Serial.println("$$$$$$$$$$$$$$$$$$$$$$$$");
Serial.println("*************************************************");
char commande = 'P';
Serial.print("J'envoie un ordre de jouer le morceau ");
Serial.print(M);
Serial.print(" du dossier ");
Serial.print(D);
Serial.println(" au lecteur !");
Serial.println(" ");
Serial.println("Ordre envoyé !");
envoyerCommandeDFP(commande, D, M);
delay(520);
Serial.println("Il reste 1 ou des morceaux à jouer...");
// EtatLecture == false;
// EtatPrecedent == false;
}
else
{
EtatListe = false; // plus rien à lire
Serial.println("Fini, plus rien à lire...");
}
// aff_page_web();//Envoyer la page Web
//Serial.print("Etat du lecteur MP3 à cet instant pécis : "); Serial.println(digitalRead(busy_pin));// pour voir le tout
Serial.println("Fin boucle de lecture...");// pour voir le tout
delay(20);
}
// quelques fonctions pour le lecteur MP3
void printHelp() {
Serial.println("DFPlayer Commandes:");
Serial.println(" h - help");
Serial.println(" Y - next ");
Serial.println(" X - previous");
Serial.println(" p3 - play");
Serial.println(" p3,5 - play folder 3, file 5");
Serial.println(" P3,5 - play large folder 3, file 5");
Serial.println(" P3 - play file 3 in MP3 folder");
Serial.println(" + - volume up");
Serial.println(" - - volume down");
Serial.println(" v10 - set volume to 10");
Serial.println(" b - Pause");
Serial.println(" s - start ");
Serial.println(" z - sleep ");
Serial.println(" L - enable loop all");
Serial.println(" l - disable loop all");
Serial.println(" L3 - loop folder 3");
Serial.println(" l3 - loop file 3");
Serial.println(" A3 - advertise file 3");
Serial.println(" a - stop advertise ");
Serial.println(" r - tout en aléatoire ");
Serial.println(" qx - query No. x");
Serial.println(" x = 1 - read state");
Serial.println(" x = 2 - read volume");
Serial.println(" x = 3 - read equalizer");
Serial.println(" x = 4 - read file counts");
Serial.println(" x = 5 - read current file number");
Serial.println(" x = 6 - read file counts in folder");
Serial.println(" x = 7 - read folder counts uniquement dans le dossier N°2 (test...)");
Serial.println(" x = 8 - read folder counts avec choix de dossier comme deuxième paramètre");
Serial.println(" y - choix de l'équalizeur ");
Serial.println(" y = 1 : Normal");
Serial.println(" y = 2 : Pop");
Serial.println(" y = 3 : Rock");
Serial.println(" y = 4 : Jazz");
Serial.println(" y = 5 : Classique");
Serial.println(" y = 6 : Basses");
}
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 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;
}
}
void Ajouter_A_Playlist()
{
DataFileID = LittleFS.open(FichierPlaylist, "a+");// on écrit à la fin
if (!DataFileID) {
Serial.println("Erreur ouverture fichier " + FichierPlaylist);
//aff_page_web();//Envoyer la page Web
return;
}
String chaine = "";
String Disque = "";
String Titre = "";
String message = "Ce que je reçois : \n\n";
for (uint8_t i = 0; i < MonServeurWeb.args(); i++)
{ chaine = "";
message += " " + MonServeurWeb.argName(i) + ": " + MonServeurWeb.arg(i) + "\n";
Disque = MonServeurWeb.argName(i);
Disque = Disque.substring(2, 4);
Titre = MonServeurWeb.arg(i);
message += Disque + "****" + Titre;
// jison+="{\"D\": " + Disque + ", \"T\": " + Titre + "}";
chaine = Disque + "*" + Titre + "@";
DataFileID.println(chaine);
}// titre suivant...
Serial.println(message);// pour voir le tout
Serial.println("Enregistrement fait !"); //
DataFileID.close(); // fin de séance !
aff_page_web();//Envoyer la page Web
} // fin de Ajouter_A_Playlist()
void setup() {
// Serial.begin(115200); // Start the Serial communication to send messages to the computer
Serial.begin(9600);
delay(10);
pinMode(led_pin, OUTPUT);
pinMode(sensor_pin, INPUT);
pinMode(busy_pin, INPUT); // pour surveiller l'état du lecteur, à raccorder à la pin 16 du DFPlayer
while (!Serial);
Serial.println("\r\n\r\n============================================================\r\n");
Serial.println('\n');
wifiMulti.addAP("Livebox-Pierre et Sophie", "*************"); // add Wi-Fi networks you want to connect to
wifiMulti.addAP("LIVEBOX-Pierre-Ext", "***********");
wifiMulti.addAP("ssid_from_AP_3", "your_password_for_AP_3");
Serial.println("Connecting ...");
int i = 0;
while (wifiMulti.run() != WL_CONNECTED) { // Wait for the Wi-Fi to connect
delay(250);
Serial.print('.');
}
Serial.println('\n');
Serial.print("Connected to ");
Serial.println(WiFi.SSID()); // Tell us what network we're connected to
Serial.print("IP address:\t");
Serial.println(WiFi.localIP()); // Send the IP address of the ESP8266 to the computer
if (MDNS.begin("esp8266")) { // Start the mDNS responder for esp8266.local
Serial.println("mDNS responder started");
} else {
Serial.println("Error setting up MDNS responder!");
}
// file System
bool success = LittleFS.begin();
if (!success) {
Serial.println("Error mounting the file system");
return;
}
Serial.println("Système de fichier fonctionne !");
MonServeurWeb.onNotFound([]() { // If the client requests any URI
if (!handleFileRead(MonServeurWeb.uri())) // send it if it exists
MonServeurWeb.send(404, "text/plain", "Fichier pas trouvé..."); // otherwise, respond with a 404 (Not Found) error
});
MonServeurWeb.begin(); // Actually start the server
Serial.println("HTTP server started");
//=========================== Dire au serveur ce qu'il a à faire ===============
MonServeurWeb.on("/", aff_page_web); // requête / => appel fonction aff_page_web
MonServeurWeb.on("/JOUER_PLAYLIST", litPlaylist);
MonServeurWeb.on("/DOWNLOAD", handledownload);
MonServeurWeb.on("/EFFACER", effacer_donnees);
MonServeurWeb.on("/ACTUALISER", actualiser);// le remplissage via Ajax
MonServeurWeb.on("/VISUALISER", visualiser);// le remplissage via Ajax
//=========================== Démarrer le serveur ============================
// MonServeurWeb.begin(); //Start server
Serial.println("Serveur HTTP démarré");
Serial.println("==========================================================");
// démarrer le client NTP
Serial.println("Serveur NTP démarré");
Serial.println("==========================================================");
Serial.println("-----> Afficher page WEB");
mySoftwareSerial.begin(9600);//je lance avant le chargement de la page, ça lui donne un peu de temps pour initialiser
aff_page_web();//Envoyer la page Web
// passons au lecteur MP3
// mySoftwareSerial.begin(9600);
// Serial.begin(9600);
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);
}
Serial.println(F("DFPlayer Mini online."));
printHelp();
myDFPlayer.setTimeOut(500); //Set serial communication time out 500ms
//----Set volume----
myDFPlayer.volume(15); //Set volume value (0~30).
Volume = 15;
//----Set different EQ----
myDFPlayer.EQ(DFPLAYER_EQ_NORMAL);
EQ = 1;
//----Set device we use SD as default----
myDFPlayer.outputDevice(DFPLAYER_DEVICE_SD);
} // fin de setup()
void traiter_commande()
{
String Commande = "";
String textURL = "";
textURL = MonServeurWeb.uri();
if (textURL.startsWith("/ENVOYER_COMMANDE")) {
String message = "Ce que je reçois : \n\n";
Serial.println("Voici ce que je dois décoder, pour envoyer au DFPlayer ///");
Serial.println(textURL);
Serial.println("-------------------FIN de la commande -------------------------");
int deb = textURL.indexOf("*", deb) + 1;
int milieu = textURL.indexOf("*", deb + 1) + 1;
int finOrdre = textURL.indexOf("@", deb);
String Ordre = textURL.substring(deb, finOrdre); //on extrait la commande..
Serial.print("Ordre vaut : "); Serial.println(Ordre);
milieu = Ordre.indexOf("*", 0);
String Cmde = Ordre.substring(0, milieu); //je décompose par exemple ENVOYER_COMMANDE*y*3@
String val1 = Ordre.substring(milieu + 1, finOrdre);
// int D=(Cmde).toInt();
int valu1 = (val1).toInt();
Serial.print("Ce qui donne Cmde = "); Serial.println(Cmde);
Serial.print("Ce qui donne val1 = "); Serial.println(val1);
Serial.println("*************************************************");
char commande[10];
Cmde.toCharArray(commande, 2);
envoyerCommandeDFP(commande[0], valu1, 0); // le 0 servira à l'envoi des morceaux choisis
}
MonServeurWeb.send(204, "text/html", "Ordre bien reçu, en cours de traitement...");
}
void jouer_playlist_actuelle()
{
String textURL = "";
textURL = MonServeurWeb.uri();
if (textURL.startsWith("/JOUER_PLACTUELLE")) {
String message = "Ce que je reçois : \n\n";
Playlist = textURL.substring(17, textURL.length()); //on extrait la commande, en enlevant /JOUER_PLACTUELLE
//Playlist=textURL;
Serial.print("La liste aléatoire à jouer = "); Serial.println(Playlist);
Serial.println("*************************************************");
JouePlaylist(); // on lance le premier, les suivants seront gérés par la fonction Loop()
aff_page_web();//Envoyer la page Web
}
}
void jouer_playlist_aleatoire()
{
String textURL = "";
textURL = MonServeurWeb.uri();
if (textURL.startsWith("/JOUER_ALEATOIRE")) {
String message = "Ce que je reçois : \n\n";
Playlist = textURL.substring(16, textURL.length()); //on extrait la commande, en enlevant /JOUER_ALEATOIRE
//Playlist=textURL;
Serial.print("La liste aléatoire à jouer = "); Serial.println(Playlist);
Serial.println("*************************************************");
JouePlaylist(); // on lance le premier, les suivants seront gérés par la fonction Loop()
aff_page_web();//Envoyer la page Web
}
}
void enregistrer_playlist()
{
DataFileID = LittleFS.open(FichierPlaylist, "w");// on crée ou écrase l'ancien...
if (!DataFileID) {
Serial.println("Erreur ouverture fichier " + FichierPlaylist);
return;
}
String textURL = "";
textURL = MonServeurWeb.uri();
if (textURL.startsWith("/ENREGISTRER_PLAYLIST")) {
String message = "Ce que je reçois : \n\n";
String texte = textURL.substring(21, textURL.length()); //on extrait la commande, en enlevant /ENREGISTRER_PLAYLIST
Serial.println("Voici ce que je dois enregistrer...//");
Serial.println(texte);
Serial.println("-------------------FIN de la commande -------------------------");
DataFileID.print(texte);// on sauvegarde cette playlist
DataFileID.close(); // fin de séance !
aff_page_web();//Envoyer la page Web
}
}// fin de l'enregistrement
//==============================================================
// LOOP
//==============================================================
void loop(void)
{
MonServeurWeb.handleClient(); // gérer les requêtes des clients
if (digitalRead(busy_pin) == HIGH) // High : à l'arrêt, LOW, en lecture // le DFP est-il en lecture ? //stop calling this function in IDLE loop
{
EtatLecture = false;
State = "Arrêt";
}
else {
EtatLecture = true;
State = "Lecture";
}
Serial.println(digitalRead(EtatLecture));
if ((EtatLecture == false) && (EtatPrecedent = ! EtatLecture)) {
// test du 11 septembre
// MonServeurWeb.send(404, "text/plain; charset=utf-8", "au suivant !");
// fin test 11 septembre
if (EtatListe == true) { // il reste un morceau à jouer
Serial.println("Ordre est donné de jouer le suivant...");
Compteurplaylist++;
JouePlaylist();
}
}
// Serial.println(EtatLecture);// pour voir le tout
// Serial.println(digitalRead(busy_pin));// pour voir le tout
EtatPrecedent = EtatLecture;
}
String getContentType(String filename) {
if (filename.endsWith(".htm")) return "text/html";
else if (filename.endsWith(".html")) return "text/html";
else if (filename.endsWith(".css")) return "text/css";
else if (filename.endsWith(".js")) return "application/javascript";
else if (filename.endsWith(".png")) return "image/png";
else if (filename.endsWith(".gif")) return "image/gif";
else if (filename.endsWith(".jpg")) return "image/jpeg";
else if (filename.endsWith(".ico")) return "image/x-icon";
else if (filename.endsWith(".xml")) return "text/xml";
else if (filename.endsWith(".pdf")) return "application/x-pdf";
else if (filename.endsWith(".zip")) return "application/x-zip";
else if (filename.endsWith(".gz")) return "application/x-gzip";
return "text/plain";
} // fin de getContentType
bool handleFileRead(String path) { // send the right file to the client (if it exists)
// Serial.println("Chemin du handleFileRead: " + path);
if (path.endsWith("/")) path += "index.html"; // Pour stocker la page dans la mémoire disponible de l'ESP, ça en consomme moins en mémoire vive...
String contentType = getContentType(path); // Get the MIME type
if (LittleFS.exists(path))
{ // If the file exists
File file = LittleFS.open(path, "r"); // Open it
size_t sent = MonServeurWeb.streamFile(file, contentType); // And send it to the client
file.close(); // Then close the file again
return true;
}
if (path.startsWith("/playlist")) {
Ajouter_A_Playlist();
return true;
}
// ci-dessous modif du 2 juin
if (path.startsWith("/ENVOYER_COMMANDE")) {
traiter_commande();
return true;
}
// ci-dessous modif du 30 août
if (path.startsWith("/ENREGISTRER_PLAYLIST")) {
enregistrer_playlist();
return true;
}
// ci-dessous modif du 11 septembre
if (path.startsWith("/JOUER_ALEATOIRE")) {
jouer_playlist_aleatoire();
return true;
}
// ci-dessous modif du 11 septembre
if (path.startsWith("/JOUER_PLACTUELLE")) {
jouer_playlist_actuelle();
return true;
}
Serial.println("\tFile Not Found");
return false; // If the file doesn't exist, return false
}
void envoyerCommandeDFP(char cmd, int val1, int val2) {
int value1, value2 = 0;
value1 = val1;
value2 = val2;
Serial.println("");
Serial.println("----------------Ici la salle des machines ! ----------------");
Serial.print("La commande reçue est : "); Serial.println(cmd);
Serial.print("Avec value1 = "); Serial.print(value1); Serial.print(" et avec value2 = "); Serial.println(value2);
switch (cmd) {
case 'h':
printHelp();
break;
case 'Y':
JouePlaylist();
// myDFPlayer.next();
break;
case 'X':
myDFPlayer.previous();
break;
case 'p':
if (value2 == 0) myDFPlayer.play(value1);
else if (value1 != 0) myDFPlayer.playFolder(value1, value2);
break;
case 'P':
if (value2 == 0) myDFPlayer.playMp3Folder(value1);
else if (value1 != 0)myDFPlayer.playLargeFolder(value1, value2);
break;
case '+':
myDFPlayer.volumeUp();
Volume = Volume + 1;
break;
case '-':
myDFPlayer.volumeDown();
Volume = Volume - 1;
break;
case 'v':
myDFPlayer.volume(value1);
Volume = value1;
break;
case 'b':
myDFPlayer.pause();
break;
case 's':
myDFPlayer.start();
break;
case 'z':
myDFPlayer.sleep();
break;
case 'w':
myDFPlayer.reset();
break;
case 'L':
if (value1 == 0) myDFPlayer.enableLoopAll();
else myDFPlayer.loopFolder(value1);
break;
case 'l':
if (value1 == 0) myDFPlayer.disableLoopAll();
else myDFPlayer.loop(value1);
break;
case 'A':
myDFPlayer.advertise(value1);
break;
case 'a':
myDFPlayer.stopAdvertise();
break;
case 'r':
myDFPlayer.randomAll(); //joue toutes les pistes aléatoirement.
break;
case 'q':
if (value1 == 1) Serial.println(myDFPlayer.readState());
else if (value1 == 2) {
Serial.println(myDFPlayer.readVolume());
delay(800);
}
else if (value1 == 3) Serial.println(myDFPlayer.readEQ());
else if (value1 == 4) Serial.println(myDFPlayer.readFileCounts());
else if (value1 == 5) {
Serial.println(myDFPlayer.readFolderCounts());
//TitreMorceau; //morceau en cours de lecture (info du DFPlayer)
}
else if (value1 == 6) Serial.println(myDFPlayer.readCurrentFileNumber());
else if (value1 == 7) Serial.println(myDFPlayer.readFileCountsInFolder(2));
else if (value1 == 8) {
Serial.print(myDFPlayer.readFileCountsInFolder(value2));
Serial.print("morceaux avec le dossier numéro ");
Serial.println(value2);
}
break;
case'y':
if (value1 == 1) {
myDFPlayer.EQ(DFPLAYER_EQ_NORMAL);
Serial.println("Equalizeur : réglage Normal");
EQ = 1;
}
else if (value1 == 2) {
myDFPlayer.EQ(DFPLAYER_EQ_POP);
Serial.println("Equalizeur : réglage Pop");
EQ = 2;
}
else if (value1 == 3) {
myDFPlayer.EQ(DFPLAYER_EQ_ROCK);
Serial.println("Equalizeur : réglage Rock");
EQ = 3;
}
else if (value1 == 4) {
myDFPlayer.EQ(DFPLAYER_EQ_JAZZ);
Serial.println("Equalizeur : réglage Jazz");
EQ = 4;
}
else if (value1 == 5) {
myDFPlayer.EQ(DFPLAYER_EQ_CLASSIC);
Serial.println("Equalizeur : réglage Classique");
EQ = 5;
}
else if (value1 == 6) {
myDFPlayer.EQ(DFPLAYER_EQ_BASS);
Serial.println("Equalizeur : réglage Basses");
EQ = 6;
}
break;
default:
Serial.println("Pas compris la commande...");
break;
}
Serial.println("----------------On sort de la salle des machines ----------------");
return ;
}
C'est tout
J'espère que ce projet trouvera un écho favorable parmi les internautes. Si vous voulez me contacter, voici mon email (à retaper, pour éviter la collecte automatique d'emails...)

© Copyright Pierre Saunière.Tous droits réservés. Site réalisé par moi-même, avec l'aide de quelques bibliothèques Open Source, of course !