Search Code

ESP32 سبق 39/55 - ESP32 کو بلوٹوتھ میوزک پلیئر کے طور پر استعمال کرنا | سن فاؤنڈر کا ESP32 IoT لرننگ کٹ

ESP32 سبق 39/55 - ESP32 کو بلوٹوتھ میوزک پلیئر کے طور پر استعمال کرنا | سن فاؤنڈر کا ESP32 IoT لرننگ کٹ

اس ٹیوٹوریل میں، ہم دریافت کریں گے کہ ESP32 کو بطور بلوٹوتھ میوزک پلیئر کیسے استعمال کیا جائے۔ ESP32 ایک طاقتور مائیکروکنٹرولر ہے جو وائی فائی اور بلوٹوتھ صلاحیتوں کو یکجا کرتا ہے، جو اسے IoT ایپلیکیشنز کے لیے ایک بہترین انتخاب بناتا ہے۔ ہم بلوٹوتھ A2DP سنک استعمال کریں گے تاکہ آڈیو کو ESP32 تک سٹریم کیا جا سکے، جسے پھر اس کے بلٹ ان DAC کے ذریعے آؤٹ پٹ کیا جا سکتا ہے۔

آڈیو ماجیول

اس کو حاصل کرنے کے لیے، ہم ESP32 کو ضروری لائبریریوں اور کنفیگریشنز کے ساتھ ترتیب دیں گے تاکہ بلوٹوتھ آڈیو سٹریمنگ کو سنبھالا جا سکے۔ اس ٹیوٹوریل کے اختتام تک، آپ کے پاس ایک کام کرنے والا بلوٹوتھ آڈیو پلیئر ہوگا جسے آپ اپنے اسمارٹ فون یا دیگر بلوٹوتھ فعال آلات سے کنٹرول کر سکتے ہیں۔ مزید تفصیلی وضاحت کے لیے، ویڈیو ضرور دیکھیں (ویڈیو میں 00:00 پر)۔

اسپیکر تصویر

ہارڈویئر کی وضاحت

اس پروجیکٹ کے اہم اجزاء میں ESP32 مائیکروکنٹرولر اور BluetoothA2DPSink لائبریری شامل ہیں۔ ESP32 ایک بلٹ ان ڈیجیٹل سے اینالاگ کنورٹر (DAC) سے لیس ہے جو بغیر کسی اضافی ہارڈویئر کے آڈیو آؤٹ پٹ کی اجازت دیتا ہے۔ BluetoothA2DPSink لائبریری بلوٹوتھ آڈیو سنک قائم کرنے کے عمل کو آسان بناتی ہے، جس سے آپ بلوٹوتھ پر آڈیو سٹریمز وصول کر سکتے ہیں۔

ESP32 میں متعدد GPIO پن ہیں جنہیں مختلف مقاصد کے لیے ترتیب دیا جا سکتا ہے، بشمول آڈیو آؤٹ پٹ۔ ہماری ترتیب میں، ہم بائیں اور دائیں آڈیو چینلز کے لیے GPIO25 استعمال کریں گے۔ لائبریری بلوٹوتھ کنکشن اور آڈیو سٹریمنگ کے انتظام کا خیال رکھتی ہے، جس سے بنیادی بلوٹوتھ پروٹوکولز کے بجائے ایپلیکیشن پر توجہ مرکوز کرنا آسان ہو جاتا ہے۔

ڈیٹاشیٹ تفصیلات

مینوفیکچرر Espressif Systems
پارٹ نمبر ESP32-WROOM-32
لاجک/آئی او وولٹیج 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 سے زیادہ طاقتور ایمپلیفائر جوڑنا

تصاویر

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
زبان: 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() {
}

وسائل اور حوالہ جات

فائلیں📁

کوئی فائلیں دستیاب نہیں ہیں۔