كيفية إعداد وبرمجة ESP32 للتواصل مع هاتف ذكي يعمل بنظام Android عبر البلوتوث

Kyfyt A Dad Wbrmjt Esp32 Lltwasl M Hatf Dhky Y Ml Bnzam Android Br Alblwtwth



ESP32 عبارة عن لوحة تحكم دقيقة تتمتع بمجموعة واسعة من الإمكانات. يحتوي على وحدات Wi-Fi وBluetooth مدمجة. باستخدام هاتين الوحدتين، يمكنك برمجة ESP32 لاسلكيًا. مع هذا، لا داعي للقلق بشأن توصيلات الأسلاك الطويلة للتحكم في الأجهزة الطرفية ESP32.

في هذه المقالة، سنقوم بتوصيل لوحة ESP32 بهاتف Android وتوصيل البيانات عبر البلوتوث. علاوة على ذلك، سوف نتحكم في مؤشر LED المتصل بمنافذ GPIO الخاصة بـ ESP32 مباشرة من خلال الهاتف الذكي الذي يعمل بنظام Android.

محتويات:







ما هو ESP32 بلوتوث LE

ESP32 عبارة عن لوحة تحكم دقيقة تدعم كلاً من البلوتوث الكلاسيكي والبلوتوث منخفض الطاقة المعروف أيضًا باسم البلوتوث الذكي. إن تقنية BLE أو تقنية Bluetooth الذكية مخصصة للاتصالات الموفرة للطاقة أو مصممة للاتصالات قصيرة المدى أو عمليات نقل البيانات الصغيرة.



تتيح وظيفة BLE الخاصة بـ ESP32 إمكانية العمل كخادم أو عميل في اتصالات Bluetooth. يمكنه التعامل مع مهام مثل خدمات القراءة والكتابة. يمكنه أيضًا تشفير الاتصالات وإنشاء اتصالات ملف تعريف المنفذ التسلسلي (SPP) لنقل البيانات في وضع المرور UART-BLE. يدعم ESP32 Bluetooth بروتوكولات 4.2، مما يعني أنه متوافق مع طبقات مختلفة مثل الطبقة المادية (PHY) وطبقة الارتباط (LL). كما أن لديها دعمًا لواجهة وحدة التحكم المضيفة (HCI) وغيرها.



تحقق من جدول الفرق بين ESP32 Classic وBLE Bluetooth.





ميزة بلوتوث كلاسيكي بلوتوث منخفض الطاقة (BLE)
نوع الاتصال التواصل المستدام في الاتجاهين انفجارات متقطعة للبيانات في اتجاه واحد في المقام الأول
نطاق التشغيل يمكن أن تصل إلى 100 متر تعمل عادة تحت 100 متر
استهلاك الطاقة يستهلك ما يصل إلى 1 واط تتراوح من 10 مللي واط إلى 500 مللي واط
سرعة النقل تتراوح معدلات نقل البيانات من 1 إلى 3 ميجابت في الثانية يدعم 125 كيلوبت في الثانية إلى 2 ميجابت في الثانية
وقت الاستجابة الكمون حوالي 100 مللي ثانية استجابة سريعة مع زمن وصول يصل إلى 6 مللي ثانية
الدعم الصوتي مجهزة بنقل الصوت يفتقر إلى وظيفة نقل الصوت

تحقق من مقالات ESP32 Bluetooth هذه للحصول على المزيد من المعلومات بداخلها.

كيفية برمجة ESP32 للتواصل عبر البلوتوث مع الهاتف الذكي الذي يعمل بنظام Android

لبرمجة ESP32 حتى يتمكن من الاتصال بهاتف Android باستخدام بروتوكول Bluetooth، يجب عليك إعداد مكتبة ESP32 Bluetooth التسلسلية. للقيام بذلك، يجب أن يكون لديك إعداد Arduino IDE مع لوحة ESP32 مثبتة.



