در این آموزش، ما بررسی خواهیم کرد که چگونه از ESP32 به عنوان یک پخشکننده موسیقی بلوتوث استفاده کنیم. ESP32 یک میکروکنترلر قدرتمند است که تواناییهای Wi-Fi و بلوتوث را ترکیب میکند و آن را گزینهای عالی برای برنامههای اینترنت اشیا میسازد. ما از یک سینک بلوتوث A2DP برای پخش صدا به ESP32 استفاده خواهیم کرد که سپس میتواند از طریق DAC داخلی خود خروجی بگیرد.
ماجیول صوتی
برای دستیابی به این هدف، ما ESP32 را با کتابخانهها و پیکربندیهای لازم برای مدیریت پخش صوتی بلوتوث تنظیم خواهیم کرد. در پایان این آموزش، شما یک پخشکننده صوتی بلوتوثی خواهید داشت که میتوانید از طریق گوشی هوشمند یا دستگاههای دیگر با قابلیت بلوتوث آن را کنترل کنید. برای توضیحات بیشتر، حتماً ویدیو را مشاهده کنید (در ویدیو در ۰۰:۰۰).
عکس سخنران
سختافزار توضیح داده شده
اجزای اصلی این پروژه شامل میکروکنترلر ESP32 و کتابخانه BluetoothA2DPSink است. ESP32 به یک مبدل دیجیتال به آنالوگ (DAC) داخلی مجهز است که اجازه میدهد بدون هیچ سختافزار اضافی، خروجی صوتی داشته باشید. کتابخانه BluetoothA2DPSink روند راهاندازی یک سینک صوتی بلوتوث را سادهسازی میکند و به شما امکان دریافت جریانات صوتی از طریق بلوتوث را میدهد.
ESP32 دارای چندین پایه GPIO است که میتوان آنها را برای مقاصد مختلف، از جمله خروجی صوتی، پیکربندی کرد. در تنظیمات ما، از GPIO25 برای کانالهای صوتی چپ و راست استفاده خواهیم کرد. کتابخانه مدیریت اتصال بلوتوث و پخش صوتی را بر عهده میگیرد و امکان تمرکز بیشتر بر روی برنامه را به جای پروتکلهای پایهای بلوتوث فراهم میکند.
جزئیات برگه مشخصات
تولیدکننده
سیستمهای اسپرسف
شماره قطعه
ESP32-WROOM-32
ولتاژ منطق/ورودی-خروجی
۳.۳ ولت
ولتاژ تغذیه
۳.۰-۳.۶ ولت
جریان خروجی (به ازای هر کانال)
تا ۴۰ میلی آمپر
راهنمایی فرکانس PWM
۱ کیلوهرتز - ۴۰ کیلوهرتز
محدودیتهای حرارتی
۱۲۵ درجه سانتیگراد
بسته
QFN48
یادداشتها / انواع
پیکربندیهای مختلف موجود است
پایههای GPIO معمولی میتوانند برای خروجی صوتی استفاده شوند.
از تأمین منبع تغذیه مناسب (۳.۳ ولت) اطمینان حاصل کنید تا از آسیب جلوگیری شود.
بوتافزار را برای بهبود عملکرد بلوتوث بهروز نگهدارید.
از آنتنهای خارجی برای افزایش دامنه بلوتوث استفاده کنید.
به محدودیتهای خروجی DAC توجه داشته باشید؛ برای صدای با کیفیت بالاتر از DACهای خارجی استفاده کنید.
دستورالعملهای سیمکشی
esp32-39_bluetooth_audio_wiring
برای اتصال ESP32 به پخش صدای بلوتوث، ابتدا ESP32 را به منبع تغذیه وصل کنید. از یک کابل USB برای اتصال آن به کامپیوتر خود استفاده کنید که برق لازم را تأمین خواهد کرد. سپس، پایههای خروجی صدا را متصل کنید: کانال صدای چپ را به GPIO25 و کانال صدای راست را به همان پایه GPIO25 متصل کنید. میتوانید از سیمهای جامپر برای این اتصالات استفاده کنید.
از آنجا که ESP32 دارای یک DAC داخلی است، نیازی به هیچ قطعه اضافی برای خروجی صوتی ندارید. با این حال، اطمینان حاصل کنید که اتصال زمین بین ESP32 و هر تجهیزات صوتی خارجی که ممکن است استفاده کنید، مشترک باشد. این تنظیم به شما اجازه میدهد تا به طور مستقیم صدا را از طریق بلوتوث به ESP32 منتقل کنید.
نمونههای شِفر (کود) و راهنمایی
شِفر (کود) زیر، درگاه Bluetooth A2DP را راهاندازی کرده و پیکربندی I2S را برای پخش صدا تنظیم میکند.
// ==> Example to use built in DAC of 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");
}
در setup()در این تابع، ابتدا تنظیمات I2S را پیکربندی میکنیم و حالت را بهعنوان مستر مشخص کرده و DAC داخلی را فعال میکنیم. نرخ نمونه به 44100 هرتز تنظیم میشود که استاندارد برای پخش صدا است. سپس سینک بلوتوث A2DP با نام مشخصی راهاندازی میشود تا توسط دستگاههای بلوتوث دیگر شناسایی شود.
متن:loop()تابع خالی میماند، زیرا کتابخانه بلوتوث به طور پسزمینه به جریاندهی رسیدگی میکند. میتوانید شِفر (کود) کامل بارگذاریشده در زیر مقاله را برای جزئیات بیشتر بررسی کنید.
نمایشگاه / چه چیزی باید انتظار داشت
پس از اینکه راهاندازی کامل شد و شِفر (کود) بارگذاری شد، ESP32 را روشن کنید و در دستگاه بلوتوثی خود به دنبال دستگاهی با نام "ESP32_Bluetooth" بگردید. پس از اتصال، هر صدایی که بر روی دستگاه متصل پخش شود باید از طریق ESP32 پخش شود. میتوانید انتظار خروجی صدای با کیفیت بالا را از طریق DAC داشته باشید به شرطی که اتصالات صحیح باشد و منبع تغذیه پایدار باشد.
دریافتهای رایج شامل سیمکشی نادرست پایههای خروجی صدا و تأمین ناکافی برق است. مطمئن شوید که ESP32 بهدرستی تغذیه میشود و اتصالات زمین ایمن هستند. اگر با هرگونه مشکلی مواجه شدید، ویدئو را برای نکات troubleshooting بررسی کنید (در ویدئو در 00:00).
زمانبندی ویدئو
۰۰:۰۰ شروع
مقدمه 2:12
5:22 توضیحات سیمکشی
شِفر (کود) آردوینو توضیح داده شده 7:51
انتخاب برد ESP32 و پورت COM در ایدئوی آردوینو 10:37
12:19 پخش موسیقی با استفاده از ESP32 از تلفن همراه