अवरक्त के माध्यम से मेरे एसी को नियंत्रित करने के लिए रास्पबेरी पाई का उपयोग करना


19

जब मैं अपने घर से वापस अपने घर जा रहा होता हूं, तो मैं अपने अपार्टमेंट में पहुंचने से पहले कुछ मिनटों के लिए अपने एसी को स्विच करने में सक्षम होना चाहता हूं, शायद अपने डेस्क पर अपने रास्पबेरी पाई से कनेक्ट करने के लिए अपने फोन का उपयोग करके, जो होगा बारी, एसी को नियंत्रित करें। एसी एक इन्फ्रारेड रिमोट कंट्रोल का उपयोग करके चलाया जा सकता है। मैं चाहता हूं कि रास्पबेरी पाई आवश्यक संकेत का उत्सर्जन करें।

रास्पबेरी पाई के लिए मुझे क्या खरीदना है, यह आवश्यक संकेत भेजने के लिए? इसके अलावा, मुझे कुछ ऐसी चीज की आवश्यकता होगी जो मुझे मूल रिमोट कंट्रोल द्वारा भेजे गए सिग्नल का नमूना लेने की अनुमति देगा, इसलिए मैं रास्पबेरी पाई को बता सकता हूं कि किस सिग्नल को भेजना है। मैं उसको कैसे करू?

कृपया ध्यान दें कि एकमात्र प्रोग्रामिंग भाषा जो मुझे पता है कि पायथन का उपयोग कैसे करना है। अगर किसी चीज़ को C या किसी चीज़ में प्रोग्रामिंग की आवश्यकता है, तो यह मेरे लिए अच्छा समाधान नहीं है।

जवाबों:


12

जैसा कि ऊपर उल्लेख किया गया है, LIRC आपके रास्पबेरीपीआई को भेजने और आईआर सिग्नल प्राप्त करने के लिए एक महान सॉफ्टवेयर पैकेज है। दिसंबर 2012 तक नवीनतम रस्पियन ओएस में अब ar0n का LIRC ड्राइवर शामिल है।

मैंने LIRC को स्थापित करने और आपके रास्पबेरीपीआई (हार्डवेयर अप से) पर कॉन्फ़िगर करने के लिए एक गाइड लिखा था, क्योंकि मुझे खुद इसी मुद्दे को हल करना था। एक बार जब आप LIRC स्थापित कर लेते हैं और रास्पबेरीपी पर काम कर रहे होते हैं, तो आप इसमें से कुछ का उपयोग कर सकते हैं, जिसमें पाइथन / रूबी / अपनी पसंद की भाषा से IR कमांड भेजने और प्राप्त करने के लिए अनुप्रयोग शामिल हैं।

http://alexba.in/blog/2013/01/06/setting-up-lirc-on-the-raspberrypi/


2
आज मैंने एक रास्पबेरीपीआई आईआर ट्रांसीवर बनाने के लिए योजनाबद्ध (और मैंने खरीदे गए भागों) का वर्णन करते हुए एक नया ब्लॉग पोस्ट लिखा। alexba.in/blog/2013/03/09/raspberrypi-ir-schematic-for-lirc
एलेक्स बैन

5

कोई ऐसा व्यक्ति है जिसने पहले से ही रास्पबेरी पाई के लिए एक LIRC कर्नेल ड्राइवर लिखा है, यह यहां पाया जा सकता है: LIRC रास्पबेरी पाई ड्राइवर । इसके अलावा आवश्यक हार्डवेयर और कनेक्शन योजनाबद्धता इस पृष्ठ पर पाई जा सकती है।

मैंने खुद LIRC के साथ प्रयोग नहीं किया है, लेकिन कई अनुप्रयोग उपलब्ध हैं जो LIRC का उपयोग करते हैं, मुझे लगता है कि वे अब रास्पबेरी पाई पर काम करते हैं।

यदि आप चाहते हैं / आवश्यकता है, तो मैं इस विषय में थोड़ा और गहरा हो सकता हूं और कुछ अतिरिक्त जानकारी के साथ आ सकता हूं।

पायथन भाग के लिए, LIRC के साथ बातचीत करने के लिए एक पायथन मॉड्यूल है, जिसे pyLirc कहा जाता है और एक नया अनुरक्षित संस्करण जिसे pyLirc2 कहा जाता है


उत्तर के लिए धन्यवाद, लेकिन उस पृष्ठ ने मुझे "कर्नेल को पुनःप्राप्त" कर दिया :) कुछ ऐसा नहीं है जो अधिक प्लग-एन-प्ले हो?
राम रचुम