بعد ضبط ESP32 Bluetooth، يجب عليك تثبيت تطبيق Bluetooth التسلسلي لنظام Android. سيتيح لك ذلك إرسال التعليمات من هاتف Android إلى ESP32 باستخدام اتصال Bluetooth التسلسلي.

دعونا نلقي نظرة فاحصة على كل خطوة من هذه الخطوات:

خطوات توصيل ESP32 Bluetooth بهاتف Android

لبرمجة لوحة ESP32 للاتصال عبر البلوتوث، اتبع الخطوات التالية:

الخطوة 1: تثبيت لوحة ESP32 في Arduino IDE

لتثبيت ESP32 على Arduino IDE، ما عليك سوى اتباع الدليل الوارد في هذه المقالة.

تركيب لوحة ESP32 في Arduino IDE

بعد التثبيت يمكن توصيل لوحة ESP32 وبرمجتها باستخدام Arduino IDE.

الخطوة 2: قم بتحميل رمز بلوتوث ESP32

بمجرد تثبيت لوحة ESP32، سترى مكتبات مختلفة مثبتة مسبقًا وأمثلة لها في Arduino IDE. كل هذه المكتبات مرتبطة بلوحة ESP32. للاتصال التسلسلي عبر Bluetooth، سنستخدم ESP32 بلوتوثSerial.h كود مثال المكتبة.

لفتح كود المثال، افتح Arduino IDE وانتقل إلى: ملف > أمثلة > BluetoothSerial > SerialtoSerialBT

لفتح رمز المثال هذا، تأكد من تحديد لوحة ESP32.

بعد فتح كود المثال، سترى الكود التالي في نافذة Arduino IDE الخاصة بك:

// مرحبًا بكم في Linuxhint

#تشمل 'BluetoothSerial.h'

//#define USE_PIN // قم بإلغاء التعليق إذا كنت تريد رقم التعريف الشخصي أثناء الاقتران
مقدار ثابت شار * دبوس = '1234' ; // تحديد رقم تعريف شخصي مخصص للاقتران

سلسلة اسم الجهاز = 'ESP32' ;

#if !محدد(CONFIG_BT_ENABLED) || !محدد(CONFIG_BLUEDROID_ENABLED)
#خطأ البلوتوث غير مفعل! قم بتشغيل 'make Menuconfig' لتمكينه
#إنهاء إذا

#if !محدد(CONFIG_BT_SPP_ENABLED)
#error البلوتوث التسلسلي مفقود أو غير ممكّن. وهي متاحة فقط لشريحة ESP32.
#إنهاء إذا

بلوتوث المسلسل التسلسليBT ;

فارغ يثبت ( ) {
مسلسل. يبدأ ( 115200 ) ;
SerialBT. يبدأ ( اسم الجهاز ) ; // اسم جهاز البلوتوث
مسلسل. printf ( 'الجهاز ' % س ' لقد بدءت. ابدأ بإقران جهازك! ' , اسم الجهاز. c_str ( ) ) ;
//Serial.printf('تم بدء تشغيل الجهاز '%s' بعنوان MAC %s.\nابدأ في إقرانه بالبلوتوث!\n'، devices_name.c_str(), SerialBT.getMacString());
#ifdef USE_PIN
SerialBT. setPin ( دبوس ) ;
مسلسل. println ( 'استخدام رقم التعريف الشخصي' ) ;
#إنهاء إذا
}

فارغ حلقة ( ) {
لو ( مسلسل. متاح ( ) ) {
SerialBT. يكتب ( مسلسل. يقرأ ( ) ) ;
}
لو ( SerialBT. متاح ( ) ) {
مسلسل. يكتب ( SerialBT. يقرأ ( ) ) ;
}
تأخير ( عشرين ) ;
}

بعد تحميل الكود ستظهر لك الرسالة التالية على الشاشة. توضح هذه الرسالة أن لوحة ESP32 الخاصة بك جاهزة للإقران.

الخطوة 3: شرح الكود

بدأ الكود بتضمين المكتبات الضرورية والتحقق من توفر Bluetooth. كما يقوم أيضًا بإعداد متغيرات لاسم جهاز Bluetooth ورمز PIN.

