- تثبيت الحزم المطلوبة لاتصالات البلوتوث:
- إقران الأجهزة مع Raspberry Pi عبر البلوتوث:
- مخطط الرسم البياني:
- التحكم في جهاز التيار المتردد باستخدام تطبيق Android BlueTerm:
- شرح البرمجة:
يحظى Raspberry Pi بشعبية كبيرة في مشاريع إنترنت الأشياء نظرًا لقدرته السلسة على الاتصال اللاسلكي عبر الإنترنت. يحتوي Raspberry Pi 3 على شبكة Wi-Fi و Bluetooth مدمجة ، والبلوتوث هو بروتوكول اتصال لاسلكي شائع جدًا. لذلك سنقوم اليوم بالتحكم في الأجهزة المنزلية من خلال الهواتف الذكية باستخدام Raspberry Pi 3 والبلوتوث.
نحن هنا نستخدم Raspberry Pi 3 الذي يحتوي على تقنية Bluetooth مدمجة ، لذلك لا نحتاج إلى استخدام أي دونجل USB Bluetooth خارجي. بصرف النظر عن ذلك ، نحتاج فقط إلى وحدات الترحيل لمشروع أتمتة المنزل اللاسلكي هذا. نحن هنا نستخدم بروتوكول RFCOMM Bluetooth للاتصال اللاسلكي.
تتبع البرمجة الخاصة بـ Bluetooth في Python نموذج برمجة المقبس ويتم إجراء الاتصالات بين أجهزة Bluetooth من خلال مقبس RFCOMM. RFCOMM (اتصالات الترددات الراديوية) هو بروتوكول Bluetooth الذي يوفر منافذ تسلسلية RS-232 مقلدة ويسمى أيضًا بمحاكاة المنفذ التسلسلي. يعتمد ملف تعريف منفذ Bluetooth التسلسلي على هذا البروتوكول. تحظى RFCOMM بشعبية كبيرة في تطبيقات Bluetooth بسبب دعمها الواسع وواجهة برمجة التطبيقات المتاحة للجمهور. إنه مرتبط ببروتوكول L2CAP.
إذا كان لديك Raspberry Pi 2 ، فأنت بحاجة إما إلى استخدام وحدة بلوتوث خارجية أو وحدة بلوتوث HC-06. تحقق من مشاريعنا السابقة لاستخدام أجهزة Bluetooth الخارجية هذه: التحكم في Raspberry Pi GPIO باستخدام تطبيق Android عبر البلوتوث ومصابيح LED التي يتم التحكم فيها بالصوت باستخدام 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 الخاصة بنا.
افتح الآن الأداة المساعدة bluetoothctl عن طريق الأمر أدناه:
sudo bluetoothctl
يمكنك التحقق من جميع أوامر أداة bluetoothctl عن طريق كتابة "مساعدة" . في الوقت الحالي ، نحتاج إلى إدخال الأوامر أدناه بترتيب معين:
# power on # agent on # قابل للاكتشاف علي # pairable on # scan on
بعد آخر أمر "فحص" ، سترى جهاز البلوتوث (الهاتف المحمول) في القائمة. تأكد من تشغيل Bluetooth في هاتفك المحمول وأنه مرئي من خلال الأجهزة المجاورة. ثم انسخ عنوان MAC الخاص بجهازك وقم بإقرانه باستخدام الأمر المحدد:
زوج
ثم سيُطلب منك إدخال رمز المرور أو رقم التعريف الشخصي في وحدة التحكم الطرفية ، ثم اكتب رمز المرور هناك واضغط على إدخال. ثم اكتب نفس رمز المرور في هاتفك المحمول عندما يُطلب منك ذلك ، ويتم الآن إقرانك بنجاح مع Raspberry Pi. لقد أوضحنا أيضًا هذه العملية برمتها في الفيديو الوارد في البرنامج التعليمي السابق للتحكم في GPIO. هنا رابط يوتيوب المباشر.
كما ذكرنا سابقًا ، يمكنك أيضًا استخدام واجهة سطح المكتب لإقران الهاتف المحمول. بعد تثبيت Blueman ، سترى أيقونة Bluetooth في الجانب الأيمن من سطح مكتب Raspberry Pi كما هو موضح أدناه ، حيث يمكنك بسهولة إجراء الاقتران.
مخطط الرسم البياني:
مخطط الدائرة لأتمتة المنزل التي يتم التحكم فيها عن طريق البلوتوث القائمة على Raspberry Pi بسيط للغاية ، لقد قمنا للتو بتوصيل دبوس إشارة الإدخال الخاص بوحدة الترحيل برقم PIN 40 (GPIO 21) من Raspberry Pi واثنين من الدبوس (Vcc و GND لوحدة الترحيل) إلى Pin 2 و 6 من Raspberry Pi 3. ثم قمنا بتوصيل مصباح AC CFL بالترحيل كما هو موضح في مخطط الدائرة:
إذا كنت جديدًا على Relay وتريد معرفة المزيد عن Relay ووصلاته بجهاز التيار المتردد ، فتحقق من هذه المقالة.
التحكم في جهاز التيار المتردد باستخدام تطبيق Android BlueTerm:
الآن بعد إقران الهاتف المحمول ، نحتاج إلى تثبيت تطبيق Android للتواصل مع Raspberry Pi باستخدام محول Bluetooth التسلسلي ، حتى نتمكن من التحكم في دبابيس GPIO الخاصة بـ Raspberry Pi. كما ذكرنا سابقًا ، يحاكي بروتوكول RFCOMM / SPP الاتصال التسلسلي عبر البلوتوث ، لذلك قمنا بتثبيت تطبيق BlueTerm الذي يدعم هذا البروتوكول.
يمكنك أيضًا استخدام أي تطبيق Bluetooth Terminal آخر يدعم الاتصال عبر مقبس RFCOMM.
الآن بعد تنزيل تطبيق BlueTerm وتثبيته ، قم بتشغيل برنامج Python المحدد أدناه من الجهاز وتوصيل جهاز raspberrypi المقترن من تطبيق BlueTerm في نفس الوقت.
بعد اتصال ناجح ، سترى متصلًا: raspberrypi في الزاوية اليمنى العليا من التطبيق كما هو موضح أدناه:
الآن يمكنك فقط إدخال "1" أو "0" من تطبيق BlueTerm لجعل دبوس GPIO HIGH و LOW على التوالي ، والذي بدوره يقوم بتشغيل وحدة الترحيل المتصلة بهذا الدبوس ، والتي تتحكم بشكل أكبر في لمبة التيار المتردد المتصلة بـ Relay. اضغط على "q" للخروج من البرنامج. يمكنك استخدام Google Voice Typing Keyboard للتحكم في GPIO باستخدام صوتك. تحقق من العرض الكامل في الفيديو المقدم في النهاية.
هذه هي الطريقة التي يمكنك بها التحكم لاسلكيًا في جهاز التيار المتردد باستخدام تطبيق Android عبر البلوتوث. تحقق أيضًا من كيفية استخدام 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 أو يمكنك استخدام صوتك للتحكم في الأضواء.
تحقق أيضًا من العديد من أنواع مشاريع أتمتة المنزل باستخدام تقنيات مختلفة ووحدات تحكم دقيقة مثل: