Search Code

Tutorial ESP32 39/55 - Isticmaalka ESP32 sida Ciyaaryahanka Muusikada Bluetooth | Qalabka Barashada ESP32 IoT ee SunFounder

Tutorial ESP32 39/55 - Isticmaalka ESP32 sida Ciyaaryahanka Muusikada Bluetooth | Qalabka Barashada ESP32 IoT ee SunFounder

Cashigarkani, waxaan ku baran doonaa sida loo isticmaalo ESP32 sidii ciyaartoy muusig oo Bluetooth ah. ESP32 waa kontorool yar oo awood badan oo isku daraysa awoodaha Wi-Fi iyo Bluetooth, taasoo ka dhigaysa doorasho aad u fiican codsiyada IoT. Waxaan isticmaali doonnaa Bluetooth A2DP sink si aan u sii daadino maqal ESP32, kaas oo markaas lagu soo saari karo DAC-kiisa ku dhisan.

qaybta_maqalka

Si tan loo gaaro, waxaan u habayn doonaa ESP32 maktabadaha iyo qaabaynta lagama maarmaanka ah si loo maareeyo sii daadinta maqalka Bluetooth. Dhammaadka casharkan, waxaad yeelan doontaa ciyaartoy maqal Bluetooth oo shaqeeya oo laga maamuli karo taleefankaaga casriga ah ama qalabyada kale ee Bluetooth-ka shaqeeya. Sharaxaad faahfaahsan oo dheeri ah, hubi inaad daawato fiidiyowga (fiidiyowga 00:00).

sawirka_hadlaha

Qalabka La Sharaxay

Qaybaha ugu muhiimsan ee mashruucan waxaa ka mid ah ESP32 microcontroller iyo maktabadda BluetoothA2DPSink. ESP32 wuxuu ku qalabaysan yahay Digital-to-Analog Converter (DAC) oo ku dhisan kaas oo u oggolaanaya soo saarista maqalka iyada oo aan loo baahnayn qalab dheeri ah. Maktabadda BluetoothA2DPSink waxay fududaysaa habka loo dejiyo Bluetooth audio sink, taasoo kuu oggolaanaysa inaad ku hesho qulqulka maqalka Bluetooth-ka.

ESP32 wuxuu leeyahay GPIO pins badan oo loo qaabayn karo ujeedooyin kala duwan, oo ay ku jiraan soo saarista maqalka. Qaabayntayada, waxaan isticmaali doonaa GPIO25 kanaalka maqalka bidix iyo midig. Maktabaddu waxay maamushaa isku xirka Bluetooth iyo sii daadinta maqalka, taasoo ka dhigaysa mid fudud inaad diirada saarto codsiga halkii aad saari lahayd borotokoolka Bluetooth ee hoose.

Faahfaahinta Xaashida Xogta

Soo saaraha Espressif Systems
Nambarka qaybta ESP32-WROOM-32
Danabka Logic/IO 3.3 V
Danabka sahayda 3.0–3.6 V
Qulqulka soo saarista (kanaal kasta) Ilaa 40 mA
Hagaha soo noqnoqoshada PWM 1 KHz - 40 KHz
Xadka kulaylka 125 °C
Baakad QFN48
Qoraallo / noocyo kala duwan Qaabaynta kala duwan ayaa diyaar ah

 

  • GPIO pins caadi ah ayaa loo isticmaali karaa soo saarista maqalka.
  • Hubi sahayda korantada saxda ah (3.3 V) si looga fogaado waxyeelada.
  • Si joogto ah u cusboonaysii firmware-ka si loo wanaajiyo waxqabadka Bluetooth-ka.
  • Isticmaal anteenooyin dibadeed si loo kordhiyo baaxadda Bluetooth-ka.
  • Ka warqab xaddidnaanta soo saarista DAC; isticmaal DAC dibadeed si aad u hesho maqal tayo sare leh.

Tilmaamaha Xirista

