Reproductor de MP3 DIY con ESP32 - Reproductor de audio
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:
-
MakePython ESP32 (WROVER, puedes obtenerlo desde este enlace:https://www.makerfabs.com/makepython-esp32.html)
-
MakePython Audio (puedes obtenerlo desde este enlace:https://www.makerfabs.com/makepython-audio.html)
-
Tarjeta Micro SD
-
Cable USB
-
Auriculares con conector de audio de 3,5 mm
1.2 Software:
-
Arduino IDE
-
Descargue música (.mp3 o .wav) en la tarjeta SD.
2. Conexión de hardware


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
-
Puede obtener el código desde el enlace:https://github.com/Makerfabs/Project_ESP32-Web-Radio
-
La radio web necesita conectarse a Internet, es necesario cambiar la información WIFI.
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
-
Puede obtener el código desde aquí:https://github.com/Makerfabs/Project_Wakemaster-Alarm-Clock.
-
Modifique la hora de alarma en el siguiente código:
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

El caso se puede obtener de:https://www.makerfabs.com/esp32-audio-fixture-kit.html
-
Diseño 3D:
-
Impresión 3D:
-
ensamblaje
6: Funcionamiento

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.

Blogs relacionados
- [2021-01-22] Cómo monitorear la velocidad del viento con MQTT
- [2020-12-25] Juega videojuegos en ESP32 TFT Touch Screen
- [2020-12-19] Arduino Tutorial: Comunicación Canbus con DHT11
- [2020-12-05] MicroPython ESP32 Tutorial - Interfacing DHT11 Sensor
- [2020-11-21] DIY GPS Tracker con ESP32 - Aplicación Python