Nota

Ciao, benvenuto nella SunFounder Raspberry Pi & Arduino & ESP32 Enthusiasts Community su Facebook! Approfondisci Raspberry Pi, Arduino ed ESP32 con altri appassionati.

Perché unirti a noi?

  • Supporto esperto: Risolvi i problemi post-vendita e le sfide tecniche con l’aiuto della nostra comunità e del nostro team.

  • Impara e condividi: Scambia suggerimenti e tutorial per migliorare le tue competenze.

  • Anteprime esclusive: Ottieni accesso anticipato agli annunci di nuovi prodotti e anteprime.

  • Sconti esclusivi: Approfitta di sconti esclusivi sui nostri prodotti più recenti.

  • Promozioni festive e giveaway: Partecipa a promozioni e giveaway durante le festività.

👉 Sei pronto a esplorare e creare con noi? Clicca su [Qui] e unisciti oggi!

4. Cloud Music Player

L’obiettivo di questo progetto è creare un lettore musicale utilizzando Blynk. La musica viene riprodotta allo stesso modo del progetto 5.7 Tone() o noTone(), scrivendo la canzone nel programma e riproducendola tramite un buzzer passivo. Tuttavia, in questo esempio possiamo cliccare su un interruttore per riprodurre/pausare e far scorrere un cursore per modificare l’avanzamento della riproduzione.

Componenti necessari

In questo progetto, avremo bisogno dei seguenti componenti.

È decisamente comodo acquistare un kit completo, ecco il link:

Nome

OGGETTI NEL KIT

LINK

Kit 3 in 1 Starter

380+

3 in 1 Starter Kit

Puoi anche acquistarli separatamente dai link seguenti.

INTRODUZIONE COMPONENTI

LINK DI ACQUISTO

Scheda SunFounder R3

ACQUISTA

Breadboard

ACQUISTA

Modulo ESP8266

ACQUISTA

Cavi di Collegamento

ACQUISTA

Cicalino

ACQUISTA

1. Costruisci il circuito

Nota

Il modulo ESP8266 richiede un’elevata corrente per garantire un ambiente di funzionamento stabile, quindi assicurati che la batteria da 9V sia collegata.

../_images/wiring_buzzer.jpg

2. Modifica il Dashboard

  1. Crea un Datastream di tipo Virtual Pin sulla pagina Datastream come il valore modificato dal widget Slider aggiunto successivamente o dal codice. Imposta il DATA TYPE su Integer e MIN e MAX su 0 e 30.

    ../_images/sp220610_104330.png
  2. Crea anche un altro Datastream di tipo Virtual Pin per visualizzare il nome della canzone, e imposta il DATA TYPE su String.

    ../_images/sp220610_105932.png
  3. Vai alla pagina Wed Dashboard, trascina un widget Switch e imposta Datastream su V0 (V0 è già impostato in 2. Ottenere dati da Blynk); trascina un widget Label e impostalo su V3; trascina un widget Slider e impostalo su V2.

    ../_images/blynk_music_cloud.png

Nota

I tuoi Virtual Pin potrebbero essere diversi dai miei, dovrai quindi modificarli nel codice in base ai tuoi.

3. Esegui il codice

  1. Apri il file 4.cloud_music_player.ino nel percorso 3in1-kit\iot_project\4.cloud_music_player.

  2. Sostituisci il Template ID, Device Name, e Auth Token con i tuoi. Devi anche inserire il ssid e la password del WiFi che stai utilizzando. Per tutorial dettagliati, fai riferimento a 1.3 Collegare la scheda R3 a Blynk.

  3. Dopo aver selezionato la scheda e la porta corrette, clicca sul pulsante Upload.

  4. Apri il Monitor seriale (imposta il baudrate su 115200) e attendi che appaia un messaggio che confermi la connessione avvenuta con successo.

    ../_images/2_ready.png

    Nota

    Se appare il messaggio ESP is not responding quando ti connetti, segui questi passaggi.

    • Assicurati che la batteria da 9V sia collegata.

    • Resetta il modulo ESP8266 collegando il pin RST a GND per 1 secondo, quindi scollegalo.

    • Premi il pulsante di reset sulla scheda R3.

    A volte, potrebbe essere necessario ripetere l’operazione sopra 3-5 volte, abbi pazienza.

  5. Ora puoi usare il widget Switch di Blynk per avviare/pausare la musica e lo Slider per regolare l’avanzamento della riproduzione. Vedrai anche il nome della musica.

    ../_images/blynk_music_cloud.png
  6. Se desideri usare Blynk sui dispositivi mobili, fai riferimento a Come usare Blynk su dispositivi mobili?.

Come funziona?

Il datastream V0 viene utilizzato per ottenere lo stato del widget Switch e assegnarlo alla variabile musicPlayFlag, che controlla la pausa e la riproduzione della musica.

int musicPlayFlag=0;

BLYNK_WRITE(V0)
{
    musicPlayFlag = param.asInt(); // AVVIO/PAUSA MUSICA
}

Il datastream V2 viene utilizzato per ottenere il valore del widget Slider e assegnarlo alla variabile scrubBar quando il cursore viene mosso.

int scrubBar=0;

BLYNK_WRITE(V2)
{
    scrubBar=param.asInt();
}

Quando il dispositivo è connesso al Blynk Cloud, viene scritto il nome della canzone per il datastream V3 e poi visualizzato tramite il widget Label.

BLYNK_CONNECTED() {
    String songName = "Ode to Joy";
    Blynk.virtualWrite(V3, songName);
}

Il Blynk Timer si esegue ogni secondo. La musica viene riprodotta se musicPlayFlag è diverso da 0, ovvero se il widget Switch è acceso. Appena vengono riprodotte due note, la variabile della barra di avanzamento scrubBar viene incrementata di 2, e il valore viene scritto sul Blynk Cloud, che sincronizza il valore del 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);
    }
}