- تثبيت الحزم المطلوبة لاتصالات البلوتوث:
- إقران الأجهزة مع Raspberry Pi عبر البلوتوث:
- مخطط الرسم البياني:
- التحكم في LED باستخدام تطبيق Android BlueTerm:
- شرح البرمجة:
يحظى Raspberry Pi بشعبية كبيرة في مشاريع إنترنت الأشياء نظرًا لقدرته السلسة على الاتصال اللاسلكي عبر الإنترنت. يحتوي Raspberry Pi 3 على شبكة Wi-Fi و Bluetooth مدمجة ، والبلوتوث هو بروتوكول اتصال لاسلكي شائع جدًا. لذلك سنقوم اليوم بالتحكم في Raspberry Pi GPIO Pin من خلال تطبيق Android باستخدام Bluetooth.
نحن هنا نستخدم Raspberry 2 Pi Model B الذي لا يحتوي على تقنية Bluetooth مدمجة ، لذلك نحن نستخدم دونجل USB Bluetooth بسيط. بصرف النظر عن ذلك ، نحتاج فقط إلى مقاوم (220R) ومصباح LED لإظهار تحكم GPIO. نحن هنا نستخدم بروتوكول RFCOMM Bluetooth للاتصال اللاسلكي.
تتبع البرمجة الخاصة بـ Bluetooth في Python نموذج برمجة المقبس ويتم إجراء الاتصالات بين أجهزة Bluetooth من خلال مقبس RFCOMM. RFCOMM (اتصالات الترددات الراديوية) هو بروتوكول Bluetooth الذي يوفر منافذ تسلسلية RS-232 مقلدة ويسمى أيضًا بمحاكاة المنفذ التسلسلي. يعتمد ملف تعريف منفذ Bluetooth التسلسلي على هذا البروتوكول. تحظى RFCOMM بشعبية كبيرة في تطبيقات Bluetooth بسبب دعمها الواسع وواجهة برمجة التطبيقات المتاحة للجمهور. إنه مرتبط ببروتوكول L2CAP.
استخدمنا أيضًا وحدة Bluetooth HC-06 في مشروعنا السابق: المصابيح التي يتم التحكم فيها بالصوت باستخدام Raspberry Pi. تحقق أيضًا من مشاريع Raspberry Pi السابقة جنبًا إلى جنب مع بعض مشاريع إنترنت الأشياء الجيدة.
تثبيت الحزم المطلوبة لاتصالات البلوتوث:
قبل البدء ، نحتاج إلى تثبيت بعض البرامج لإعداد اتصال Bluetooth في Raspberry Pi. يجب أن يكون لديك بطاقة ذاكرة مثبتة على Raspbian Jessie جاهزة مع Raspberry Pi. تحقق من هذه المقالة لتثبيت نظام التشغيل Raspbian وبدء استخدام Raspberry Pi. لذلك نحتاج الآن أولاً إلى تحديث Raspbian باستخدام الأوامر التالية:
sudo apt-get update sudo apt-get Upgrade
ثم نحتاج إلى تثبيت بعض الحزم المتعلقة بالبلوتوث:
sudo apt-get install blueman bluz
ثم أعد تشغيل Raspberry Pi:
sudo إعادة التشغيل
BlueZ هو مشروع مفتوح المصدر ومكدس بروتوكول Linux Bluetooth الرسمي. وهو يدعم جميع بروتوكولات Bluetooth الأساسية وأصبح الآن جزءًا من Linux Kernel الرسمي.
يوفر Blueman واجهة سطح المكتب لإدارة والتحكم في أجهزة Bluetooth.
أخيرًا ، نحتاج إلى مكتبة python للاتصال عبر Bluetooth حتى نتمكن من إرسال واستقبال البيانات من خلال RFCOMM باستخدام لغة Python:
سودو apt-get install python-bluetooth
قم أيضًا بتثبيت مكتبات دعم GPIO لـ Raspberry Pi:
sudo apt-get install python-rpi.gpio
لقد انتهينا الآن من تثبيت الحزم المطلوبة لاتصالات Bluetooth في Raspberry Pi.
إقران الأجهزة مع Raspberry Pi عبر البلوتوث:
من السهل جدًا إقران أجهزة Bluetooth ، مثل الهاتف المحمول ، مع Raspberry Pi. هنا قمنا بإقران هاتف Android الذكي الخاص بنا مع Raspberry Pi. لقد قمنا سابقًا بتثبيت BlueZ في Pi ، والذي يوفر أداة مساعدة لسطر الأوامر تسمى "bluetoothctl" لإدارة أجهزة Bluetooth الخاصة بنا. ولكن قبل ذلك ، قم بتوصيل USB Bluetooth dongle الخاص بك بـ Raspberry Pi وتحقق مما إذا كان قد تم اكتشافه أم لا ، باستخدام الأمر أدناه:
lsusb
افتح الآن الأداة المساعدة bluetoothctl عن طريق الأمر أدناه:
sudo bluetoothctl
يمكنك التحقق من جميع أوامر أداة bluetoothctl عن طريق كتابة "مساعدة" . في الوقت الحالي ، نحتاج إلى إدخال الأوامر أدناه بترتيب معين:
# power on # agent on # قابل للاكتشاف علي # pairable on # scan on
بعد آخر أمر "فحص" ، سترى جهاز البلوتوث (الهاتف المحمول) في القائمة. تأكد من تشغيل Bluetooth في هاتفك المحمول وأنه مرئي من خلال الأجهزة المجاورة. ثم انسخ عنوان MAC الخاص بجهازك وقم بإقرانه باستخدام الأمر المحدد:
زوج
ثم سيُطلب منك إدخال رمز المرور أو رقم التعريف الشخصي في وحدة التحكم الطرفية ، ثم اكتب رمز المرور هناك واضغط على إدخال. ثم اكتب نفس رمز المرور في هاتفك المحمول عندما يُطلب منك ذلك ، ويتم الآن إقرانك بنجاح مع Raspberry Pi. لقد أوضحنا أيضًا هذه العملية برمتها في مقطع الفيديو الخاص بنا المقدم في النهاية.
كما ذكرنا سابقًا ، يمكنك أيضًا استخدام واجهة سطح المكتب لإقران الهاتف المحمول. بعد تثبيت Blueman ، سترى أيقونة Bluetooth في الجانب الأيمن من سطح مكتب Raspberry Pi كما هو موضح أدناه ، حيث يمكنك بسهولة إجراء الاقتران.
مخطط الرسم البياني:
مخطط الدائرة بسيط للغاية ، لقد قمنا للتو بتوصيل مؤشر LED برقم التعريف الشخصي 40 (GPIO 21) الخاص بـ Raspberry Pi بمقاوم 220 أوم:
التحكم في LED باستخدام تطبيق Android BlueTerm:
الآن بعد إقران الهاتف المحمول ، نحتاج إلى تثبيت تطبيق Android للتواصل مع Raspberry Pi باستخدام محول Bluetooth التسلسلي. كما ذكرنا سابقًا ، يحاكي بروتوكول RFCOMM / SPP الاتصال التسلسلي عبر البلوتوث ، لذلك قمنا بتثبيت تطبيق BlueTerm الذي يدعم هذا البروتوكول.
يمكنك أيضًا استخدام أي تطبيق Bluetooth Terminal آخر يدعم الاتصال عبر مقبس RFCOMM.
الآن بعد تنزيل تطبيق BlueTerm وتثبيته ، قم بتشغيل برنامج Python المحدد أدناه من الجهاز وتوصيل جهاز raspberrypi المقترن من تطبيق BlueTerm في نفس الوقت.
بعد اتصال ناجح ، سترى متصلًا: raspberrypi في الزاوية اليمنى العليا من التطبيق كما هو موضح أدناه:
الآن يمكنك فقط إدخال "1" أو "0" من تطبيق BlueTerm لجعل دبوس GPIO HIGH و LOW على التوالي ، والذي بدوره يقوم بتشغيل وإيقاف مؤشر LED المتصل بهذا الدبوس. اضغط على "q" للخروج من البرنامج. يمكنك استخدام Google Voice Typing Keyboard للتحكم في GPIO باستخدام صوتك. تحقق من العرض الكامل في الفيديو المقدم في النهاية.
هذه هي الطريقة التي يمكنك بها التحكم لاسلكيًا في GPIO Pin باستخدام تطبيق Android عبر Bluetooth. تحقق أيضًا من كيفية استخدام Bluetooth مع Arduino.
شرح البرمجة:
برنامج Python للتحكم في Raspberry Pi GPIO باستخدام تطبيق Android بسيط للغاية ولا يحتاج إلى شرح. نحتاج فقط إلى معرفة القليل عن الكود المتعلق باتصال Bluetooth RFCOMM. نحتاج أولاً إلى استيراد مكتبة مقابس Bluetooth التي تمكننا من التحكم في Bluetooth بلغة Python ؛ لقد قمنا بتثبيت المكتبة لنفسه في القسم السابق.
استيراد بلوتوث
يوجد أدناه الرمز المسؤول عن اتصال Bluetooth:
server_socket = bluetooth.BluetoothSocket (bluetooth.RFCOMM) منفذ = 1 server_socket.bind ((""، port)) server_socket.listen (1) client_socket، address = server_socket.accept () print "Accepted connection from"، address while 1: البيانات = client_socket.recv (1024)
هنا يمكننا فهمها سطراً بسطر:
server_socket = bluetooth.BluetoothSocket (bluetooth.RFCOMM): إنشاء مقبس لاتصالات Bluetooth RFCOMM.
server_socket.bind (("" ، المنفذ): - يربط الخادم البرنامج النصي الموجود على المضيف '' بالمنفذ.
server_socket.listen (1) : يستمع الخادم لقبول اتصال واحد في كل مرة.
client_socket، address = server_socket.accept () : يقبل الخادم طلب اتصال العميل ويعين عنوان mac إلى العنوان المتغير ، ويعتبر client_socket هو مقبس العميل
data = client_socket.recv (1024): تلقي البيانات من خلال مقبس العميل client_socket وتخصيصها للبيانات المتغيرة. يمكن استقبال 1024 حرفًا كحد أقصى في المرة الواحدة.
أخيرًا بعد كل البرمجة ، أغلق اتصال العميل والخادم باستخدام الكود أدناه:
client_socket.close () server_socket.close ()
جميع الكودات الأخرى سهلة ولا تحتاج إلى شرح. تحقق من الكود الكامل أدناه. حاول تعديل هذا المشروع ويمكنك استخدامه للتحكم في العديد من الأشياء الأخرى لاسلكيًا ، مثل استخدام المرحلات ، يمكنك التحكم في الأجهزة المنزلية أو يمكنك أيضًا التحكم في سيارة روبوت من خلال هاتف android.