DIY MP3 Player con ESP32 - Reproductor de audio
En este proyecto, aprenderemos cómo construir un reproductor de MP3 DIY con ESP32, utilizando el módulo ESP32 Audio, podemos hacer un reproductor MP3 con radio web adicional y función de despertador.
ESP32 se puede utilizar como un sistema independiente para ejecutar aplicaciones, simplemente conecte el cable, encienda el dispositivo y prográmelo. Con la descarga de diferentes programas, el reproductor puede realizar la función de reproducción de música de la tarjeta SD, la función de radio por Internet y la función de despertador de música.
Ahora, ¡comencemos!
1. Suministros:
1.1 Hardware:
-
MakePython ESP32 (WROVER, puedes obtenerlo desde este enlace://www.makerfabs.com/makepython-esp32.html)
-
MakePython Audio (puedes obtenerlo desde este enlace://www.makerfabs.com/makepython-audio.html)
-
Tarjeta Micro SD
-
Cable USB
-
Audio/auriculares con conector de audio de 3,5 mm
1.2 Software:
-
Arduino IDE
-
Descarga música (.mp3 o .wav) a la tarjeta SD.
2. Conexión de hardware
Conecte dos placas de acuerdo con los pines. ElVCC está conectado a 3v3.
3. Entorno de programación
3.1 Soporte ESP32
Siga las instrucciones de instalación para agregar soporte para ESP32 si aún no lo está haciendo://github.com/espressif/arduino-esp32
3.2 Instalar biblioteca
-
Adafruit SSD1306 y bibliotecas dependientes.
-
ESP32-audioI2S.
Puede obtener el archivo zip desde el Github://github.com/Makerfabs/Project_MakePython_Audio_Music
Descomprima este archivo. Abra su IDE de Arduino y navegue hastaEsbozar > incluir biblioteca > administrar bibliotecas > agregar .ZIP biblioteca.
A continuación, abra la carpeta: "\Project_MakePython_Audio_Music\old-src\esp32_mp3\ESP32-audioI2S". Y verá un mensaje que indica que la biblioteca se 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://github.com/Makerfabs/Project_MakePython_Audio_Music
-
Aviso: MicroPython Audio se puede descargar sin desconectar. Al cargar el programa, gire el interruptor junto a la interfaz de audio de 3,5 mm a la toma de audio para descargar correctamente.
-
Modificar o agregar 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 0) file_index--; más file_index = file_num - 1; open_new_song(file_list[file_index]); print_song_time(); button_time = millis(); }
-
Sube el código.
4.2 Radio Web
-
Puede obtener el código desde el enlace://github.com/Makerfabs/Project_ESP32-Web-Radio
-
La radio web necesita conectarse a Internet, debe cambiar la información de WIFI.
const char *ssid = "Makerfabs"; const char *password = "20160704";
-
Añadir, eliminar o modificar la dirección de radio en el siguiente código:
Estaciones de cadena[] = { "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(Estación de cadena) { audio.connecttohost(estación);
4.3 Despertador
-
Puede obtener el código desde aquí://github.com/Makerfabs/Project_Wakemaster-Alarm-Clock.
-
Modifique la hora de la 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; Cadena clock_time = "17:39:00"; Cadena clock_time2 = "17:42:00";
-
Inicie y obtenga la hora, y el "gmtOffset" se usa para establecer la zona horaria.
Inicia y consigue el tiempo configTime(gmtOffset_sec, daylightOffset_sec, ntpServer); Serial.println(F("Alread get npt time."));
-
Modificar la música del despertador:
void loop() { printLocalTime(); audio.loop(); si (millis() - button_time > 600) { if (alarm_flag == 0) { if (showtime() != 0) { open_new_song("reloj.wav"); alarm_flag = 1; display.setCursor(0, 24); display.println("ALARMA!!!!!"); display.display(); retraso(1000); button_time = millis(); } }
5.3D Estuche impreso
El caso se puede obtener en://www.makerfabs.com/esp32-audio-fixture-kit.html
-
Diseño 3D:
-
Impresión 3D:
-
Ensamblaje
6: Operación
Alimente 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 las canciones o el canal de radio, y presionar hacia adentro para pausar la reproducción. El interruptor de la izquierda puede aumentar o disminuir el volumen, presionar hacia adentro para silenciar o detener la alarma.
7. Video show:
Mira este video para aprender cómo construimos el reproductor de MP3 ESP32.
Si tiene más preguntas o necesita algunas personalizaciones de PCBA basadas en esas placas IoT de MakePython, no dude en ponerse en contacto conservice@makerfabs.com.