ESP32 Упатство 39/55 - Користење на ESP32 како Bluetooth музички плеер | SunFounder's ESP32 IoT комплет за учење
Во ова упатство, ќе истражиме како да го искористиме ESP32 како Bluetooth музички плеер. ESP32 е моќен микроконтролер кој интегрира Wi-Fi и Bluetooth можности, што го прави одличен избор за IoT апликации. Ќе користиме Bluetooth A2DP приемник за да пренесуваме аудио до ESP32, кој потоа може да се изведе преку неговиот вграден DAC.
За да го постигнеме ова, ќе го поставиме ESP32 со потребните библиотеки и конфигурации за да управува со Bluetooth аудио пренос. До крајот на ова упатство, ќе имате функционален Bluetooth аудио плеер кој може да се контролира од вашиот паметен телефон или други уреди со Bluetooth. За подетално објаснување, задолжително погледнете го видеото (во видео на 00:00).
Објаснување на хардверот
Главните компоненти за овој проект вклучуваат ESP32 микроконтролер и BluetoothA2DPSink библиотеката. ESP32 е опремен со вграден дигитално-аналоген конвертор (DAC) кој овозможува аудио излез без дополнителен хардвер. BluetoothA2DPSink библиотеката го поедноставува процесот на поставување Bluetooth аудио приемник, овозможувајќи ви да примате аудио стримови преку Bluetooth.
ESP32 има повеќе GPIO пинови кои можат да се конфигурираат за различни намени, вклучувајќи аудио излез. Во нашето поставување, ќе го користиме GPIO25 за левиот и десниот аудио канал. Библиотеката се грижи за управување со Bluetooth конекцијата и аудио стримингот, што го олеснува фокусирањето на апликацијата наместо на основните Bluetooth протоколи.
Детали од техничката документација
| Производител | Espressif Systems |
|---|---|
| Број на дел | ESP32-WROOM-32 |
| Логички/IO напон | 3.3 V |
| Напон на напојување | 3.0–3.6 V |
| Излезна струја (по канал) | До 40 mA |
| Насоки за PWM фреквенција | 1 KHz - 40 KHz |
| Термички граници | 125 °C |
| Пакет | QFN48 |
| Белешки / варијанти | Достапни се различни конфигурации |
- Вообичаени GPIO пинови може да се користат за аудио излез.
- Обезбедете соодветно напојување (3.3 V) за да избегнете оштетување.
- Одржувајте го фирмверот ажуриран за подобрени Bluetooth перформанси.
- Користете надворешни антени за подобрен Bluetooth опсег.
- Бидете свесни за ограничувањата на DAC излезот; користете надворешни DAC-ови за аудио со повисок квалитет.
Инструкции за поврзување

За да го поврзете ESP32 за Bluetooth аудио репродукција, започнете со поврзување на ESP32 со извор на напојување. Користете USB кабел за да го поврзете со вашиот компјутер, што ќе обезбеди потребно напојување. Следно, поврзете ги аудио излезните пинови: поврзете го левиот аудио канал на GPIO25 и десниот аудио канал на истиот GPIO25 пин. Можете да користите џампер жици за овие врски.
Бидејќи ESP32 има вграден DAC, не ви се потребни дополнителни компоненти за аудио излез. Сепак, осигурајте се дека заземјувањето е заедничко помеѓу ESP32 и било која надворешна аудио опрема што може да ја користите. Ова поставување ќе ви овозможи да пренесувате аудио директно до ESP32 преку Bluetooth.
Примери на код и објаснување
Следниот фрагмент од код го иницијализира Bluetooth A2DP приемникот и ја поставува I2S конфигурацијата за аудио репродукција.
// ==> Пример за користење на вградениот DAC на 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");
}
Во функцијата setup(), прво ги конфигурираме I2S поставките, специфицирајќи го режимот како мастер и овозможувајќи го вградениот DAC. Стапката на земање примероци е поставена на 44100 Hz, што е стандардно за аудио репродукција. Bluetooth A2DP приемникот потоа се стартува со одредено име, овозможувајќи му да биде препознаен од други Bluetooth уреди.
Функцијата loop() останува празна, бидејќи Bluetooth библиотеката управува со стримингот во позадина. Можете да го проверите целосниот код вчитан под статијата за повеќе детали.
Демонстрација / Што да очекувате
Откако поставувањето е завршено и кодот е поставен, вклучете го ESP32 и пребарувајте го уредот со име "ESP32_Bluetooth" на вашиот уред со Bluetooth. По поврзувањето, било кое аудио што се репродуцира на поврзаниот уред треба да се пренесува преку ESP32. Можете да очекувате аудио излез со висок квалитет преку DAC се додека врските се точни и напојувањето е стабилно.
Вообичаени грешки вклучуваат неточно поврзување на аудио излезните пинови и несоодветно напојување. Осигурајте се дека ESP32 е правилно напојуван и дека заземјувачките врски се сигурни. Ако наидете на проблеми, проверете го видеото за совети за решавање проблеми (во видео на 00:00).
Временски ознаки на видеото
- 00:00 Почеток
- 2:12 Вовед
- 5:22 Објаснување на поврзувањето
- 7:51 Објаснување на Arduino кодот
- 10:37 Избор на ESP32 плоча и COM порт во Arduino IDE
- 12:19 Репродукција на музика користејќи ESP32 од мобилен телефон
- 13:30 Поврзување на помоќен засилувач на 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
Resources & references
-
DocumentationESP32 Tutorial 39/55- SunFounder doc page for Bluetooth music playerdocs.sunfounder.com
Files📁
No files available.