4. Lecteur de Musique Cloud¶
L’objectif de ce projet est de créer un lecteur de musique en utilisant Blynk. La musique est jouée de la même manière que dans 5.7 Tone() ou noTone(), en écrivant la chanson dans le programme et en la jouant avec un buzzer passif. Cependant, dans cet exemple, nous pouvons cliquer sur l’interrupteur pour jouer/mettre en pause et faire glisser le curseur pour changer le progrès de la lecture.
Composants Requis
Pour ce projet, nous avons besoin des composants suivants.
Il est certainement pratique d’acheter un kit complet, voici le lien :
Nom |
ÉLÉMENTS DANS CE KIT |
LIEN |
---|---|---|
3 in 1 Starter Kit |
380+ |
Vous pouvez également les acheter séparément via les liens ci-dessous.
INTRODUCTION DES COMPOSANTS |
LIEN D’ACHAT |
---|---|
1. Construire le Circuit
Note
Le module ESP8266 nécessite un courant élevé pour fournir un environnement de fonctionnement stable, donc assurez-vous que la batterie 9V est branchée.
2. Éditer le Tableau de Bord
Créez un Datastream de type Virtual Pin sur la page Datastream comme la valeur modifiée par le widget Curseur ajouté plus tard ou le code. Réglez le TYPE DE DONNÉES sur Integer et MIN et MAX sur 0 et 30.
Créez également un autre Datastream de type Virtual Pin pour afficher le nom de la musique, et réglez le TYPE DE DONNÉES sur
String
.Allez sur la page Wed Dashboard, faites glisser un widget Switch et réglez Datastream sur V0 (V0 est déjà réglé dans 2. Obtenir des Données depuis Blynk); faites glisser un widget Label et réglez-le sur V3; faites glisser un widget Slider et réglez-le sur V2.
Note
Vos pins virtuels peuvent être différents des miens, les vôtres prévaudront, mais vous devrez modifier le numéro de pin correspondant dans le code.
3. Exécutez le Code
Ouvrez le fichier
4.cloud_music_player.ino
situé dans le dossier3in1-kit\iot_project\4.cloud_music_player
.Remplacez le
Template ID
,Device Name
etAuth Token
par les vôtres. Vous devez également entrer lessid
et lepassword
du WiFi que vous utilisez. Pour des tutoriels détaillés, veuillez vous référer à 1.4 Connexion de la carte R3 à Blynk.Après avoir sélectionné la bonne carte et le bon port, cliquez sur le bouton Upoad.
Ouvrez le moniteur série (réglez le débit en bauds sur 115200) et attendez qu’un message tel qu’une connexion réussie apparaisse.
Note
Si le message
ESP is not responding
apparaît lorsque vous vous connectez, veuillez suivre ces étapes.Assurez-vous que la batterie 9V est branchée.
Réinitialisez le module ESP8266 en connectant la broche RST à GND pendant 1 seconde, puis débranchez-la.
Appuyez sur le bouton de réinitialisation de la carte R3.
Parfois, il peut être nécessaire de répéter l’opération ci-dessus 3 à 5 fois, veuillez être patient.
Maintenant, vous pouvez utiliser le widget Bouton de Contrôle de Blynk pour démarrer/mettre en pause la musique et le Curseur pour ajuster le progrès de la lecture, et vous verrez également le nom de la musique.
Si vous souhaitez utiliser Blynk sur des appareils mobiles, veuillez vous référer à Comment utiliser Blynk sur un appareil mobile ?.
Comment ça fonctionne ?
Le datastream V0 est utilisé pour obtenir l’état du widget Interrupteur et l’assigner à la variable musicPlayFlag, qui contrôle la pause et la lecture de la musique.
int musicPlayFlag=0;
BLYNK_WRITE(V0)
{
musicPlayFlag = param.asInt(); // START/PAUSE MUSIC
}
Le datastream V2 est utilisé pour obtenir la valeur du widget Curseur et l’assigner à la variable scrubBar lorsque le curseur est déplacé.
int scrubBar=0;
BLYNK_WRITE(V2)
{
scrubBar=param.asInt();
}
Lorsque le dispositif est connecté au Blynk Cloud, écrivez le nom de la musique pour le datastream V3 puis affichez-le avec le widget Label.
BLYNK_CONNECTED() {
String songName = "Ode to Joy";
Blynk.virtualWrite(V3, songName);
}
Blynk Timer s’exécutera toutes les secondes. La musique est jouée si musicPlayFlag n’est pas 0, c’est-à-dire que le widget Switch est ON.
Dès que deux notes sont jouées, la variable de la barre de progression scrubBar
est incrémentée de 2, et la valeur est ensuite écrite dans le Blynk Cloud, ce qui synchronise la valeur du widget Slider.
void myTimerEvent()
{
if(musicPlayFlag!=0)
{
tone(buzzerPin,melody[scrubBar],250);
scrubBar=(scrubBar+1)%(sizeof(melody)/sizeof(int));
delay(500);
tone(buzzerPin,melody[scrubBar],250);
scrubBar=(scrubBar+1)%(sizeof(melody)/sizeof(int));
Serial.println(scrubBar);
Blynk.virtualWrite(V2, scrubBar);
}
}