في السابق ، قمنا بتغطية العديد من أنواع التشغيل الآلي للمنزل باستخدام تقنيات مختلفة مثل أتمتة المنزل القائم على DTMF ، وأتمتة المنزل المتحكم فيه بواسطة الكمبيوتر باستخدام Arduino ، وأتمتة المنزل التي يتم التحكم فيها عن طريق Bluetooth. في هذا المشروع ، نستخدم الاتصالات اللاسلكية القائمة على الأشعة تحت الحمراء للتحكم في الأجهزة المنزلية. في هذا المشروع ، يتم استخدام Arduino للتحكم في العملية بأكملها. نرسل بعض الأوامر إلى نظام التحكم باستخدام جهاز التحكم عن بعد IR TV / DVD / MP3 للتحكم في أجهزة التيار المتردد المنزلية. بعد تلقي إشارة من جهاز التحكم عن بعد بالأشعة تحت الحمراء ، يرسل Arduino إشارة ذات صلة إلى المرحلات المسؤولة عن تشغيل أو إيقاف تشغيل الأجهزة المنزلية من خلال برنامج تشغيل الترحيل.
شرح العمل:
العمل في هذا المشروع سهل الفهم. عندما نضغط على أي زر من IR Remote ، فإن جهاز التحكم عن بعد يرسل رمزًا في شكل قطار من النبضات المشفرة باستخدام تردد تعديل 38 كيلو هرتز. يتم تلقي هذه النبضات بواسطة مستشعر TSOP1738 وقراءتها بواسطة Arduino ثم تلقى فك رموز Arduino قطار النبض إلى قيمة سداسية ويقارن تلك القيمة التي تم فك تشفيرها مع القيمة السداسية العشرية المحددة مسبقًا للزر المضغوط. في حالة حدوث أي تطابق ، يقوم Arduino بإجراء عملية نسبية ويتم عرض النتيجة المقابلة أيضًا على شاشة LCD مقاس 16 × 2 باستخدام الأوامر المناسبة. هنا في هذا المشروع ، استخدمنا 3 لمبات بألوان مختلفة ، للإيضاح الذي يشير إلى المروحة والضوء والتلفزيون.
هناك العديد من أنواع IR Remote متوفرة لأجهزة مختلفة ولكن معظمها يعمل على إشارة تردد حوالي 38 كيلو هرتز. هنا في هذا المشروع نتحكم في الأجهزة المنزلية باستخدام جهاز التحكم عن بعد الخاص بـ IR TV. للكشف عن إشارة IR عن بعد ، نستخدم TSOP1738 IR Receiver. يمكن أن يستشعر مستشعر TSOP1738 إشارة تردد 38 كيلو هرتز. يمكن تغطية عمل جهاز التحكم عن بعد IR و TSOP1738 بالتفصيل في هذه المقالة: IR Transmitter and Receiver
المكونات:
- اردوينو UNO
- TSOP1738
- IR TV / DVD Remote
- ULN 2003
- مرحلات 5 فولت
- لمبة مع حامل
- توصيل الأسلاك
- لوح الخبز
- 16x2 LCD
- مزود الطاقة
- PVT
- IC 7805
هنا في هذا المشروع ، استخدمنا زر رقم 7 و 8 و 9 لجهاز التحكم عن بعد بالأشعة تحت الحمراء للتحكم في المروحة والضوء والتلفزيون على التوالي ، ويستخدم زر التشغيل / الإيقاف (زر الطاقة) لتشغيل وإيقاف تشغيل جميع الأجهزة في وقت واحد.
لقد استخدمنا هنا طريقة التبديل بين تشغيل وإيقاف تشغيل الجهاز المنزلي الفردي. طريقة التبديل لا شيء سوى الحصول على ذلك سواء تم الضغط على الزر حتى عدد المرات أو عدد المرات الفردية. تم العثور على هذا عن طريق الحصول على التذكير بعد تقسيمه على 2 (i٪ 2) ، إذا كان هناك بعض التذكير ، فسيتم تشغيل الجهاز وإذا كان التذكير 0 فسيتم إيقاف تشغيله. لنفترض أن المفتاح 7 مضغوط على جهاز التحكم عن بُعد ، ثم يرسل جهاز التحكم عن بُعد إشارة إلى Arduino من خلال جهاز استقبال الأشعة تحت الحمراء TSOP. ثم يقوم Arduino بفك تشفيره وتخزين القيمة التي تم فك تشفيرها في متغير النتائج. الآن يحتوي متغير النتائج على قيمة سداسية عشرية 0x1FE00FF ، بعد مطابقته مع القيمة السداسية المحددة مسبقًا للمفتاح 7 (انظر الصورة أعلاه) ، يقوم Arduino بتشغيل المروحة. الآن عندما نضغط على نفس المفتاح (المفتاح 7) مرة أخرى ، يرسل IR نفس الرمز. يحصل Arduino على نفس الكود ويتم مطابقته مع نفس الكود كما كان من قبل ولكن هذه المرة تم إيقاف تشغيل Fan بسبب تبديل البت (i٪ 2).
فك إشارات IR Remote Control باستخدام Arduino:
فيما يلي قائمة بأكواد الإخراج التي تم فك ترميزها عن بُعد من نوع DVD NEC:
إذا كنت لا تعرف الإخراج الذي تم فك ترميزه لجهاز التحكم عن بعد الخاص بك ، فيمكن العثور عليه بسهولة ، فقط اتبع الخطوات التالية:
- قم بتنزيل مكتبة IR عن بعد من هنا
- قم بفك ضغطه ووضعه في مجلد مكتبات Arduino. ثم أعد تسمية المجلد المستخرج إلى IRremote.
- قم بتشغيل البرنامج أدناه من Arduino الخاص بك وافتح نافذة Serial Monitor في Arduino IDE. الآن اضغط على أي زر IR Remote وشاهد الإخراج السداسي المشفر المقابل في نافذة Serial Monitor.
* IRremote: IRrecvDemo - يوضح استلام أكواد IR باستخدام IRrecv * يجب توصيل كاشف / مزيل تشكيل بالأشعة تحت الحمراء بمدخل RECV_PIN. * الإصدار 0.1 يوليو ، 2009 * حقوق الطبع والنشر 2009 لـ Ken Shirriff * http://arcfn.com * / #include
البرنامج أعلاه مأخوذ من مجلد "أمثلة" مكتبة IRremote ، يمكنك التحقق من المزيد من الأمثلة لمعرفة المزيد حول استخدام جهاز التحكم عن بعد IR. هذه هي الطريقة التي فكنا بها إخراج IR عن بعد.
سيركويت دسكريبتيون:
تعتبر توصيلات هذه الدائرة بسيطة للغاية هنا ، حيث يتم استخدام شاشة عرض بلورية سائلة لعرض حالة الأجهزة المنزلية المتصلة مباشرة بـ arduino في وضع 4 بت. تتصل دبابيس بيانات LCD وهي RS و EN و D4 و D5 و D6 و D7 برقم دبوس اردوينو الرقمي 6 ، 7 ، 8 ، 9 ، 10 ، 11. ودبوس إخراج TSOP1738 متصل مباشرة برقم التعريف الرقمي 14 (A) اردوينو. ويتم توصيل دبوس Vcc بجهد +5 فولت ودبوس GND متصل بالطرف الأرضي للدائرة. يتم استخدام سائق التتابع المسمى ULN2003 أيضًا لقيادة المرحلات. تستخدم مرحلات 5 فولت SPDT 3 للتحكم في LIGHT و FAN و TV. ويتم توصيل المرحلات بمنفذ اردوينو رقم 3 و 4 و 5 من خلال برنامج تشغيل المرحل ULN2003 للتحكم في LIGHT و FAN و TV على التوالي.
وصف الكود:
في جزء البرمجة من هذا المشروع أولاً وقبل كل شيء في البرمجة ، نضمن مكتبة للتحكم عن بعد بالأشعة تحت الحمراء والتي تتوفر بسهولة في Google. وتحديد الدبوس والإعلان عن المتغيرات.
#تضمن
ثم نقوم بتضمين رأس لشاشة الكريستال السائل ثم نقوم بتعريف دبابيس البيانات والتحكم لشاشات الكريستال السائل والأجهزة المنزلية.
#تضمن
بعد ذلك ، نحتاج إلى تهيئة شاشة LCD وإعطاء اتجاه الدبوس المستخدم للمروحة والضوء والتلفزيون.
إعداد باطل () {Serial.begin (9600) ؛ lcd.begin (16.2) ؛ pinMode (مروحة ، الإخراج) ؛ pinMode (الضوء ، الإخراج) ؛ pinMode (التلفزيون ، الإخراج) ؛
كما أوضحنا سابقًا ، يتم استخدام جزء من الكود أدناه لمقارنة القيمة السداسية العشرية المستلمة بالكود السداسي العشري المحدد بالفعل لهذا الزر. إذا تطابقت ، فسيتم تنفيذ عملية نسبية باستخدام الوظائف المناسبة الواردة في الكود.
حلقة باطلة () {if (irrecv.decode (& results)) {Serial.println (results.value، HEX)؛ تأخير (100) ؛ lcd.setCursor (0،0) ؛ lcd.print ("Fan Light TV") ؛ إذا (results.value == 0x1FE00FF) {i ++ ؛ كثافة العمليات س = أنا٪ 2 ؛ digitalWrite (مروحة ، x) ؛