ESP32 Tutorijal 39/55 - Korištenje ESP32 kao Bluetooth muzičkog plejera | SunFounder's ESP32 IoT Learning kit
U ovom tutorijalu ćemo istražiti kako koristiti ESP32 kao Bluetooth muzički player. ESP32 je moćan mikrokontroler koji integriše Wi-Fi i Bluetooth mogućnosti, što ga čini odličnim izborom za IoT aplikacije. Koristićemo Bluetooth A2DP sink za strimovanje audio zapisa na ESP32, koji se zatim može izvesti kroz njegov ugrađeni DAC.
Da bismo to postigli, podesićemo ESP32 sa potrebnim bibliotekama i konfiguracijama za upravljanje Bluetooth audio strimovanjem. Do kraja ovog tutorijala, imaćete funkcionalan Bluetooth audio player koji se može kontrolisati sa vašeg pametnog telefona ili drugih Bluetooth uređaja. Za detaljnije objašnjenje, obavezno pogledajte video (u videu na 00:00).
Objašnjenje hardvera
Glavne komponente za ovaj projekat uključuju ESP32 mikrokontroler i BluetoothA2DPSink biblioteku. ESP32 je opremljen ugrađenim Digitalno-Analognim Pretvaračem (DAC) koji omogućava audio izlaz bez dodatnog hardvera. BluetoothA2DPSink biblioteka pojednostavljuje proces postavljanja Bluetooth audio sinka, omogućavajući vam da primate audio tokove preko Bluetootha.
ESP32 ima više GPIO pinova koji se mogu konfigurisati za različite svrhe, uključujući audio izlaz. U našem podešavanju, koristićemo GPIO25 za lijevi i desni audio kanal. Biblioteka upravlja Bluetooth vezom i audio strimovanjem, što olakšava fokusiranje na aplikaciju umjesto na osnovne Bluetooth protokole.
Detalji iz tehničke dokumentacije
| Proizvođač | Espressif Systems |
|---|---|
| Broj dijela | ESP32-WROOM-32 |
| Logički/IO napon | 3.3 V |
| Napon napajanja | 3.0–3.6 V |
| Izlazna struja (po kanalu) | Do 40 mA |
| Smjernice za PWM frekvenciju | 1 KHz - 40 KHz |
| Termička ograničenja | 125 °C |
| Pakovanje | QFN48 |
| Napomene / varijante | Dostupne su različite konfiguracije |
- Uobičajeni GPIO pinovi se mogu koristiti za audio izlaz.
- Osigurajte ispravno napajanje (3.3 V) kako biste izbjegli oštećenja.
- Održavajte firmver ažuriranim za poboljšane Bluetooth performanse.
- Koristite vanjske antene za poboljšan Bluetooth domet.
- Budite svjesni ograničenja DAC izlaza; koristite vanjske DAC-ove za kvalitetniji audio.
Upute za povezivanje

Da biste povezali ESP32 za Bluetooth audio reprodukciju, počnite spajanjem ESP32 na izvor napajanja. Koristite USB kabl za povezivanje s računarom, što će osigurati potrebno napajanje. Zatim povežite audio izlazne pinove: povežite lijevi audio kanal na GPIO25 i desni audio kanal na isti GPIO25 pin. Možete koristiti žice za spajanje za ove veze.
Pošto ESP32 ima ugrađeni DAC, ne trebaju vam dodatne komponente za audio izlaz. Međutim, osigurajte da je uzemljenje zajedničko između ESP32 i bilo koje vanjske audio opreme koju možete koristiti. Ovo podešavanje će vam omogućiti da strimujete audio direktno na ESP32 putem Bluetootha.
Primjeri koda i objašnjenje
Sljedeći isječak koda inicijalizira Bluetooth A2DP sink i postavlja I2S konfiguraciju za audio reprodukciju.
// ==> Primjer za korištenje ugrađenog DAC-a 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");
}
U setup() funkciji, prvo konfigurišemo I2S postavke, specificirajući način rada kao master i omogućavajući ugrađeni DAC. Brzina uzorkovanja je postavljena na 44100 Hz, što je standard za audio reprodukciju. Bluetooth A2DP sink se zatim pokreće s određenim imenom, omogućavajući da ga prepoznaju drugi Bluetooth uređaji.
loop() funkcija ostaje prazna, jer Bluetooth biblioteka upravlja strimovanjem u pozadini. Kompletan kod možete provjeriti ispod članka za dodatne detalje.
Demonstracija / Šta očekivati
Kada je podešavanje završeno i kod je uploadovan, uključite ESP32 i potražite uređaj nazvan "ESP32_Bluetooth" na vašem Bluetooth uređaju. Nakon povezivanja, svaki audio koji se reprodukuje na povezanom uređaju trebao bi se strimovati kroz ESP32. Možete očekivati visokokvalitetan audio izlaz kroz DAC sve dok su veze ispravne i napajanje stabilno.
Uobičajene zamke uključuju pogrešno povezivanje audio izlaznih pinova i nedovoljno napajanje. Provjerite da je ESP32 ispravno napajan i da su veze uzemljenja sigurne. Ako naiđete na probleme, pogledajte video za savjete o rješavanju problema (u videu na 00:00).
Vremenske oznake videa
- 00:00 Početak
- 2:12 Uvod
- 5:22 Objašnjeno povezivanje
- 7:51 Objašnjen Arduino kod
- 10:37 Odabir ESP32 ploče i COM porta u Arduino IDE-u
- 12:19 Reprodukcija muzike koristeći ESP32 s mobilnog telefona
- 13:30 Povezivanje snažnijeg pojačala na ESP32
// ==> Example to use built in DAC of ESP32
// R,L connect to GPIO25
#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, // corrected by info from bluetooth
.bits_per_sample = (i2s_bits_per_sample_t)16, //the DAC module will only take the 8bits from MSB
.channel_format = I2S_CHANNEL_FMT_RIGHT_LEFT,
.communication_format = (i2s_comm_format_t)I2S_COMM_FORMAT_STAND_MSB,
.intr_alloc_flags = 0, // default interrupt priority
.dma_buf_count = 8,
.dma_buf_len = 64,
.use_apll = false
};
a2dp_sink.set_i2s_config(i2s_config);
a2dp_sink.start("ESP32_Bluetooth");
}
void loop() {
}
Common Course Links
Common Course Files
Resursi i reference
-
DokumentacijaESP32 Tutorial 39/55 - SunFounder doc page for Bluetooth music playerdocs.sunfounder.com
Datoteke📁
Nema dostupnih datoteka.