esp32-39_bluetooth_audio_wiring

Si loo xiro ESP32 ee ciyaarista maqalka Bluetooth, ku bilow inaad ku xidho ESP32 isha korontada. Isticmaal fiilada USB si aad ugu xidho kombuyuutarkaaga, kaas oo siin doona korontada lagama maarmaanka ah. Marka xigta, ku xidh biinanka soo saarista maqalka: ku xidh kanaalka maqalka bidix GPIO25 iyo kanaalka maqalka midig isla biinka GPIO25. Waxaad isticmaali kartaa fiilooyinka jumper ee xiristaan.

Maadaama ESP32 uu leeyahay DAC ku dhisan, uma baahnid qaybo dheeri ah oo soo saarista maqalka ah. Si kastaba ha ahaatee, hubi in isku xirka dhulka uu yahay mid wadaag ah oo u dhexeeya ESP32 iyo qalab kasta oo maqal dibadeed oo aad isticmaali karto. Qaabayntan waxay kuu oggolaan doontaa inaad si toos ah ugu sii daadiso maqal ESP32-ka iyada oo loo marayo Bluetooth.

Tusaalooyinka Koodka & Sharaxaad

Qaybta koodka ee soo socota waxay bilaabaysaa Bluetooth A2DP sink waxayna dejinaysaa qaabaynta I2S ee ciyaarista maqalka.


// ==> Tusaale si loo isticmaalo DAC-ka ku dhisan ee 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");
}

Gudaha shaqada setup(), waxaan marka hore qaabaynaa dejinta I2S, anagoo cayimayna qaabka master-ka iyo awood-siinta DAC-ka ku dhisan. Heerka muunada waxaa loo dejiyay 44100 Hz, kaas oo ah heer caadi ah oo ciyaarista maqalka. Bluetooth A2DP sink ayaa markaas la bilaabay magac cayiman, taasoo u oggolaanaysa in qalabyada kale ee Bluetooth ay aqoonsadaan.

Shaqada loop() waxay ku hadhsan tahay madhan, maadaama maktabadda Bluetooth ay maamusho sii daadinta gadaasha. Waxaad hubin kartaa koodka dhammaystiran ee hoos ku shuban maqaalka si aad u hesho faahfaahin dheeri ah.

Muuujin / Waxa Lagu Filan Karaa

Marka dejintu dhammaystirto oo koodka la soo geliyo, daar ESP32-ka oo ka raadi qalabkaaga Bluetooth-ka ee shaqeeya magaca "ESP32_Bluetooth". Markaad ku xidhato, maqal kasta oo lagu ciyaaro qalabka ku xidhan waa inuu ku sii daadayo ESP32-ka. Waxaad filan kartaa soo saarista maqal tayo sare leh iyada oo loo marayo DAC-ka ilaa inta xiristaadu sax tahay oo sahayda korontadu deggan tahay.

Khaladaadka caadiga ah waxaa ka mid ah xirista qaldan ee biinanka soo saarista maqalka iyo sahayda korontada oo aan ku filnayn. Hubi in ESP32 si habboon loo shido oo xirista dhulku ay ammaan tahay. Haddii aad la kulanto arrimo, hubi fiidiyowga talooyinka xallinta (fiidiyowga 00:00).

Waqtiyada Fiidiyowga

  • 00:00 Bilow
  • 2:12 Hordhac
  • 5:22 Xirista la sharaxay
  • 7:51 Koodka Arduino la sharaxay
  • 10:37 Doorashada guddiga ESP32 iyo COM port ee Arduino IDE
  • 12:19 Ciyaarista muusigga iyada oo loo marayo ESP32 oo ka imanaya taleefanka gacanta
  • 13:30 Ku xirista amplifier ka awood badan oo dheeri ah ESP32-ka

Sawirro

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
Luqadda: 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() {
}

Kheyraadka & Tixraacyada

Faylasha📁

Fayl la'aan.