في ال يثبت() وظيفة، يتم تعريف اتصال الباود التسلسلي ويتم تهيئة جهاز Bluetooth باسمه. يمكن تعيين رمز PIN مخصص للمصادقة أثناء الاقتران.

ال حلقة() تتحقق الوظيفة باستمرار من البيانات الموجودة على الاتصالات التسلسلية واتصالات Bluetooth. وهذا يسمح له بإنشاء اتصال ثنائي الاتجاه بين ESP32 وجهاز Bluetooth مقترن.

الخطوة 4: تثبيت تطبيق Android

بمجرد تحميل الرمز، فإن الخطوة التالية هي تثبيت وتكوين تطبيق Android للاتصال عبر Bluetooth.

افتح متجر Play وقم بتثبيت محطة بلوتوث التسلسلية طلب.

بعد التثبيت، افتح إعدادات Bluetooth الخاصة بالهاتف الذكي وقم بتوصيل هاتفك بـ ESP32 Bluetooth. إذا قمت بتحديد رقم PIN في كود Arduino IDE، فيجب عليك إدخال رقم PIN وإلا فسيتم الاتصال مباشرة.

الآن افتح تطبيق Serial Bluetooth وحدد الأجهزة خيار.

من القائمة المفتوحة حديثًا، حدد جهاز ESP32. تعرض هذه القائمة كافة أجهزة Bluetooth النشطة حاليًا.

كما ترون، ESP32 Bluetooth متصل بهاتفك الذكي الذي يعمل بنظام Android.

لاختبار الاتصال، سنقوم بإرسال سلسلة. لقد أرسلت هنا سلسلتين مختلفتين.

ستلاحظ أيضًا أنه سيتم عرض نفس السلسلتين على محطة Arduino IDE.

الآن دعنا نتقدم خطوة أخرى ونتحكم في جهاز طرفي خارجي مثل LED باستخدام ESP32 Bluetooth من خلال الهاتف الذكي الذي يعمل بنظام Android.

الخطوة 5: التحكم في مؤشر LED باستخدام هاتف Android عبر البلوتوث

للتحكم في مصباح LED باستخدام ESP32 وAndroid Bluetooth، قم أولاً بتعديل الكود أعلاه وتحديد دبوس GPIO الخاص بـ LED. بعد ذلك، يجب عليك ضبط القيم لتشغيل وإيقاف تشغيل مؤشر LED.

قم بتحميل الكود أدناه للمضي قدمًا.

#include // تضمين مكتبة اتصالات Bluetooth التسلسلية

#define LED_PIN 15 // تحديد دبوس LED

بلوتوث المسلسل التسلسليBT ; // قم بإنشاء كائن BluetoothSerial
بايت BT_INP ; // متغير لتخزين مدخلات البلوتوث

// تحقق من تمكين Bluetooth وBluedroid في تكوين SDK
#if !محدد(CONFIG_BT_ENABLED) || !محدد(CONFIG_BLUEDROID_ENABLED)
#خطأ البلوتوث غير ممكّن. قم بتشغيل 'make Menuconfig' لتمكينه.
#إنهاء إذا

فارغ يثبت ( ) {
​ وضع الدبوس ( LED_PIN , انتاج ) ; // قم بتعيين دبوس LED كمخرج
مسلسل. يبدأ ( 115200 ) ;
SerialBT. يبدأ ( 'ESP32' ) ; // تهيئة البلوتوث بالاسم 'ESP32'
مسلسل. println ( 'جهاز Bluetooth جاهز للإقران.' ) ; // أشر إلى أن البلوتوث جاهز
}

