Tutorial ESP32 39/55 - Usando o ESP32 como Reprodutor de Música Bluetooth | Kit de Aprendizado IoT ESP32 da SunFounder

Tutorial ESP32 39/55 - Usando o ESP32 como Reprodutor de Música Bluetooth | Kit de Aprendizado IoT ESP32 da SunFounder

Neste tutorial, exploraremos como utilizar o ESP32 como um reprodutor de música Bluetooth. O ESP32 é um microcontrolador poderoso que integra recursos de Wi-Fi e Bluetooth, tornando-o uma excelente escolha para aplicações de IoT. Estaremos usando um sink A2DP Bluetooth para transmitir áudio para o ESP32, que pode então ser emitido através de seu DAC integrado.

módulo_de_áudio

Para alcançar isso, configuraremos o ESP32 com as bibliotecas e configurações necessárias para lidar com streaming de áudio via Bluetooth. Ao final deste tutorial, você terá um reprodutor de áudio Bluetooth funcional que pode ser controlado a partir do seu smartphone ou de outros dispositivos habilitados para Bluetooth. Para uma explicação mais detalhada, não deixe de conferir o vídeo (no vídeo às 00:00).

foto_do_falante

Hardware Explicado

Os principais componentes deste projeto incluem o microcontrolador ESP32 e a biblioteca BluetoothA2DPSink. O ESP32 é equipado com um conversor Digital-para-Analógico (DAC) embutido que permite a saída de áudio sem hardware adicional. A biblioteca BluetoothA2DPSink simplifica o processo de configuração de um receptor de áudio Bluetooth, permitindo que você receba streams de áudio via Bluetooth.

O ESP32 possui múltiplos pinos GPIO que podem ser configurados para várias finalidades, incluindo saída de áudio. Em nossa configuração, utilizaremos o GPIO25 para os canais de áudio esquerdo e direito. A biblioteca cuida da gestão da conexão Bluetooth e do streaming de áudio, facilitando o foco na aplicação em vez dos protocolos Bluetooth subjacentes.

Detalhes da Ficha Técnica

Fabricante Espressif Systems
Número da peça ESP32-WROOM-32
Tensão de lógica/IO 3,3 V
Tensão de alimentação 3,0-3,6 V
Corrente de saída (por canal) Até 40 mA
Orientação de frequência PWM 1 kHz - 40 kHz
Limites térmicos 125 °C
Pacote QFN48
Notas / variantes Várias configurações disponíveis

  • Pinos GPIO comuns podem ser usados para saída de áudio.
  • Assegure um fornecimento de energia adequado (3,3 V) para evitar danos.
  • Mantenha o firmware atualizado para melhorar o desempenho do Bluetooth.
  • Use antenas externas para aumentar o alcance do Bluetooth.
  • Esteja ciente das limitações de saída do DAC; use DACs externos para áudio de maior qualidade.

Instruções de Fiação

esp32-39_bluetooth_audio_wiring

Para conectar o ESP32 para reprodução de áudio via Bluetooth, comece conectando o ESP32 a uma fonte de alimentação. Use um cabo USB para conectá-lo ao seu computador, que fornecerá a energia necessária. Em seguida, conecte os pinos de saída de áudio: conecte o canal de áudio esquerdo ao GPIO25 e o canal de áudio direito ao mesmo pino GPIO25. Você pode usar fios jumpers para essas conexões.

Como o ESP32 possui um DAC integrado, você não precisa de componentes adicionais para a saída de áudio. No entanto, certifique-se de que a conexão de terra seja comum entre o ESP32 e qualquer equipamento de áudio externo que você possa usar. Essa configuração permitirá que você transmita áudio diretamente para o ESP32 via Bluetooth.

Exemplos de Código e Tutorial

O seguinte trecho de código inicializa o sink Bluetooth A2DP e configura a I2S para a reprodução de áudio.


// ==> 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");
}

No textosetup()função, primeiro configuramos as configurações do I2S, especificando o modo como mestre e ativando o DAC embutido. A taxa de amostragem é definida como 44100 Hz, que é padrão para reprodução de áudio. O sink A2DP do Bluetooth é então iniciado com um nome especificado, permitindo que seja reconhecido por outros dispositivos Bluetooth.

Oloop()a função permanece vazia, já que a biblioteca Bluetooth lida com o streaming em segundo plano. Você pode verificar o código completo carregado abaixo do artigo para mais detalhes.

Demonstração / O Que Esperar

Uma vez que a configuração esteja completa e o código seja carregado, ligue o ESP32 e procure pelo dispositivo chamado "ESP32_Bluetooth" no seu dispositivo com Bluetooth. Ao conectar, qualquer áudio reproduzido no dispositivo conectado deve ser transmitido pelo ESP32. Você pode esperar uma saída de áudio de alta qualidade através do DAC, desde que as conexões estejam corretas e a fonte de alimentação esteja estável.

Os erros comuns incluem a ligação incorreta dos pinos de saída de áudio e uma fonte de alimentação inadequada. Certifique-se de que o ESP32 está alimentado corretamente e que as conexões de terra estão seguras. Se você encontrar algum problema, verifique o vídeo para dicas de resolução de problemas (no vídeo em :00).

Marcas de tempo do vídeo

  • 00:00 Início
  • 2:12 Introdução
  • 5:22 Explicação da fiação
  • 7:51 Código Arduino explicado
  • 10:37 Selecionando a placa ESP32 e a porta COM no Arduino IDE
  • 12:19 Tocando música usando ESP32 a partir do telefone móvel
  • 13:30 Conectando um amplificador mais potente ao ESP32

Imagens

esp32-39_bluetooth_audio_wiring
esp32-39_bluetooth_audio_wiring
speaker_pic
speaker_pic
audio_module
audio_module
840-ESP32 Tutorial 39/55- Arduino code for playing audio via bluetooth
Idioma: C++
Copiado!

Recursos e referências

Arquivos📁

Nenhum arquivo disponível.