1
कुछ समय के लिए, जब तक कि यह ड्राइवर अपने रास्ते को दूर के रास्ते में नहीं पा लेता है, मुझे डर है कि यह LIRC के लिए काम करने का एकमात्र विकल्प है। लेकिन अजगर के लिए एक GPIO मॉड्यूल है, पायथन प्रोग्रामर होने के नाते, आप लिंक पेज में दिखाए गए केवल हार्डवेयर का उपयोग करके, वास्तव में आप जो चाहते हैं, करने के लिए अपना खुद का पायथन कोड बना सकते हैं। आपको पढ़ने की आवश्यकता है कि आईआर रिमोट एसी रिमोट को क्या भेजता है, और फिर से खेलना। इस पायथन GPIO मॉड्यूल का उपयोग करना संभव होना चाहिए।
इक्कू

1
मेरी टिप्पणी '... मुझे डर है कि LIRC के लिए काम करने का एकमात्र विकल्प है ...' GPIO संदर्भ में केवल मान्य है। धारावाहिक / यूएसबी आदि उपकरणों को बिना किसी समस्या के काम करना चाहिए।
.कु

3

मैंने पाया है कि LIRC IR संदेश भेजने के लिए अपेक्षाकृत आसान तरीका है, लेकिन वास्तव में JIR से LIRC को नियंत्रित करने में सक्षम होना चाहता था। मुझे जावा में प्रोग्रामिंग पसंद है और मुझे जावा के बजाय इसके साथ काम करने के लिए समझाने के लिए अजगर के लिए कोई सीधा ट्यूटोरियल नहीं मिला। जावा का उपयोग करके पाई से आईआर कोड भेजने के कई घंटों के बाद मुझे अगला समाधान अपेक्षाकृत सरल मिला: एक बैश स्क्रिप्ट बनाएं जिसमें irsendसंदेश शामिल हो और इसे चलाने के लिए जावा को बताएं।

उदाहरण:

toggleLight.sh

#!/bin/bash
irsend SEND_ONCE HyundaiFan lightOnOff

RunBash.java

public class RunBash {
    public static final void main (String args[]) {
        String cmd = "../toggleLight.sh";
        try {
            Runtime runtime = Runtime.getRuntime();
            Process process = runtime.exec(new String[] {"/bin/bash", "-c", cmd});
            int exitValue = process.waitFor();
            System.out.println("exit value: " + exitValue);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

आप मान लीजिए exit value: 0। यदि आपका निकास मूल्य 127 है तो इसका मतलब है कि बाश स्क्रिप्ट जावा द्वारा नहीं मिली थी।

कुछ और नोट:

  • मैंने jirirc और lircj की कोशिश की है - LIRC के लिए java रैपर, लेकिन उन्हें सही तरीके से कॉन्फ़िगर करने में सक्षम नहीं था -> काम नहीं कर रहा।
  • इस समाधान का एकमात्र नकारात्मक पहलू यह है कि आप IR संदेशों को नहीं सुन सकते हैं। अगर किसी के पास आईआर संदेशों को सुनने के लिए समान विधि का उपयोग करने के बारे में कोई विचार है, जिसे मैं जानना चाहता हूं

उपयोगी संसाधन:

  • पाई के लिए LIRC स्थापित करने के लिए एलेक्स बैन निर्देशों का पालन करें। वे वास्तव में अच्छे हैं! कोई भी व्यक्ति irsend यहां से संबंधित अधिक जानकारी प्राप्त कर सकता है । यह आपके रीमोट को बहुत अधिक स्पष्ट करता है।
  • यहां आप जावा से बैश स्क्रिप्ट चलाने के लिए अधिक जानकारी पा सकते हैं।

आशा है कि यह मदद करता है, टॉम


2

मैं हमेशा पाया है LIRC से निपटने के लिए और अधिक अप्रिय परियोजना की तरह लगता है, बहुत कुछ lm- सेंसर की तरह।

तो मैं इस पर शायद थोड़ा और गोल चक्कर के तरीके से देखूंगा: यदि आपको ट्रिगर होने पर सही पल्स ट्रेन भेजने के लिए एक माइक्रोकंट्रोलर (या एक वास्तविक रिमोट) मिल सकता है, तो शायद आप एक gpio पिन (या यूर्ट संदेश) का उपयोग कर सकते हैं आरपीआई "बटन को पुश करें", कम या ज्यादा, और भेजें को ट्रिगर करें।

यह अपेक्षाकृत प्लग और प्ले है, अगर आपको सही ट्रांसमीटर समाधान मिल जाए।

बता दें कि आरपीआई को सर्वर और हार्डवेयर (फर्मवेयर) मॉड्यूल होने के बारे में चिंता है। हो सकता है कि आप प्रक्रिया की स्थिति की निगरानी करने के लिए एक समान चाल का उपयोग कर सकते हैं।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.