Tutorial ESP32 39/55 - Utilizzare l'ESP32 come lettore musicale Bluetooth | Kit di apprendimento IoT ESP32 di SunFounder

Tutorial ESP32 39/55 - Utilizzare l'ESP32 come lettore musicale Bluetooth | Kit di apprendimento IoT ESP32 di SunFounder

In questo tutorial esploreremo come utilizzare l'ESP32 come riproduttore musicale Bluetooth. L'ESP32 è un potente microcontrollore che integra funzionalità Wi-Fi e Bluetooth, rendendolo un'ottima scelta per applicazioni IoT. Utilizzeremo un sink A2DP Bluetooth per trasmettere audio all'ESP32, che può quindi essere riprodotto tramite il suo DAC integrato.

modulo_audio

Per raggiungere questo obiettivo, configureremo l'ESP32 con le librerie e le configurazioni necessarie per gestire lo streaming audio Bluetooth. Entro la fine di questo tutorial, avrai un riproduttore audio Bluetooth funzionante che può essere controllato dal tuo smartphone o da altri dispositivi abilitati al Bluetooth. Per una spiegazione più dettagliata, assicurati di dare un'occhiata al video (nel video a 00:00).

speaker_pic

Hardware Spiegato

I componenti principali di questo progetto includono il microcontrollore ESP32 e la libreria BluetoothA2DPSink. L'ESP32 è dotato di un convertitore digitale-analogico (DAC) integrato che consente l'output audio senza hardware aggiuntivo. La libreria BluetoothA2DPSink semplifica il processo di configurazione di un audio sink Bluetooth, permettendoti di ricevere flussi audio tramite Bluetooth.

L'ESP32 ha più pin GPIO che possono essere configurati per vari scopi, incluso l'output audio. Nel nostro setup, utilizzeremo GPIO25 per i canali audio sinistro e destro. La libreria si occupa di gestire la connessione Bluetooth e lo streaming audio, rendendo più facile concentrarsi sull'applicazione piuttosto che sui protocolli Bluetooth sottostanti.

Dettagli della Scheda Tecnica

Produttore Espressif Systems
Numero di parte ESP32-WROOM-32
Tensione di logica/IO 3,3 V
Tensione di alimentazione 3.0-3.6 V
Corrente di uscita (per canale) Fino a 40 mA
Linee guida sulla frequenza PWM 1 kHz - 40 kHz
Limiti termici 125 °C
Pacchetto QFN48
Note / varianti Varie configurazioni disponibili

  • I pin GPIO comuni possono essere utilizzati per l'uscita audio.
  • Assicurati di fornire un'alimentazione adeguata (3,3 V) per evitare danni.
  • Mantieni il firmware aggiornato per migliorare le prestazioni del Bluetooth.
  • Utilizzare antenne esterne per un raggio Bluetooth migliorato.
  • Essere consapevoli delle limitazioni dell'uscita DAC; utilizzare DAC esterni per un audio di qualità superiore.

Istruzioni di cablaggio

esp32-39_bluetooth_audio_wiring

Per collegare l'ESP32 per la riproduzione audio Bluetooth, inizia collegando l'ESP32 a una fonte di alimentazione. Utilizza un cavo USB per collegarlo al tuo computer, che fornirà la potenza necessaria. Successivamente, collega i pin di uscita audio: collega il canale audio sinistro al GPIO25 e il canale audio destro allo stesso pin GPIO25. Puoi utilizzare dei fili jumper per queste connessioni.

Poiché l'ESP32 ha un DAC integrato, non è necessario alcun componente aggiuntivo per l'uscita audio. Tuttavia, assicurati che il collegamento a terra sia comune tra l'ESP32 e qualsiasi attrezzatura audio esterna che potresti utilizzare. Questa configurazione ti permetterà di trasmettere audio direttamente all'ESP32 tramite Bluetooth.

Esempi di codice e guida passo passo

Il seguente frammento di codice inizializza il sink A2DP Bluetooth e imposta la configurazione I2S per la riproduzione 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");
}

In thesetup()nella funzione, prima configuriamo le impostazioni I2S, specificando la modalità come master e abilitando il DAC integrato. La frequenza di campionamento è impostata a 44100 Hz, che è standard per la riproduzione audio. Il sink A2DP Bluetooth viene quindi avviato con un nome specificato, permettendo di essere riconosciuto da altri dispositivi Bluetooth.

Illoop()La funzione rimane vuota, poiché la libreria Bluetooth gestisce lo streaming in background. Puoi controllare il codice completo caricato sotto l'articolo per ulteriori dettagli.

Dimostrazione / Cosa Aspettarsi

Una volta completata la configurazione e caricato il codice, accendi l'ESP32 e cerca il dispositivo chiamato "ESP32_Bluetooth" sul tuo dispositivo dotato di Bluetooth. Una volta connesso, qualsiasi audio riprodotto sul dispositivo connesso dovrebbe essere trasmesso tramite l'ESP32. Puoi aspettarti un'uscita audio di alta qualità attraverso il DAC, a condizione che le connessioni siano corrette e che l'alimentazione sia stabile.

Le trappole comuni includono il cablaggio errato dei pin di uscita audio e un'alimentazione inadeguata. Assicurati che l'ESP32 sia alimentato correttamente e che le connessioni di terra siano sicure. Se incontri problemi, controlla il video per suggerimenti sulla risoluzione dei problemi (nel video a :00).

Timestamp video

  • 00:00 Inizio
  • 2:12 Introduzione
  • 5:22 Spiegazione del cablaggio
  • 7:51 Codice Arduino spiegato
  • 10:37 Selezionando la scheda ESP32 e la porta COM nell'IDE di Arduino
  • 12:19 Riproduzione musicale tramite ESP32 da telefono cellulare
  • 13:30 Collegamento di un amplificatore più potente all'ESP32

Immagini

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
Lingua: C++
Copia!

Risorse e riferimenti

File📁

Nessun file disponibile.