قبلاً انواع بسیاری از اتوماسیونهای خانگی را با استفاده از فناوریهای مختلف مانند اتوماسیون خانگی مبتنی بر DTMF ، اتوماسیون خانگی با کنترل رایانه با استفاده از آردوینو ، اتوماسیون خانگی با کنترل بلوتوث پوشش دادهایم . در این پروژه از ارتباطات بی سیم مبتنی بر IR برای کنترل لوازم خانگی استفاده می کنیم. در این پروژه از آردوینو برای کنترل کل فرآیند استفاده می شود. ما با استفاده از ریموت IR TV/DVD/MP3 برای کنترل لوازم خانگی AC دستوراتی را به سیستم کنترل ارسال می کنیم. آردوینو پس از دریافت سیگنال از ریموت IR، سیگنال مربوطه را به رله هایی که وظیفه روشن یا خاموش کردن لوازم خانگی را از طریق درایور رله بر عهده دارند ارسال می کند.
توضیح کار:
کار این پروژه به راحتی قابل درک است. هنگامی که هر دکمه ای از راه دور مادون قرمز را فشار می دهیم ، ریموت کدی را به شکل قطاری از پالس های کدگذاری شده با استفاده از فرکانس تعدیل کننده 38 کیلوهرتز ارسال می کند. این پالس ها توسط سنسور TSOP1738 دریافت می شوند و توسط آردوینو خوانده می شوند و سپس آردوینو قطار پالس دریافتی را به مقدار هگز رمزگشایی می کند و آن مقدار رمزگشایی شده را با مقدار هگز از پیش تعریف شده دکمه فشرده مقایسه می کند. در صورت بروز هرگونه تطابق، آردوینو عملیات نسبی را انجام می دهد و نتیجه مربوطه نیز با استفاده از دستورات مناسب در LCD 2×16 نمایش داده می شود. در اینجا در این پروژه از 3 لامپ با رنگ های مختلف برای نمایش استفاده کرده ایم که نشان دهنده فن، نور و تلویزیون است.
انواع مختلفی از کنترل از راه دور IR برای دستگاه های مختلف موجود است، اما اکثر آنها بر روی سیگنال فرکانس حدود 38 کیلوهرتز کار می کنند. در این پروژه ما لوازم خانگی را با استفاده از ریموت IR TV کنترل می کنیم. برای تشخیص سیگنال از راه دور IR، از گیرنده مادون قرمز TSOP1738 استفاده می کنیم. این سنسور TSOP1738 می تواند سیگنال فرکانس 38 کیلوهرتز را حس کند. عملکرد ریموت IR و TSOP1738 را می توان در این مقاله به تفصیل پوشش داد: فرستنده و گیرنده IR
اجزاء:
- آردوینو UNO
- TSOP1738
- تلویزیون IR/DVD از راه دور
- ULN2003
- رله 5 ولت
- لامپ با نگهدارنده
- سیم های اتصال
- تخته نان
- LCD 16×2
- منبع تغذیه
- PVT
- آی سی 7805
در این پروژه از دکمه های 7، 8 و 9 عددی ریموت مادون قرمز به ترتیب برای کنترل فن، نور و تلویزیون و دکمه روشن/خاموش (دکمه پاور) برای روشن و خاموش کردن همه وسایل به طور همزمان استفاده شده است.
در اینجا ما از روش ضامن [حتی عجیب و غریب] برای روشن و خاموش کردن تک لوازم خانگی استفاده کرده ایم. روش جابجایی چیزی نیست جز این که به این نتیجه برسیم که چه دکمه زوج تعداد دفعات فشار داده شود و چه تعداد دفعات فرد. این با دریافت یادآور پس از تقسیم آن بر 2 (i%2) پیدا می شود، اگر یادآوری وجود داشته باشد، دستگاه روشن می شود و اگر یادآوری 0 باشد، خاموش می شود. فرض کنید کلید 7 روی ریموت فشار داده شده است سپس ریموت از طریق گیرنده TSOP IR سیگنالی را به آردوینو می فرستد. سپس آردوینو آن را رمزگشایی کرده و مقدار رمزگشایی شده را در متغیر نتایج ذخیره می کند. اکنون متغیر نتایج دارای مقدار هگز 0x1FE00FF است، پس از تطبیق آن با مقدار هگز از پیش تعریف شده کلید 7 (تصویر بالا را ببینید)، آردوینو فن را روشن می کند. حالا وقتی دوباره همان کلید (کلید 7) را فشار می دهیم، IR همان کد را می فرستد. آردوینو همان کد را دریافت می کند و با همان کد قبلی مطابقت دارد، اما این بار فن به دلیل جابجایی بیت [EVEN ODD] (i%2) خاموش شد.
رمزگشایی سیگنال های کنترل از راه دور IR با استفاده از آردوینو:
در اینجا لیستی از کدهای خروجی رمزگشایی شده از راه دور نوع DVD NEC آمده است:
اگر خروجی رمزگشایی شده برای ریموت IR خود را نمیدانید، میتوانید آن را به راحتی پیدا کنید، فقط این مراحل را دنبال کنید:
- کتابخانه راه دور IR را از اینجا دانلود کنید https://github.com/z3t0/Arduino-IRremote .
- آن را از حالت فشرده خارج کرده و در پوشه «Libraries» آردوینو خود قرار دهید. سپس نام پوشه استخراج شده را به IRremote تغییر دهید.
- برنامه زیر را از آردوینو خود اجرا کنید و پنجره Serial Monitor را در Arduino IDE باز کنید. اکنون هر دکمه IR Remote را فشار دهید و خروجی هگز رمزگشایی شده مربوطه را در پنجره Serial Monitor مشاهده کنید.
* IRremote: IRrecvDemo - demonstrates receiving IR codes with IRrecv * An IR detector/demodulator must be connected to the input RECV_PIN. * Version 0.1 July, 2009 * Copyright 2009 Ken Shirriff * http://arcfn.com */ #include <IRremote.h> int RECV_PIN = 11; IRrecv irrecv(RECV_PIN); decode_results results; void setup() { Serial.begin(9600); irrecv.enableIRIn(); // Start the receiver } void loop() { if (irrecv.decode(&results)) { Serial.println(results.value, HEX); irrecv.resume(); // Receive the next value } delay(100); }
برنامه فوق از پوشه نمونه های کتابخانه IRremote گرفته شده است، می توانید برای کسب اطلاعات بیشتر در مورد استفاده از کنترل از راه دور IR نمونه های بیشتری را بررسی کنید. بنابراین به این ترتیب خروجی ریموت IR را رمزگشایی کردیم.
توضیحات مدار:
اتصالات این مدار بسیار ساده است در اینجا از نمایشگر کریستال مایع برای نمایش وضعیت لوازم خانگی استفاده می شود که مستقیماً در حالت 4 بیتی به آردوینو متصل می شود. پین های داده ال سی دی یعنی 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 استفاده می شود. و رله ها از طریق درایور رله ULN2003 به ترتیب برای کنترل LIGHT، FAN و TV به پین آردوینو شماره 3، 4 و 5 متصل می شوند.
بیشتر بخوانید: اتوماسیون خانگی با کنترل از راه دور IR با استفاده از آردوینو