Èkọ́ ESP32 39/55 - Lílò ESP32 gẹ́gẹ́ bí Ẹ̀rọ̀ Orin Bluetooth | SunFounder's ESP32 IoT Learning kit
Nínú ẹ̀kọ́ yìí, a óò ṣàwárí bí a ṣe le lo ESP32 gẹ́gẹ́ bí ẹ̀rọ orin Bluetooth. ESP32 jẹ́ microcontroller alágbára tí ó ní Wi-Fi àti Bluetooth papọ̀, tí ó sì jẹ́ yíyan àìlówùú fún àwọn ohun èlò IoT. A óò lo Bluetooth A2DP sink láti gbé ohùn sí ESP32, tí a óò sì jáde nípasẹ̀ DAC tí ó wà nínú rẹ̀.
Láti ṣe èyí, a óò ṣètò ESP32 pẹ̀lú àwọn library àti ìtòlẹ́tò tí a nílò láti ṣàkóso gbígbé ohùn Bluetooth. Ní ìparí ẹ̀kọ́ yìí, o óò ní ẹ̀rọ orin Bluetooth tí ó ń ṣiṣẹ́ tí o lè ṣàkóso láti fóónù rẹ tàbí àwọn ẹ̀rọ mìíràn tí ó ní Bluetooth. Fún àlàyé kíkún, rí i pé o wo fídíò náà (nínú fídíò ní 00:00).
Àlàyé Hardware
Àwọn èròjà pàtàkì fún iṣẹ́ yìí ni ESP32 microcontroller àti BluetoothA2DPSink library. ESP32 ní Digital-to-Analog Converter (DAC) tí a kọ́ sínú rẹ̀ tí ó gbà á láàyè láti jáde ohùn láìsí ẹ̀rọ àfikún. BluetoothA2DPSink library ń rọrùn ìgbéṣẹ́ títò Bluetooth audio sink, tí ó ń jẹ́ kí o gba àwọn ohùn lórí Bluetooth.
ESP32 ní ọ̀pọ̀lọpọ̀ GPIO pins tí a lè tò fún àwọn ète oríṣiríṣi, pẹ̀lú ìjáde ohùn. Nínú ìtòlẹ́tò wa, a óò lo GPIO25 fún àwọn ọ̀nà ohùn òsì àti ọ̀tún. Library náà ń ṣàkóso ìsopọ̀ Bluetooth àti gbígbé ohùn, tí ó ń jẹ́ kí ó rọrùn láti fojú sórí ohun èlò náà dípò àwọn ìlànà Bluetooth tí ó wà nísàlẹ̀.
Àwọn Àlàyé Datasheet
| Olùṣe | Espressif Systems |
|---|---|
| Nọ́mbà apá | ESP32-WROOM-32 |
| Fóltíìjì Logic/IO | 3.3 V |
| Fóltíìjì ìpèsè | 3.0–3.6 V |
| Ìjáde lọ́wọ́lọ́wọ́ (fún ọ̀nà kọ̀ọ̀kan) | Títí dé 40 mA |
| Ìtọ́sọ́nà ìgbohùnsáfẹ́fẹ́ PWM | 1 KHz - 40 KHz |
| Àwọn ààlà ooru | 125 °C |
| Àpò | QFN48 |
| Àwọn àkíyèsí / àwọn oríṣiríṣi | Àwọn ìtòlẹ́tò oríṣiríṣi wà |
- Àwọn GPIO pins tí ó wọ́pọ̀ ni a lè lo fún ìjáde ohùn.
- Rí i pé ìpèsè agbára tí ó tọ́ (3.3 V) wà láti yẹra fún ìbàjẹ́.
- Mú firmware náà dojú ìwọ̀n nígbà gbogbo fún ìmúdára iṣẹ́ Bluetooth.
- Lo àwọn antenna òde fún ìgbòòrò Bluetooth tí ó dára.
- Mọ àwọn ààlà ìjáde DAC; lo àwọn DAC òde fún ohùn tí ó ga jùlọ.
Àwọn Ìtọ́sọ́nà Ìsopọ̀

