Search Code

Koyarwar ESP32 39/55 - Yin Amfani da ESP32 a matsayin Mai Kunna Kiɗa ta Bluetooth | Kayan Koyon IoT na SunFounder ESP32

Koyarwar ESP32 39/55 - Yin Amfani da ESP32 a matsayin Mai Kunna Kiɗa ta Bluetooth | Kayan Koyon IoT na SunFounder ESP32

A cikin wannan koyawa, za mu bincika yadda za a yi amfani da ESP32 a matsayin mai kunna kiɗan Bluetooth. ESP32 microcontroller ne mai ƙarfi wanda ya haɗa da damar Wi-Fi da Bluetooth, yana sa ya zama zaɓi mai kyau don aikace-aikacen IoT. Za mu yi amfani da Bluetooth A2DP sink don watsa sauti zuwa ESP32, wanda za a iya fitarwa ta hanyar DAC ɗin da aka gina a ciki.

audio_module

Don cim ma wannan, za mu saita ESP32 tare da ɗakunan karatu da tsarin da suka dace don sarrafa watsa sautin Bluetooth. A ƙarshen wannan koyawa, za ku sami mai kunna sautin Bluetooth mai aiki wanda za a iya sarrafa shi daga wayarku ta hannu ko wasu na'urori masu damar Bluetooth. Don ƙarin cikakken bayani, tabbatar da duba bidiyon (a cikin bidiyo a 00:00).

speaker_pic

Bayanin Kayan Aiki

Babban abubuwan da aka haɗa don wannan aikin sun haɗa da microcontroller na ESP32 da ɗakin karatu na BluetoothA2DPSink. ESP32 yana da na'urar Digital-to-Analog Converter (DAC) da aka gina a ciki wanda ke ba da damar fitar da sauti ba tare da wani ƙarin kayan aiki ba. Ɗakin karatu na BluetoothA2DPSink yana sauƙaƙa tsarin saita Bluetooth audio sink, yana ba ku damar karɓar rafukan sauti ta Bluetooth.

ESP32 yana da fil ɗin GPIO da yawa waɗanda za a iya tsara su don dalilai daban-daban, gami da fitar da sauti. A cikin tsarinmu, za mu yi amfani da GPIO25 don tashoshin sauti na hagu da dama. Ɗakin karatu yana kula da sarrafa haɗin Bluetooth da watsa sauti, yana sauƙaƙa mayar da hankali kan aikace-aikacen maimakon ƙa'idodin Bluetooth na asali.

Cikakkun Bayanan Datasheet

Mai ƙera Espressif Systems
Lambar sashi ESP32-WROOM-32
Wutar Logic/IO 3.3 V
Wutar samarwa 3.0–3.6 V
Fitar da wutar (kowane tashar) Har zuwa 40 mA
Jagorar mitar PWM 1 KHz - 40 KHz
Iyakokin zafi 125 °C
Kunshin QFN48
Bayanan kula / bambance-bambance Akwai tsare-tsare daban-daban

 

  • Ana iya amfani da fil ɗin GPIO na yau da kullun don fitar da sauti.
  • Tabbatar da samar da wutar da ta dace (3.3 V) don guje wa lalacewa.
  • Ci gaba da sabunta firmware don ingantaccen aikin Bluetooth.
  • Yi amfani da eriya na waje don ƙara kewayon Bluetooth.
  • Yi hankali da iyakokin fitar da DAC; yi amfani da DAC na waje don ingantaccen sauti.

Umarnin Haɗin Waya

esp32-39_bluetooth_audio_wiring

Don haɗa ESP32 don kunna sautin Bluetooth, fara da haɗa ESP32 zuwa tushen wutar. Yi amfani da kebul na USB don haɗa shi zuwa kwamfutarka, wanda zai ba da wutar da ake buƙata. Na gaba, haɗa fil ɗin fitar da sauti: haɗa tashar sautin hagu zuwa GPIO25 da tashar sautin dama zuwa fil ɗin GPIO25 ɗaya. Kuna iya amfani da wayoyin jumper don waɗannan haɗin.

Tun da ESP32 yana da DAC da aka gina a ciki, ba ku buƙatar ƙarin abubuwan haɗin don fitar da sauti. Koyaya, tabbatar da cewa haɗin ƙasa ya kasance gama gari tsakanin ESP32 da duk wani kayan sauti na waje da kuke amfani da shi. Wannan tsarin zai ba ku damar watsa sauti kai tsaye zuwa ESP32 ta Bluetooth.

Misalan Lamba & Bayani

Lambar da ke gaba tana fara Bluetooth A2DP sink kuma tana saita tsarin I2S don kunna sauti.


// ==> Misali don amfani da DAC da aka gina a cikin 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");
}

A cikin aikin setup(), da farko muna tsara saitunan I2S, muna ƙayyade yanayin a matsayin master kuma muna kunna DAC da aka gina a ciki. An saita ƙimar samfurin zuwa 44100 Hz, wanda yake daidai don kunna sauti. Sannan an fara Bluetooth A2DP sink tare da sunan da aka ƙayyade, yana ba da damar wasu na'urorin Bluetooth su gane shi.

Aikin loop() ya kasance mara komai, saboda ɗakin karatu na Bluetooth yana sarrafa watsa a baya. Kuna iya duba cikakken lambar da aka ɗora a ƙasan labarin don ƙarin bayani.

Nuni / Abin da za ku Yi Tsammani

Da zarar an gama saitin kuma an ɗora lambar, kunna ESP32 kuma ku nemo na'urar mai suna "ESP32_Bluetooth" akan na'urar ku mai damar Bluetooth. Bayan haɗawa, duk sautin da aka kunna akan na'urar da aka haɗa ya kamata ya watsa ta ESP32. Kuna iya tsammanin ingantaccen fitar da sauti ta DAC muddin haɗin suna daidai kuma samar da wutar yana da ƙarfi.

Matsalolin gama gari sun haɗa da rashin daidaiton haɗin fil ɗin fitar da sauti da rashin isasshen wutar. Tabbatar da cewa ESP32 yana da wutar da ta dace kuma haɗin ƙasa suna da aminci. Idan kun haɗu da wasu matsaloli, duba bidiyon don shawarwarin warwarewa (a cikin bidiyo a 00:00).

Lokutan Bidiyo

  • 00:00 Fara
  • 2:12 Gabatarwa
  • 5:22 Bayanin haɗin waya
  • 7:51 Bayanin lambar Arduino
  • 10:37 Zaɓin board ɗin ESP32 da tashar COM a cikin Arduino IDE
  • 12:19 Kunna kiɗa ta amfani da ESP32 daga wayar hannu
  • 13:30 Haɗa ƙarin amplifier mai ƙarfi zuwa ESP32

Hotuna

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

Albarkatun da kuma shafukan da za a duba

Fayiloli📁

Babu fayiloli da ake da su.