- कार्य स्पष्टीकरण:
- Arduino का उपयोग करते हुए IR रिमोट कंट्रोल सिग्नल को डिकोड करना:
- सर्किट विवरण:
- कोड विवरण:
पहले हमने DTMF बेस्ड होम ऑटोमेशन, PC कंट्रोल्ड होम ऑटोमेशन जैसे Arduino, ब्लूटूथ कंट्रोल्ड होम ऑटोमेशन का इस्तेमाल करके कई तरह के होम ऑटोमेशन को कवर किया है । इस परियोजना में, हम घरेलू उपकरणों को नियंत्रित करने के लिए आईआर आधारित वायरलेस संचार का उपयोग कर रहे हैं। इस परियोजना में, Arduino का उपयोग पूरी प्रक्रिया को नियंत्रित करने के लिए किया जाता है। हम एसी घरेलू उपकरणों को नियंत्रित करने के लिए आईआर टीवी / डीवीडी / एमपी 3 रिमोट का उपयोग करके नियंत्रण प्रणाली के लिए कुछ कमांड भेजते हैं। IR रिमोट से सिग्नल प्राप्त करने के बाद, Arduino रिले से संबंधित सिग्नल भेजता है जो एक रिले चालक के माध्यम से घरेलू उपकरणों के ON या OFF स्विच करने के लिए जिम्मेदार हैं।
कार्य स्पष्टीकरण:
इस परियोजना का कार्य आसानी से समझा जा सकता है। जब हम IR रिमोट का कोई बटन दबाते हैं तो रिमोट 38Khz मॉड्युलेटिंग फ्रीक्वेंसी का उपयोग करके एन्कोडेड दालों की ट्रेन के रूप में एक कोड भेजता है। ये दालें TSOP1738 सेंसर द्वारा प्राप्त की जाती हैं और Arduino द्वारा पढ़ी जाती हैं और फिर Arduino डिकोड्स को एक हेक्स मान में पल्स की ट्रेन प्राप्त होती है और उस डीकोड किए गए मान की तुलना दबाए गए बटन के पूर्ववर्ती हेक्स मान से की जाती है। यदि कोई मैच होता है, तो Arduino सापेक्ष संचालन करता है और उचित परिणाम का उपयोग करके 16x2 एलसीडी पर संबंधित परिणाम भी प्रदर्शित किया जाता है। यहां इस परियोजना में हमने प्रदर्शन के लिए विभिन्न रंगों के 3 बल्बों का उपयोग किया है, जो फैन, लाइट और टीवी को इंगित करता है।
आईआर रिमोट कई तरह के होते हैं जो अलग-अलग डिवाइस के लिए उपलब्ध होते हैं लेकिन उनमें से ज्यादातर 38KHz फ्रीक्वेंसी सिग्नल पर काम करते हैं। यहाँ इस परियोजना में हम IR टीवी रिमोट का उपयोग करके घरेलू उपकरणों को नियंत्रित करते हैं। IR रिमोट सिग्नल का पता लगाने के लिए, हम TSOP1738 IR रिसीवर का उपयोग करते हैं। यह TSOP1738 सेंसर 38Khz फ़्रीक्वेंसी सिग्नल को समझ सकता है। आईआर रिमोट और TSOP1738 के काम को इस लेख में विस्तार से कवर किया जा सकता है: आईआर ट्रांसमीटर और रिसीवर
अवयव:
- Arduino UNO
- TSOP1738
- आईआर टीवी / डीवीडी रिमोट
- ULN2003
- 5 वोल्ट का रिले
- धारक के साथ बल्ब
- तारों को जोड़ना
- ब्रेड बोर्ड
- 16x2 एलसीडी
- बिजली की आपूर्ति
- प्राइवेट
- आईसी 7805
यहाँ इस परियोजना में हमने IR रिमोट के 7, 8 और 9 नंबर बटन का उपयोग किया है, क्रमशः फैन, लाइट और टीवी को नियंत्रित करने के लिए और सभी उपकरणों को एक साथ चालू और बंद करने के लिए ON / OFF बटन (पावर बटन) का उपयोग किया जाता है।
यहां हमने सिंगल होम अप्लायंसेज को चालू और बंद करने के लिए टॉगल विधि का उपयोग किया है। टॉगल विधि इसके अलावा कुछ भी नहीं है कि क्या बटन दबाया जाता है चाहे वह समय का हो या विषम समय का नहीं। इसे 2 (i% 2) से विभाजित करने के बाद रिमाइंडर प्राप्त करके पाया जाता है, यदि कुछ अनुस्मारक है तो डिवाइस को चालू किया जाएगा और यदि अनुस्मारक 0 है तो इसे बंद कर दिया जाएगा। मान लीजिए कि कुंजी 7 रिमोट पर दबाया गया है, तो रिमोट TSOP IR रिसीवर के माध्यम से Arduino को एक संकेत भेजता है। तब Arduino इसे डीकोड करता है और परिणाम चर में डिकोड किए गए मान को संग्रहीत करता है। अब परिणाम चर का एक हेक्स मान 0x1FE00FF है, इसे कुंजी 7 के पूर्ववर्ती हेक्स मूल्य (छवि के ऊपर देखें) के साथ मिलान करने के बाद, Arduino फैन पर बदल जाता है। अब जब हम फिर से एक ही कुंजी (की 7) दबाते हैं तो आईआर उसी कोड को भेजता है। Arduino को समान कोड मिलता है और पहले की तरह समान कोड के साथ मेल खाता है लेकिन इस बार बिट टॉगल करने के कारण फैन बंद हो गया (i% 2)।
Arduino का उपयोग करते हुए IR रिमोट कंट्रोल सिग्नल को डिकोड करना:
यहाँ एक डीवीडी NEC टाइप रिमोट डिकोडेड आउटपुट कोड की एक सूची दी गई है:
यदि आप अपने IR रिमोट के लिए डिकोडेड आउटपुट नहीं जानते हैं, तो यह आसानी से पाया जा सकता है, बस इन चरणों का पालन करें:
- आईआर रिमोट लाइब्रेरी को यहां से डाउनलोड करें
- इसे अनज़िप करें, और इसे अपने Arduino 'लाइब्रेरीज़' फोल्डर में रखें। फिर निकाले गए फ़ोल्डर को IRremote में बदलें।
- अपने Arduino से नीचे प्रोग्राम चलाएं और Arduino IDE में सीरियल मॉनिटर विंडो खोलें। अब किसी भी IR रिमोट बटन को दबाएं और सीरियल मॉनिटर विंडो में संबंधित डिकोडेड हेक्स आउटपुट देखें।
* IRremote: IRrecvDemo - IRrecv के साथ IR कोड प्राप्त करने का प्रदर्शन * एक IR डिटेक्टर / डिमोडुलेटर इनपुट RECV_PIN से जुड़ा होना चाहिए। * संस्करण 0.1 जुलाई, 2009 * कॉपीराइट 2009 केन शिरिफ * http://arcfn.com * / #include
उपरोक्त कार्यक्रम IRremote लाइब्रेरी के 'उदाहरण' फ़ोल्डर से लिया गया है, आप IR रिमोट का उपयोग करने के बारे में अधिक जानने के लिए और उदाहरण देख सकते हैं। इसलिए हमने IR रिमोट आउटपुट को डिकोड किया है।
सर्किट विवरण:
इस सर्किट के कनेक्शन बहुत सरल हैं यहां एक लिक्विड क्रिस्टल डिस्प्ले का उपयोग घरेलू उपकरणों की स्थिति को प्रदर्शित करने के लिए किया जाता है जो सीधे 4-बिट मोड में आर्डिनो से जुड़ा हुआ है। एलसीडी के डेटा पिन जैसे RS, EN, D4, D5, D6, D7 arduino digital pin number 6, 7, 8, 9, 10, 11. से जुड़े हैं और TSOP1738 का आउटपुट पिन सीधे डिजिटल पिन नंबर 14 (A) से जुड़ा है।) आर्डुइनो का। और Vcc पिन सर्किट के ग्राउंड टर्मिनल से जुड़ा हुआ +5 वोल्ट और GND पिन जुड़ा हुआ है। एक रिले चालक अर्थात् ULN2003 का उपयोग ड्राइविंग रिले के लिए भी किया जाता है। 5 वोल्ट SPDT 3 रिले का उपयोग LIGHT, FAN और TV को नियंत्रित करने के लिए किया जाता है। और रिले क्रमशः LIGHT, FAN और TV को नियंत्रित करने के लिए रिले चालक ULN2003 के माध्यम से arduino पिन नंबर 3, 4 और 5 से जुड़े हुए हैं।
कोड विवरण:
इस परियोजना के प्रोग्रामिंग भाग में सबसे पहले प्रोग्रामिंग में हम आईआर रिमोट के लिए पुस्तकालय शामिल करते हैं जो Google पर आसानी से उपलब्ध है। और पिन को परिभाषित करें और चर घोषित करें।
#शामिल
और फिर लिक्विड क्रिस्टल डिस्प्ले के लिए एक हेडर शामिल करें और फिर हम एलसीडी और घरेलू उपकरणों के लिए डेटा और नियंत्रण पिन को परिभाषित करते हैं।
#शामिल
इसके बाद हमें एलसीडी को इनिशियलाइज़ करना होगा और पंखे, लाइट और टीवी के लिए इस्तेमाल होने वाले पिन की दिशा देनी होगी।
शून्य सेटअप () {Serial.begin (9600); lcd.begin (16,2); पिनमोड (फैन, आउटपूट); पिनमोड (लाइट, OUTPUT); पिनमोड (टीवी, OUTPUT);
जैसा कि पहले ही समझाया जा चुका है, उस बटन के पहले से परिभाषित हेक्स कोड को प्राप्त हेक्स मान की तुलना करने के लिए कोड के नीचे के हिस्से का उपयोग किया जाता है। यदि यह मेल खाता है तो कोड में दिए गए उपयुक्त कार्यों का उपयोग करके एक रिश्तेदार ऑपरेशन किया जाता है।
शून्य लूप () {if (irrecv.decode (& results)) {Serial.println (results.value, HEX); देरी (100); lcd.setCursor (0,0); lcd.print ("फैन लाइट टीवी"); if (results.value == 0x1FE00FF) {i ++; int x = i% 2; digitalWrite (फैन, x);