Reproductor de MP3 DIY con ESP32 - Reproductor de audio

Reproductor de MP3 DIY con ESP32 - Reproductor de audio

27 de noviembre de 2020

DIY-An-MP3-Player-On-ESP32-1
En este proyecto, aprenderemos a construir un reproductor de MP3 DIY con ESP32, utilizando el módulo ESP32 Audio, podemos hacer un reproductor de MP3 con radio web adicional y función de reloj despertador.

ESP32 se puede utilizar como un sistema independiente para ejecutar aplicaciones, simplemente conecte el cable, encienda el dispositivo y programe. Con la descarga de diferentes programas, el reproductor puede realizar la función de reproducción de música de la tarjeta SD, función de radio por Internet, y la función de reloj despertador de música.
 
¡Ahora, empecemos!

1. Suministros:

1.1 Hardware:

1.2 Software:

  • Arduino IDE
  • Descargue música (.mp3 o .wav) en la tarjeta SD.

2. Conexión de hardware

Cómo conectar el hardwareDIY-ESP32-MP3-Player
Conecte dos placas según los pines. elVCC está conectado a 3v3.

3. Entorno de programación

3.1 Esp32 Soporte

Siga las instrucciones de instalación para agregar compatibilidad con ESP32 si aún no lo está haciendo:https://github.com/espressif/arduino-esp32

3.2 Instalar biblioteca

  • Adafruit SSD1306 y bibliotecas dependientes.
  • ESP32-audioI2S.
Puede obtener el archivo zip desde Github:https://github.com/Makerfabs/Project_MakePython_Audio_Music
 
Descomprima este archivo. Abra su IDE de Arduino y vaya aSketch > Incluir biblioteca > Administrar bibliotecas > Agregar . Biblioteca ZIP.
 
A continuación, abra la carpeta: "•Project_MakePython_Audio_Music-old-src-esp32_mp3-ESP32-audioI2S". Y verá un mensaje que la biblioteca instaló correctamente.

4. Acerca del código

4.1 Reproducción de audio

  • Abra el archivo "/Project_MakePython_Audio_Music/music_player.ino". Puede obtener el código de Github:https://github.com/Makerfabs/Project_MakePython_Audio_Music
  • Aviso: MicroPython Audio se puede descargar sin desenchufar. Al cargar el programa, gire el interruptor junto a la interfaz de audio de 3,5 mm a la toma de audio para descargarlo con éxito.
  • Modifique o añada texto en la pantalla.
void lcd_text(Texto de cadena)
  • Cambie el volumen inicial:
audio.setPinout(I2S_BCLK, I2S_LRC, I2S_DOUT);
audio.setVolume(14); 0...21
  • Cambiar canciones:
if (digitalRead(Pin_next) á 0)
        {
            Serial.println("Pin_next");
            si (file_index < file_num - 1)
                file_index++;
            else
                file_index = 0;
            open_new_song(file_list[file_index]);
            print_song_time();
            button_time = millis();
        }
        if (digitalRead(Pin_previous) == 0)
        {
            Serial.println("Pin_previous");
            if (file_index > 0)
                file_index--;
            Más
                file_index á file_num - 1;
            open_new_song(file_list[file_index]);
            print_song_time();
            button_time a mililis();
        }
  • Cargue el código.

4.2 Radio Web

const char *ssid á "Makerfabs";
const char *password á "20160704";
  • Agregue, elimine o modifique la dirección de radio en el siguiente código:
Estaciones de cuerdas[] ?
       "0n-80s.radionetz.de:8000/0n-70s.mp3",
       "mediaserv30.live-streams.nl:8000/stream",
       "www.surfmusic.de/m3u/100-5-das-hitradio,4529.m3u",
       "stream.1a-webradio.de/deutsch/mp3-128/vtuner-1a",
       "mp3.ffh.de/radioffh/hqlivestream.aac", // 128k aac
       "www.antenne.de/webradio/antenne.m3u",
       "listen.rusongs.ru/ru-mp3-128",
       "edge.audio.3qsdn.com/senderkw-mp3",
           "macslons-irish-pub-radio.com/media.asx";
  • Conéctese a la estación de radio web:
void open_new_radio(String station)
{
audio.connecttohost (estación);

4.3 Reloj de alarma

const char *ntpServer á "120.25.108.11";
const long gmtOffset_sec 8 * 60 * 60; China+8 
const int daylightOffset_sec 0; 
String clock_time á "17:39:00"; 
String clock_time2 á "17:42:00";
  • Init y obtener la hora, y el "gmtOffset" se utiliza para establecer la zona horaria.
init y obtener el tiempo
configTime(gmtOffset_sec, daylightOffset_sec, ntpServer);
Serial.println(F("Alread get npt time."));
  • Modifique la música del despertador:
void loop()
{
    printLocalTime();
    audio.loop();
    if (millis() - button_time > 600)
    {
        si (alarm_flag 0)
        {
            if (showtime() !-0)
            {
                open_new_song("reloj.wav");
                alarm_flag 1;
                display.setCursor(0, 24);
                display.println("ALARM!!!!!");
                display.display();
                retraso(1000);
                button_time a mililis();
            }
        }

5.3D Caja impresa

DIY-ESP32-MP3-Player-with-3D-Printed-Case


El caso se puede obtener de:https://www.makerfabs.com/esp32-audio-fixture-kit.html
  • Diseño 3D:
Diseña el estuche como quieras. Si no desea diseñarlo temporalmente, puede obtener el archivo de diseño desde aquí:https://github.com/Makerfabs/Project_MakePython_Audio_Music
  • Impresión 3D:
Transfiera los archivos de impresión a la impresora mediante una tarjeta SD. La impresión 3D puede completar la producción de la caja rápidamente.
  • ensamblaje

6: Funcionamiento

DIY-an-MP3-Player-based-on-ESP32

Encienda el ESP32 a través de Micro USB y la pantalla LCD muestra la información básica de la canción. El interruptor inferior izquierdo puede cambiar canciones o canales de radio, y presionar hacia adentro para pausar la reproducción. El interruptor de la izquierda puede aumentar o disminuir el volumen, pulsar hacia adentro para silenciar o detener la alarma.

7. Video show:

Consulta este vídeo para saber cómo construimos el reproductor ESP32 MP3.

Si tiene más preguntas o necesita algunas personalizaciones de PCBA basadas en esas placas MakePython IoT, no dude en ponerse en contactoservice@makerfabs.com.Guiño

contáctenos