4. Reproductor de Música en la Nube

El objetivo de este proyecto es crear un reproductor de música usando Blynk. La música se reproduce de la misma manera que en 5.7 Tone() o noTone(), escribiendo la canción en el programa y reproduciéndola con un zumbador pasivo. Sin embargo, en este ejemplo, podemos hacer clic en el interruptor para reproducir/pausar y deslizar el deslizador para cambiar el progreso de reproducción.

Componentes Necesarios

Para este proyecto, necesitamos los siguientes componentes.

Es definitivamente conveniente comprar un kit completo, aquí tienes el enlace:

Nombre

ELEMENTOS DE ESTE KIT

ENLACE

3 in 1 Starter Kit

380+

3 in 1 Starter Kit

También puedes comprarlos por separado en los siguientes enlaces.

INTRODUCCIÓN DEL COMPONENTE

ENLACE DE COMPRA

Placa SunFounder R3

BUY

Protoboard

BUY

Módulo ESP8266

BUY

Cables Puente

BUY

Buzzer

BUY

1. Construir el Circuito

Nota

El módulo ESP8266 requiere una alta corriente para proporcionar un entorno operativo estable, así que asegúrate de que la batería de 9V esté conectada.

../_images/wiring_buzzer.jpg

2. Editar el Tablero de Mandos

  1. Crea un Datastream de tipo Virtual Pin en la página Datastream como el valor modificado por el widget deslizador añadido más tarde o por código. Establece el TIPO DE DATOS en Integer y MIN y MAX en 0 y 30.

    ../_images/sp220610_104330.png
  2. También crea otro Datastream de tipo Virtual Pin para mostrar el nombre de la música, y establece el TIPO DE DATOS en String.

    ../_images/sp220610_105932.png
  3. Ve a la página Wed Dashboard, arrastra un widget Switch y establece Datastream en V0 (V0 ya está configurado en 2. Obtener Datos de Blynk); arrastra un widget Label y configúralo en V3; arrastra un widget Slider y configúralo en V2.

    ../_images/sp220610_110105.png

Nota

Tus pines virtuales pueden ser diferentes a los míos, los tuyos prevalecerán, pero necesitarás modificar el número de pin correspondiente en el código.

3. Ejecutar el Código

  1. Abre el archivo 4.cloud_music_player.ino en la ruta 3in1-kit\iot_project\4.cloud_music_player.

  2. Reemplaza el Template ID, Device Name y Auth Token con los tuyos. También necesitas introducir el ssid y password del WiFi que estás utilizando. Para tutoriales detallados, consulta 1.4 Conectando la placa R3 a Blynk.

  3. Después de seleccionar la placa y puerto correctos, haz clic en el botón Upoad.

  4. Abre el monitor serial(configura la tasa de baudios a 115200) y espera a que aparezca un aviso como una conexión exitosa.

    ../_images/2_ready.png

    Nota

    Si aparece el mensaje ESP is not responding al conectar, sigue estos pasos.

    • Asegúrate de que la batería de 9V esté conectada.

    • Reinicia el módulo ESP8266 conectando el pin RST a GND durante 1 segundo, luego desconéctalo.

    • Presiona el botón de reinicio en la placa R3.

    A veces, puede ser necesario repetir la operación anterior 3-5 veces, por favor sé paciente.

  5. Ahora, puedes usar el widget de Control de Botón de Blynk para iniciar/pausar la música y el Deslizador para ajustar el progreso de reproducción, y también verás el nombre de la música.

    ../_images/sp220610_110105.png
  6. Si quieres usar Blynk en dispositivos móviles, consulta ¿Cómo usar Blynk en dispositivos móviles?.

¿Cómo funciona?

El datastream V0 se utiliza para obtener el estado del widget Interruptor y asignarlo a la variable musicPlayFlag, que controla la pausa y reproducción de la música.

int musicPlayFlag=0;

BLYNK_WRITE(V0)
{
    musicPlayFlag = param.asInt(); // START/PAUSE MUSIC
}

El datastream V2 se utiliza para obtener el valor del widget deslizador y asignarlo a la variable scrubBar cuando se mueve el deslizador.

int scrubBar=0;

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

Cuando el dispositivo está conectado al Blynk Cloud, escribe el nombre de la música para el datastream V3 y luego muéstralo con el widget Label.

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

El Blynk Timer se ejecutará cada segundo. La música se reproduce si musicPlayFlag no es 0, es decir, si el widget Switch está activado. Tan pronto como se toquen dos notas, la variable de la barra de progreso scrubBar se incrementa en 2, y el valor se escribe luego en el Blynk Cloud, lo que sincroniza el valor 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);
    }
}