Láti sopọ̀ ESP32 fún ṣíṣeré orin Bluetooth, bẹ̀rẹ̀ nípa sísopọ̀ ESP32 sí orísun agbára. Lo USB cable láti sopọ̀ ọ́ sí kọ̀ǹpútà rẹ, tí yóò pèsè agbára tí a nílò. Nígbà tí ó bá yẹ, sopọ̀ àwọn pins ìjáde ohùn: sopọ̀ ọ̀nà ohùn òsì sí GPIO25 àti ọ̀nà ohùn ọ̀tún sí GPIO25 kan náà. O lè lo àwọn jumper wires fún àwọn ìsopọ̀ wọ̀nyí.
Nítorí pé ESP32 ní DAC tí a kọ́ sínú rẹ̀, o kò nílò àwọn èròjà àfikún fún ìjáde ohùn. Bí ó ti wù kí ó rí, rí i pé ìsopọ̀ ilẹ̀ (ground) jẹ́ ọ̀kan ṣoṣo láàárín ESP32 àti àwọn ẹ̀rọ ohùn òde tí o lè lo. Ìtòlẹ́tò yìí yóò gbà á láàyè láti gbé ohùn taára sí ESP32 nípasẹ̀ Bluetooth.
Àwọn Àpẹẹrẹ Kóòdù & Ìtọ́sọ́nà
Kóòdù tí ó tẹ̀le yìí ń bẹ̀rẹ̀ Bluetooth A2DP sink àti ṣètò I2S fún ṣíṣeré ohùn.
// ==> Àpẹẹrẹ láti lo DAC tí a kọ́ sínú 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");
}
Nínú iṣẹ́ setup(), a kọ́kọ́ ṣètò àwọn ìtòlẹ́tò I2S, ní pípa mode rẹ̀ mọ́ master àti mímú DAC tí a kọ́ sínú rẹ̀ ṣiṣẹ́. A ṣètò sample rate sí 44100 Hz, èyí tí ó jẹ́ ìwọ̀n fún ṣíṣeré ohùn. A óò bẹ̀rẹ̀ Bluetooth A2DP sink pẹ̀lú orúkọ tí a yàn, tí yóò jẹ́ kí àwọn ẹ̀rọ Bluetooth mìíràn mọ̀ ọ́n.
Iṣẹ́ loop() kò ní nǹkan nínú rẹ̀, nítorí pé Bluetooth library ń ṣàkóso gbígbé ohùn ní ẹ̀yìn. O lè wo kóòdù pípé tí a kọ́ sí ìsàlẹ̀ àpilẹ̀kọ yìí fún àwọn àlàyé síwájú síi.
Ìfihàn / Ohun tí o óò rí
Nígbà tí ìtòlẹ́tò bá parí àti tí a gbé kóòdù sílẹ̀, tan ESP32 náà, kí o sì wá ẹ̀rọ tí a pè ní "ESP32_Bluetooth" lórí ẹ̀rọ tí ó ní Bluetooth rẹ. Nígbà tí o bá sopọ̀, ohùn èyíkéyìí tí o ń ṣeré lórí ẹ̀rọ tí ó sopọ̀ yóò gbé jáde nípasẹ̀ ESP32. O lè retí ìjáde ohùn tí ó ga nípasẹ̀ DAC níwọ̀n ìgbà tí àwọn ìsopọ̀ bá tọ́ àti tí ìpèsè agbára bá dúró ṣinṣin.
Àwọn ìṣòro tí ó wọ́pọ̀ ní ìsopọ̀ tí kò tọ́ ti àwọn pins ìjáde ohùn àti ìpèsè agbára tí kò tó. Rí i pé a tan ESP32 náà dáradára àti pé àwọn ìsopọ̀ ilẹ̀ (ground) múná. Bí o bá ní àwọn ìṣòro, wo fídíò náà fún àwọn ìtọ́sọ́nà yíyanjú (nínú fídíò ní 00:00).
Àwọn Àsìkò Fídíò
- 00:00 Ìbẹ̀rẹ̀
- 2:12 Ìfihàn
- 5:22 Àlàyé ìsopọ̀
- 7:51 Àlàyé Arduino Code
- 10:37 Yíyan board ESP32 àti COM port nínú Arduino IDE
- 12:19 Ṣíṣeré orin ní lílo ESP32 láti fóónù alágbèéká
- 13:30 Sísopọ̀ amplifier alágbára sí 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
Orisun & itọkasi
-
Iwe-ẹriESP32 Tutorial 39/55- SunFounder doc page for Bluetooth music playerdocs.sunfounder.com
Fáìlìs📁
Ko si awọn faili ti o wa.