فارغ حلقة ( ) {
// تحقق مما إذا كانت هناك أي بيانات متاحة للقراءة من البلوتوث
لو ( SerialBT. متاح ( ) ) {
BT_INP = SerialBT. يقرأ ( ) ; // اقرأ البايت الوارد من البلوتوث
مسلسل. يكتب ( BT_INP ) ; // صدى البايت المقروء إلى الشاشة التسلسلية
}

// تحقق من بيانات البلوتوث المستلمة واضبط حالة LED
لو ( BT_INP == '1' ) {
الكتابة الرقمية ( LED_PIN , عالي ) ; // قم بتشغيل مؤشر LED إذا تم استلام الرقم '1'.
} آخر لو ( BT_INP == '0' ) {
الكتابة الرقمية ( LED_PIN , قليل ) ; // قم بإيقاف تشغيل مؤشر LED إذا تم استلام '0'.
}
}

هذا الرمز مخصص لوحدة التحكم الدقيقة ESP32 للتحكم في LED باستخدام البلوتوث. ويحتوي على مكتبة للاتصالات عبر البلوتوث. بعد ذلك، يقوم بتعريف دبوس LED وإعداد Bluetooth باستخدام جهاز يسمى ESP32. تقرأ الحلقة الرئيسية بيانات Bluetooth وتقوم بتشغيل مؤشر LED أو إيقاف تشغيله بناءً على الأمر المستلم (1 للتشغيل، 0 للإيقاف).

مخطط الرسم البياني

مخطط الدائرة بسيط، مع وجود مؤشر LED متصل عند الدبوس د15 من ESP32. يمكنك تحديد أي GPIO آخر للتحكم في LED.

متعلق ب: مرجع Pinout ESP32 - الدليل النهائي

المعدات

في الأجهزة، سوف تحتاج إلى لوحة التجارب، ولوحة ESP32، وLED. قم بتوصيل ESP32 بالنظام وقم بتحميل البرنامج عليه.

أرسل الآن 1 و0 من تطبيق الاتصالات التسلسلية عبر هاتف Android عبر Bluetooth.

سترى نفس الإدخال على محطة Arduino IDE المستلمة من هاتف Android.

انتاج |

بمجرد إرسال القيمة العالية أو 1، سيتم تشغيل مؤشر LED، وبالمثل عندما ترسل القيمة المنخفضة، سيتم إيقاف تشغيل مؤشر LED.

قم بتعيين زر مخصص

يمكنك أيضًا تعيين زر مخصص داخل تطبيق Serial Bluetooth. على سبيل المثال، يمكن إنشاء زر القيم العالية والمنخفضة. بهذه الطريقة، لن تضطر إلى كتابة القيم يدويًا. بدلا من ذلك، كل ما عليك فعله هو الضغط على زر الاختصار، وسيقوم بتنفيذ التعليمات التي قمت بتعيينها.

ملحوظة: لفتح إعدادات الزر، اضغط لفترة طويلة على الزر.

لتعيين قيمة الزر HIGH، حدد الإعدادات التالية.

تشابه قيمة الزر LOW، تحتاج إلى تحديد الإعدادات أدناه.

لقد نجحنا في توصيل لوحة ESP32 بهاتف Android باستخدام البلوتوث. الآن يمكنك إنشاء العديد من المشاريع باستخدامه. مثلاً، يمكنك التحكم في أجهزتك المنزلية باستخدام ESP32 Bluetooth من خلال دائرة التتابع.

متعلق ب: التتابع مع ESP32 باستخدام Arduino IDE

خاتمة

ESP32 عبارة عن لوحة تحكم دقيقة متقدمة مزودة بإمكانيات Wi-Fi وBluetooth. تساعدك هاتان الوحدتان المدمجتان على تصميم مشاريع متقدمة والتحكم في الأجهزة الطرفية لاسلكيًا. وبالمثل، يمكنك توصيل ESP32 بهاتف Android وإجراء عمليات مختلفة. للقيام بذلك، ستحتاج إلى تثبيت تطبيق Bluetooth Serial Android. بمجرد التثبيت، افتح رمز المثال لـ ESP32 Bluetooth وقم بتحميله على اللوحة الخاصة بك. بمجرد تحميل الكود، يمكنك إقرانه باللوحة الخاصة بك من خلال هاتف Android.