تخيل أنه يمكنك التحكم في الأجهزة الإلكترونية في منزلك من أي مكان داخل المنزل ، فقط باستخدام هاتفك الذكي. في هذا المشروع ، سنستخدم تقنية Bluetooth اللاسلكية للتحكم في الأجهزة الإلكترونية المنزلية من خلال هاتف Android. يبلغ مدى البلوتوث من 10 إلى 15 مترًا ، بحيث يمكنك تشغيل وإيقاف تشغيل أي جهاز إلكتروني ضمن النطاق. قمنا أيضًا بتطوير سيارة لعبة يتم التحكم فيها بواسطة هاتف Android ، باستخدام وحدة Bluetooth و Arduino.
هنا استخدمنا متحكم 8051 مع وحدة Bluetooth ، لتلقي البيانات لاسلكيًا ، المرسلة من هاتف Android. بحيث يمكن لهذا المتحكم الدقيق تشغيل وإيقاف تشغيل الأجهزة المنزلية وفقًا لذلك.
المكونات الرئيسية
- 8051 متحكم
- وحدة بلوتوث HC05
- تناوب
- ULN 2003
- مصباح
- مالك
- الأسلاك
- IC 7805
- هاتف Android
- تطبيق وحدة تحكم Bluetooth تطبيق Android
- 10 فائق التوهج مكثف
- مكثف 1000 فائق التوهج
- 10 كيلو المقاوم
- 1 كيلو المقاوم
- مزود الطاقة
وحدة بلوتوث:
تتكون وحدة HC-05 Bluetooth من شيئين أحدهما هو وحدة واجهة Bluetooth التسلسلية ومحول Bluetooth. تُستخدم وحدة Bluetooth التسلسلية لتحويل المنفذ التسلسلي إلى Bluetooth.
كيف تعمل وحدة بلوتوث؟
يمكنك استخدام وحدة Bluetooth مباشرة بعد الشراء من السوق ، لأنه لا توجد حاجة لتغيير أي إعداد لوحدة Bluetooth. معدل الباود الافتراضي لوحدة Bluetooth الجديدة هو 9600 بت في الثانية. تحتاج فقط إلى توصيل rx و tx بوحدة التحكم أو المحول التسلسلي وإعطاء مصدر طاقة منظم 5 فولت تيار مستمر للوحدة.
تحتوي وحدة Bluetooth على وضعين أحدهما هو الوضع الرئيسي والثاني هو وضع الرقيق. يمكن للمستخدم ضبط أي من الوضعين باستخدام بعض أوامر AT. حتى يمكن للمستخدم ضبط إعداد الوحدة باستخدام أمر AT. فيما يلي بعض استخدامات الأوامر:
بادئ ذي بدء ، يحتاج المستخدم إلى الدخول في وضع AT بمعدل باود 38400 بت في الثانية عن طريق الضغط على زر EN في وحدة Bluetooth أو بإعطاء مستوى عالي عند دبوس EN. ملاحظة: يجب أن تنتهي كافة الأوامر بـ \ r \ n (0x0d و 0x0a) أو ENTER KEY من لوحة المفاتيح.
بعد ذلك ، إذا أرسلت AT إلى الوحدة النمطية ، فستستجيب الوحدة بـ OK
AT → اختبار القيادة
AT + ROLE = 0 ← اختيار الوضع التابع
AT + ROLE = 1 ← اختيار الوضع الرئيسي
AT + NAME = xyz → تعيين اسم البلوتوث
AT + PSWD = xyz → تعيين كلمة المرور
في + UART =
على سبيل المثال. في + UART = 9600،0،0
وصف دبوس مقياس التسارع:
- STATE → فتح
- Rx → دبوس الاستلام التسلسلي
- TX → دبوس الإرسال التسلسلي
- GND → الأرض
- Vcc → + 5 فولت تيار مستمر
- AR → للدخول في وضع AT
شرح العمل:
في هذا المشروع ، استخدمنا متحكم 8051 للتحكم في العملية الكاملة لهذا المشروع. وتستخدم وحدة بلوتوث للتحكم في الأجهزة المنزلية لاسلكيًا. سيتم تشغيل وإيقاف الأجهزة المنزلية عندما يلمس المستخدم الزر في تطبيق Bluetooth للجوال في هاتف Android المحمول. لتشغيل هذا المشروع ، نحتاج أولاً إلى تنزيل تطبيق Bluetooth من متجر Google play. يمكننا استخدام أي تطبيق Bluetooth يمكنه إرسال البيانات باستخدام Bluetooth. فيما يلي بعض أسماء التطبيقات التي يمكن استخدامها:
- بلوتوث Spp pro
- تحكم بلوتوث
بعد تثبيت التطبيق ، تحتاج إلى فتحه ثم البحث عن جهاز Bluetooth وتحديد جهاز HC-05 Bluetooth. ثم قم بتكوين المفاتيح.
هنا في هذا المشروع ، استخدمنا تطبيق وحدة تحكم Bluetooth.
- قم بتنزيل وتثبيت وحدة تحكم Bluetooth.
- تم تشغيل بلوتوث المحمول.
- افتح الآن تطبيق وحدة تحكم Bluetooth
- اضغط على scan
- حدد جهاز Bluetooth المطلوب (وحدة Bluetooth HC-05).
- الآن قم بتعيين المفاتيح عن طريق الضغط على الأزرار الموجودة على الشاشة
لضبط المفاتيح ، نحتاج إلى الضغط على "زر ضبط" وتعيين المفتاح وفقًا للصورة الواردة أدناه:
بعد تحديد المفاتيح اضغط موافق.
يمكنك أن ترى في الصورة أعلاه أن هناك 9 أزرار يكون فيها الصف الأول للتحكم في المروحة ، والثاني للتحكم في الضوء والأخير للتحكم في التلفزيون. يعني أن أزرار التشغيل والإيقاف في الصف الأول تستخدم لتشغيل وإيقاف تشغيل المروحة ، وأزرار الصف الثاني مخصصة للضوء والثالث للتلفزيون. لقد استخدمنا ثلاث لمبات بألوان مختلفة بدلاً من التليفزيون والمروحة لغرض العرض التوضيحي.
الآن ، عندما نلمس أي زر في تطبيق وحدة تحكم Bluetooth ، يرسل هاتف Android قيمة إلى وحدة Bluetooth ، بعد تلقي هذه القيمة ، ترسل وحدة Bluetooth القيمة المستلمة إلى وحدة التحكم الدقيقة ثم يقرأها الميكروكونترولر ويقارنها بالقيمة المحددة مسبقًا. في حالة حدوث أي تطابق ، يقوم المتحكم الدقيق بإجراء عملية نسبية. سيتم تنفيذ نفس العملية في كل مرة عند الضغط على الزر.
الآن ، عندما يقوم المستخدم بلمس زر "Fan On" في تطبيق وحدة تحكم Bluetooth ، يتلقى المتحكم الدقيق الرقم "1" عبر وحدة Bluetooth ثم يقوم جهاز التحكم بتبديل "تشغيل" المروحة باستخدام برنامج تشغيل ومرحل. وعندما يقوم المستخدم بلمس زر "Fan Off" في تطبيق وحدة تحكم Bluetooth ، فإن وحدة التحكم الدقيقة تستقبل الرقم "2" عبر وحدة Bluetooth ثم يقوم جهاز التحكم بإيقاف تشغيل المروحة باستخدام برنامج تشغيل ومرحل.
وبالمثل ، يتم إرسال أرقام 3،4،5،6 بواسطة هاتف Android ، عند لمس زر Light On و Light Off و TV On و TV Off على التوالي:
زر |
البيانات |
عملية |
تشغيل المروحة |
1 |
تم تشغيل المروحة |
مروحة معطلة |
2 |
المروحة متوقفة |
الضوء يعمل |
3 |
تم تشغيل الضوء |
الإضائة مطفئة |
4 |
تم إطفاء الضوء |
تشغيل التلفزيون |
5 |
تشغيل التلفزيون |
إيقاف تشغيل التلفزيون |
6 |
تم إيقاف تشغيل التلفزيون |
مخطط الدائرة وشرحها
اتصالات الدوائر لهذا المشروع بسيطة للغاية. تتصل دبابيس Rx و Tx بوحدة Bluetooth مباشرة بدبابيس Tx و Rx الخاصة بالمتحكم الدقيق. يتم استخدام ثلاث مرحلات 5 فولت كمفتاح لتشغيل وإيقاف تشغيل الأجهزة المنزلية التي تعمل على أنابيب التيار المتردد. ويستخدم سائق التتابع ULN2003 لقيادة المرحلات. يتم توصيل المروحة والضوء والتلفزيون في P2.1 و P2.2 و P2.3 عبر المرحلات وسائق الترحيل. يتم استخدام مذبذب بلوري 11.0592 ميجا هرتز في هذه الدائرة لتوليد إشارة الساعة للميكروكونترولر. ويستخدم منظم الجهد 5 فولت LM7805 لتوفير 5 فولت للدائرة بأكملها.
شرح البرنامج:
في هذا البرنامج ، قمنا أولاً بتضمين ملف الرأس وتحديد المدخلات ودبابيس الإخراج والمتغيرات.
#تضمن
بعد ذلك قمنا بإنشاء وظيفة للتأخير.
تأخير باطل (وقت int) {unsigned int i، j؛ لـ (أنا = 0 ؛ أنا
هنا لدينا بعض الوظائف التي استخدمناها في برنامجنا. في هذا قمنا بتكوين معدل الباود 9600 بت في الثانية بتردد كريستالي 11.0592 ميجا هرتز.
باطل كتابة مسلسلة (حرف بايت) {SBUF = بايت ؛ بينما (! TI) ؛ TI = 0 ؛ } void Serialprintln (char * p) {while (* p) {Serialwrite (* p)؛ ص ++ ؛ } كتابة المسلسل (0x0d) ؛ } Serialbegin () باطل {TMOD = 0x20 ؛ SCON = 0x50 ؛ TH1 = 0xfd ؛ TR1 = 1 ؛ }
بعد ذلك ، في البرنامج الرئيسي ، قمنا بتهيئة UART وراقبنا سجل SBUF لتلقي البيانات. ثم تتم مطابقة البيانات ومقارنتها بالقيم المحددة مسبقًا وتم تنفيذ العملية النسبية.
باطل رئيسي () {P2 = 0x00 ؛ Serialbegin () ؛ Serialprintln ("النظام جاهز…") ؛ تأخير (50) ؛ بينما (1) {while (! RI) ؛ شارين = SBUF ؛ str = شارين ؛ RI = 0 ؛ إذا (str == '1') {Fan = 1 ؛ Serialprintln ("Fan ON") ؛ تأخير (50) ؛ } else if (str == '2') {Fan = 0 ؛ Serialprintln ("Fan OFF") ؛ تأخير (50) ؛ }
هذه هي الطريقة التي يمكننا بها إنشاء نظام كامل للمنزل ويمكننا توصيل جميع أجهزة التيار المتردد بالمتحكم 8051 باستخدام المرحلات. وهذا بلوتوث تسيطر عليها نظام التشغيل الآلي للمنزل يمكن تشغيلها من الهاتف الذكي.