Algunas partes de este sitio web aún no están disponibles en su idioma. Estamos trabajando para solucionar esto y nos disculpamos por cualquier inconveniente.
Tutorial ESP32 39/55 - Usando ESP32 como reproductor de música Bluetooth | Kit de aprendizaje IoT ESP32 de SunFounder
En este tutorial, exploraremos cómo utilizar el ESP32 como un reproductor de música Bluetooth. El ESP32 es un potente microcontrolador que integra capacidades de Wi-Fi y Bluetooth, lo que lo convierte en una excelente opción para aplicaciones de IoT. Usaremos un sink Bluetooth A2DP para transmitir audio al ESP32, que luego puede ser reproducido a través de su DAC integrado.
módulo_de_audio
Para lograr esto, configuraremos el ESP32 con las bibliotecas y configuraciones necesarias para manejar la transmisión de audio por Bluetooth. Al final de este tutorial, tendrás un reproductor de audio Bluetooth funcional que puede ser controlado desde tu smartphone u otros dispositivos habilitados para Bluetooth. Para una explicación más detallada, asegúrate de consultar el video (en el video a las 00:00).
imagen_del_orador
Hardware Explicado
Los componentes principales de este proyecto incluyen el microcontrolador ESP32 y la biblioteca BluetoothA2DPSink. El ESP32 está equipado con un convertidor de digital a analógico (DAC) integrado que permite la salida de audio sin ningún hardware adicional. La biblioteca BluetoothA2DPSink simplifica el proceso de configuración de un receptor de audio Bluetooth, permitiéndote recibir flujos de audio a través de Bluetooth.
El ESP32 tiene múltiples pines GPIO que se pueden configurar para diversos propósitos, incluido el audio. En nuestra configuración, utilizaremos GPIO25 para los canales de audio izquierdo y derecho. La biblioteca se encarga de gestionar la conexión Bluetooth y la transmisión de audio, lo que facilita centrarse en la aplicación en lugar de los protocolos Bluetooth subyacentes.
Detalles de la hoja de datos
Fabricante
Espressif Systems
Número de parte
ESP32-WROOM-32
Voltaje de lógica/entrada-salida
3.3 V
Tensión de suministro
3.0-3.6 V
Corriente de salida (por canal)
Hasta 40 mA
Guía de frecuencia PWM
1 kHz - 40 kHz
Límites térmicos
125 °C
Paquete
QFN48
Notas / variantes
Varias configuraciones disponibles
Los pines GPIO comunes se pueden utilizar para la salida de audio.
Asegúrese de proporcionar un suministro de energía adecuado (3.3 V) para evitar daños.
Mantenga el firmware actualizado para mejorar el rendimiento de Bluetooth.
Utiliza antenas externas para aumentar el alcance del Bluetooth.
Tenga en cuenta las limitaciones de salida del DAC; utilice DAC externos para obtener un audio de mayor calidad.
Instrucciones de cableado
esp32-39_bluetooth_audio_wiring
Para cablear el ESP32 para la reproducción de audio Bluetooth, comienza conectando el ESP32 a una fuente de alimentación. Usa un cable USB para conectarlo a tu computadora, que proporcionará la energía necesaria. A continuación, conecta los pines de salida de audio: conecta el canal de audio izquierdo al GPIO25 y el canal de audio derecho al mismo pin GPIO25. Puedes usar cables de puente para estas conexiones.
Dado que el ESP32 tiene un DAC incorporado, no necesitas componentes adicionales para la salida de audio. Sin embargo, asegúrate de que la conexión a tierra sea común entre el ESP32 y cualquier equipo de audio externo que puedas utilizar. Esta configuración te permitirá transmitir audio directamente al ESP32 a través de Bluetooth.
Ejemplos de código y guía paso a paso
El siguiente fragmento de código inicializa el sink A2DP de Bluetooth y configura la configuración I2S para la reproducción de audio.
// ==> Example to use built in DAC of ESP32
#include "BluetoothA2DPSink.h"
BluetoothA2DPSink a2dp_sink;
void setup() {
const i2s_config_t i2s_config = {
.mode = (i2s_mode_t)(I2S_MODE_MASTER | I2S_MODE_TX | I2S_MODE_DAC_BUILT_IN),
.sample_rate = 44100,
.bits_per_sample = (i2s_bits_per_sample_t)16,
.channel_format = I2S_CHANNEL_FMT_RIGHT_LEFT,
};
a2dp_sink.set_i2s_config(i2s_config);
a2dp_sink.start("ESP32_Bluetooth");
}
En elsetup()función, primero configuramos los ajustes de I2S, especificando el modo como maestro y habilitando el DAC integrado. La tasa de muestreo se establece en 44100 Hz, que es estándar para la reproducción de audio. Luego se inicia el sink A2DP de Bluetooth con un nombre especificado, lo que permite que sea reconocido por otros dispositivos Bluetooth.
Elloop()La función permanece vacía, ya que la biblioteca Bluetooth maneja la transmisión en segundo plano. Puedes consultar el código completo cargado debajo del artículo para más detalles.
Demostración / Qué Esperar
Una vez que la configuración esté completa y el código esté cargado, encienda el ESP32 y busque el dispositivo llamado "ESP32_Bluetooth" en su dispositivo con Bluetooth. Al conectar, cualquier audio reproducido en el dispositivo conectado debería transmitirse a través del ESP32. Puede esperar una salida de audio de alta calidad a través del DAC, siempre y cuando las conexiones sean correctas y la fuente de alimentación sea estable.
Las trampas comunes incluyen el cableado incorrecto de los pines de salida de audio y un suministro de energía inadecuado. Asegúrate de que el ESP32 esté alimentado correctamente y que las conexiones a tierra estén seguras. Si encuentras algún problema, consulta el video para obtener consejos de solución de problemas (en el video en :00).
Marcas de tiempo del video
00:00 Comienzo
2:12 Introducción
5:22 Explicación del cableado
7:51 Explicación del código Arduino
10:37 Seleccionando la placa ESP32 y el puerto COM en Arduino IDE
12:19 Reproduciendo música con ESP32 desde el teléfono móvil
13:30 Conectando un amplificador más potente al ESP32
Imágenes
esp32-39_bluetooth_audio_wiring
speaker_pic
audio_module
esp32-39_bluetooth_audio_wiring
speaker_pic
audio_module
840-ESP32 Tutorial 39/55- Arduino code for playing audio via bluetooth