في هذا الدرس، سنستكشف كيفية استخدام ESP32 كجهاز تشغيل موسيقى عبر Bluetooth. يعد ESP32 وحدة تحكم دقيقة قوية تدمج قدرات Wi-Fi وBluetooth، مما يجعله خيارًا ممتازًا لتطبيقات إنترنت الأشياء. سنستخدم مكبر Bluetooth A2DP لبث الصوت إلى ESP32، والذي يمكن بعد ذلك إخراجه من خلال DAC المدمج فيه.
وحدة الصوت
لتحقيق ذلك، سنقوم بإعداد ESP32 مع المكتبات والتكوينات اللازمة للتعامل مع بث الصوت عبر البلوتوث. في نهاية هذا الدرس، سيكون لديك مشغل صوتي عبر البلوتوث يعمل ويمكن التحكم فيه من هاتفك الذكي أو غيره من الأجهزة المدعومة بالبلوتوث. للحصول على شرح أكثر تفصيلاً، تأكد من مشاهدة الفيديو (في الفيديو عند 00:00).
صورة المتحدث
أجهزة الكمبيوتر موضحة
تشمل المكونات الرئيسية لهذا المشروع وحدة التحكم الدقيقة ESP32 ومكتبة BluetoothA2DPSink. تأتي وحدة ESP32 مزودة بمحول رقمي إلى تماثلي (DAC) مدمج يتيح إخراج الصوت دون الحاجة إلى أي أجهزة إضافية. تبسط مكتبة BluetoothA2DPSink عملية إعداد مصدر صوت Bluetooth، مما يمكنك من استقبال تدفقات الصوت عبر Bluetooth.
يمتلك ESP32 عدة دبابيس GPIO يمكن تخصيصها لأغراض مختلفة، بما في ذلك إخراج الصوت. في إعدادنا، سنستخدم GPIO25 لقنوات الصوت اليسرى واليمنى. تتولى المكتبة إدارة الاتصال بلوتوث و بث الصوت، مما يسهل التركيز على التطبيق بدلاً من البروتوكولات الأساسية للبلوتوث.
تفاصيل ورقة البيانات
الصانع
إسبريسيف سيستمز
رقم الجزء
ESP32-WROOM-32
جهد المنطق/الإدخال والإخراج
٣.٣ فولت
جهد الإمداد
٣.٠-٣.٦ ف
تيار الإخراج (لكل قناة)
حتى 40 مللي أمبير
إرشادات تردد PWM
1 كيلوهرتز - 40 كيلوهرتز
الحدود الحرارية
125 °م
حزمة
QFN48
ملاحظات / متغيرات
تشكيلات متعددة متاحة
يمكن استخدام دبابيس GPIO الشائعة لإخراج الصوت.
تأكد من توفير مصدر طاقة مناسب (3.3 فولت) لتجنب التلف.
احتفظ ببرنامج النظام محدثًا لتحسين أداء البلوتوث.
استخدم هوائيات خارجية لزيادة نطاق البلوتوث.
كن على علم بالقيود المتعلقة بإخراج DAC؛ استخدم DACs خارجية للحصول على صوت بجودة أعلى.
تعليمات الأسلاك
esp32-39_bluetooth_audio_wiring
لربط ESP32 لتشغيل الصوت عبر البلوتوث، ابدأ بتوصيل ESP32 بمصدر طاقة. استخدم كابل USB لتوصيله بجهاز الكمبيوتر الخاص بك، والذي سيوفر الطاقة اللازمة. بعد ذلك، قم بتوصيل دبابيس إخراج الصوت: قم بتوصيل قناة الصوت اليسرى إلى GPIO25 وقناة الصوت اليمنى إلى نفس دبوس GPIO25. يمكنك استخدام أسلاك التوصيل لهذه الاتصالات.
نظرًا لأن ESP32 يحتوي على محول رقمي تماثلي مدمج، فلا تحتاج إلى أي مكونات إضافية لإنتاج الصوت. ومع ذلك، تأكد من أن اتصال الأرض مشترک بين الـ 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 هرتز، وهو معيار لتشغيل الصوت. ثم يتم بدء جهاز استقبال Bluetooth A2DP مع اسم محدد، مما يسمح له بأن يتم التعرف عليه بواسطة أجهزة Bluetooth الأخرى.
الloop()تظل الدالة فارغة، حيث يتولى مكتبة بلوتوث إدارة البث في الخلفية. يمكنك التحقق من الشيفرة الكاملة المحملة أسفل المقال لمزيد من التفاصيل.
عرض / ماذا تتوقع
بمجرد اكتمال الإعداد وتحميل الكود، قم بتشغيل ESP32 وابحث عن الجهاز المسمى "ESP32_Bluetooth" على جهازك المجهز بتقنية البلوتوث. عند الاتصال، يجب أن يتم بث أي صوت يتم تشغيله على الجهاز المتصل عبر ESP32. يمكنك توقع إخراج صوت عالي الجودة عبر DAC طالما أن الاتصالات صحيحة ومصدر الطاقة مستقر.
تشمل الأخطاء الشائعة توصيل أسلاك مخرج الصوت بشكل غير صحيح وعدم كفاية إمداد الطاقة. تأكد من أن ESP32 مزود بالطاقة بشكل صحيح وأن توصيلات الأرض متينة. إذا واجهت أي مشاكل، تحقق من الفيديو للحصول على نصائح لحل المشكلات (في الفيديو عند 00:00).
طوابع زمنية للفيديو
00:00 بدء
:12 مقدمة
5:22 شرح التوصيلات
شرح كود أردوينو 7:51
10:37 تحديد لوحة ESP32 و port COM في بيئة Arduino
12:19 تشغيل الموسيقى باستخدام ESP32 من الهاتف المحمول
13:30 توصيل مضخم أقوى بـ ESP32
الصور
esp32-39_bluetooth_audio_wiring
speaker_pic
audio_module
esp32-39_bluetooth_audio_wiring
speaker_pic
audio_module
840-ESP32 Tutorial 39/55- Arduino code for playing audio via bluetooth