Search Code

ESP32 ټیوټوریل 39/55 - د ESP32 د بلوتوث میوزیک پلیر په توګه کارول | د SunFounder د ESP32 IoT زده کړې کټ

ESP32 ټیوټوریل 39/55 - د ESP32 د بلوتوث میوزیک پلیر په توګه کارول | د SunFounder د ESP32 IoT زده کړې کټ

په دې ټیوټوریل کې، موږ به وپلټو چې څنګه ESP32 د بلوتوت میوزیک پلیر په توګه وکاروو. ESP32 یو پیاوړی مایکروکنټرولر دی چې د وای-فای او بلوتوت وړتیاوې سره یوځای کوي، چې دا د IoT غوښتنلیکونو لپاره غوره انتخاب ګرځوي. موږ به د بلوتوت A2DP سنک څخه کار واخلو ترڅو آډیو ESP32 ته واستوو، کوم چې بیا د هغې په جوړ شوي DAC له لارې تولید کیدی شي.

audio_module

د دې ترلاسه کولو لپاره، موږ به ESP32 د اړینو کتابتونونو او تشکیلاتو سره تنظیم کړو ترڅو د بلوتوت آډیو سټریمینګ اداره کړو. د دې ټیوټوریل په پای کې، تاسو به یو کار کوونکی بلوتوت آډیو پلیر ولرئ چې د خپل سمارټ فون یا نورو بلوتوت وړ وسیلو څخه کنټرول کیدی شي. د لا زیات تفصیلي توضیح لپاره، ډاډ ترلاسه کړئ چې ویډیو وګورئ (په ویډیو کې په 00:00).

speaker_pic

هارډویر تشریح شوی

د دې پروژې اصلي برخې د ESP32 مایکروکنټرولر او د BluetoothA2DPSink کتابتون شامل دي. ESP32 د جوړ شوي ډیجیټل-ته-انالوګ کنورټر (DAC) سره سمبال دی چې د اضافي هارډویر پرته د آډیو تولید اجازه ورکوي. د BluetoothA2DPSink کتابتون د بلوتوت آډیو سنک د تنظیمولو پروسه ساده کوي، چې تاسو ته دا وړتیا درکوي چې د بلوتوت له لارې آډیو سټریمونه ترلاسه کړئ.

ESP32 ډیری GPIO پنونه لري چې د مختلفو موخو لپاره تنظیم کیدی شي، پشمول د آډیو تولید. زموږ په تنظیم کې، موږ به د کیڼ او ښي آډیو چینلونو لپاره GPIO25 وکاروو. کتابتون د بلوتوت اړیکې او آډیو سټریمینګ اداره کولو مسؤلیت په غاړه لري، چې دا اسانه کوي چې د اصلي بلوتوت پروتوکولونو پرځای په غوښتنلیک تمرکز وکړو.

ډیټاشیټ تفصیلات

جوړونکی 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) ډاډمن کړئ.
  • د بلوتوت ښه فعالیت لپاره فرم ویئر تازه وساتئ.
  • د بلوتوت د ښه ساحې لپاره بهرني انتنونه وکاروئ.
  • د DAC د تولید محدودیتونو څخه خبر اوسئ؛ د لوړ کیفیت آډیو لپاره بهرني DAC وکاروئ.

د تارونو لارښوونې

esp32-39_bluetooth_audio_wiring

د بلوتوت آډیو پلے بیک لپاره د ESP32 تارونو لپاره، لومړی ESP32 د برېښنا سرچینې سره وصل کړئ. د USB کیبل څخه کار واخلئ ترڅو یې خپل کمپیوټر سره وصل کړئ، کوم چې اړینه برېښنا چمتو کوي. بیا، د آډیو تولید پنونه وصل کړئ: د کیڼ آډیو چینل GPIO25 ته او د ښي آډیو چینل ورته GPIO25 پن ته وصل کړئ. تاسو کولی شئ د دې اړیکو لپاره د جمپر تارونه وکاروئ.

څرنګه چې ESP32 جوړ شوی DAC لري، تاسو د آډیو تولید لپاره اضافي برخو ته اړتیا نلرئ. په هرصورت، ډاډ ترلاسه کړئ چې د ځمکې اړیکه د ESP32 او هر بهرني آډیو تجهیزاتو ترمنځ مشترکه ده چې تاسو یې کاروئ. دا تنظیم به تاسو ته اجازه درکړي چې آډیو مستقیم د بلوتوت له لارې ESP32 ته واستوئ.

د کوډ مثالونه او لارښود

لاندې کوډ ټوټه د بلوتوت A2DP سنک پیل کوي او د آډیو پلے بیک لپاره د I2S تشکیلات تنظیموي.


// ==> د ESP32 د جوړ شوي DAC کارولو مثال

#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 ټاکل شوې، کوم چې د آډیو پلے بیک لپاره معیاري ده. د بلوتوت A2DP سنک بیا د مشخص شوي نوم سره پیل کیږي، چې دا اجازه ورکوي چې د نورو بلوتوت وسیلو لخوا وپیژندل شي.

د loop() فنکشن خالي پاتې کیږي، ځکه چې د بلوتوت کتابتون سټریمینګ په شالید کې اداره کوي. تاسو کولی شئ د نورو تفصیلاتو لپاره بشپړ کوډ وګورئ چې د مقالې لاندې بار شوی دی.

مظاهره / څه تمه وکړو

یوځل چې تنظیم بشپړ شي او کوډ اپلوډ شي، ESP32 چالان کړئ او د خپل بلوتوت وړ وسیلې په "ESP32_Bluetooth" نوم وسیله وپلټئ. د اړیکې وروسته، هر آډیو چې په وصل شوي وسیله پلے کیږي باید د ESP32 له لارې سټریم شي. تاسو کولی شئ د DAC له لارې د لوړ کیفیت آډیو تولید تمه وکړئ تر هغه چې اړیکې سمې وي او د برېښنا رسول باثباته وي.

عام ستونزې د آډیو تولید پنونو ناسم تارونه او د برېښنا ناکافي رسول شامل دي. ډاډ ترلاسه کړئ چې ESP32 په سمه توګه برېښنا لري او د ځمکې اړیکې خوندي دي. که تاسو کومې ستونزې سره مخ شئ، د ستونزو حل کولو لپاره ویډیو وګورئ (په ویډیو کې په 00:00).

د ویډیو وخت نښې

  • 00:00 پیل
  • 2:12 پیژندنه
  • 5:22 د تارونو تشریح
  • 7:51 د Arduino کوډ تشریح
  • 10:37 د Arduino IDE کې د ESP32 بورډ او COM پورټ انتخاب
  • 12:19 د موبایل څخه د ESP32 په کارولو سره میوزیک پلے کول
  • 13:30 د ESP32 سره د ډیر پیاوړي امپلیفایر اړیکه

Images

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

Resources & references

Files📁

No files available.