Search Code

Èkọ́ ESP32 39/55 - Lílò ESP32 gẹ́gẹ́ bí Ẹ̀rọ̀ Orin Bluetooth | SunFounder's ESP32 IoT Learning kit

È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ẹ̀.

audio_module

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).

speaker_pic

À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ọ̀

esp32-39_bluetooth_audio_wiring

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

Aworan

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
Ede: C++

// ==> 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() {
}

Orisun & itọkasi

Fáìlìs📁

Ko si awọn faili ti o wa.