विषयसूची:

रास्पबेरी पाई का उपयोग करके आउटलेट्स को कैसे नियंत्रित करें: 6 कदम
रास्पबेरी पाई का उपयोग करके आउटलेट्स को कैसे नियंत्रित करें: 6 कदम

वीडियो: रास्पबेरी पाई का उपयोग करके आउटलेट्स को कैसे नियंत्रित करें: 6 कदम

वीडियो: रास्पबेरी पाई का उपयोग करके आउटलेट्स को कैसे नियंत्रित करें: 6 कदम
वीडियो: Raspberry Pi Series - Tutorial 02 | Easy way to setup Raspberry Pi with Laptop/Computer [in Hindi] 2024, जुलाई
Anonim
रास्पबेरी पाई का उपयोग करके आउटलेट को कैसे नियंत्रित करें
रास्पबेरी पाई का उपयोग करके आउटलेट को कैसे नियंत्रित करें
रास्पबेरी पाई का उपयोग करके आउटलेट्स को कैसे नियंत्रित करें
रास्पबेरी पाई का उपयोग करके आउटलेट्स को कैसे नियंत्रित करें
रास्पबेरी पाई का उपयोग करके आउटलेट्स को कैसे नियंत्रित करें
रास्पबेरी पाई का उपयोग करके आउटलेट्स को कैसे नियंत्रित करें

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

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

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

यह एक ऐसी परियोजना है जिसे मैंने वर्षों से पूरा करने का सपना देखा है, और यद्यपि अभी भी अतिरिक्त के लिए जगह है, इस प्रकार वर्णित परियोजना एक कार्यात्मक प्रणाली है।

आपूर्ति

  • एक रास्पबेरी पाई (मैंने आरपीआई 3 मॉडल बी + का इस्तेमाल किया)
  • एक 433 मेगाहर्ट्ज ट्रांसमीटर और रिसीवर (मैंने इसका इस्तेमाल किया)
  • 433 मेगाहर्ट्ज आउटलेट (मैंने इसका इस्तेमाल किया)
  • महिला-से-महिला जंपर्स (मैंने यह गुच्छा खरीदा)
  • इंटरनेट एक्सेस करने में सक्षम कंप्यूटर या हैंडहेल्ड डिवाइस

चरण 1: अपना रास्पबेरी पाई सेट करें

अपना रास्पबेरी पाई सेट करें
अपना रास्पबेरी पाई सेट करें

अपने नए रास्पबेरी पाई पर रास्पियन के नवीनतम संस्करण को स्थापित करके प्रारंभ करें। यदि आप एक मौजूदा पाई (जो आप पूरी तरह से कर सकते हैं) का उपयोग करने की योजना बना रहे हैं, तो आपको केवल यह सुनिश्चित करने की आवश्यकता है कि आपके पाई पर आपके पास पायथन 3 है, क्योंकि मेरे द्वारा प्रदान किया गया सभी स्रोत कोड यही लिखा गया है। ऐसा करने के लिए, प्रकार

अजगर3

कमांड लाइन में। यदि आपके पास पायथन 3 है, तो आपको अजगर टर्मिनल को खुला देखना चाहिए। बंद करके या टाइप करके टर्मिनल से बाहर निकलें

बाहर जाएं()

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

sudo pip3 फ्लास्क स्थापित करें

यदि आपके पाई पर पाइप स्थापित नहीं है, तो आपको टाइप करना होगा

sudo apt-python3-pip स्थापित करें

मैं अपने डेस्कटॉप कंप्यूटर के आराम से अपने रास्पबेरी पाई पर विकसित करना पसंद करता हूं। यदि आप भी इस विकल्प को पसंद करते हैं, तो आपको एसएसएच को पीआई में किसी प्रकार का वातावरण स्थापित करने की आवश्यकता है। पुटी काम करेगा, लेकिन मैं एक जीयूआई (ग्राफिकल यूजर इंटरफेस) रखना पसंद करता हूं, जिससे ऐसा लगता है कि आप सीधे पीआई पर हैं। जीयूआई विकल्प के लिए, आप उस कंप्यूटर पर वीएनसी व्यूअर स्थापित करना चाहेंगे जिस पर आप काम करने की योजना बना रहे हैं। ऐसी सेटिंग्स भी हैं जिन्हें आपको अपने पीआई पर समायोजित करने की आवश्यकता होगी। सेटिंग्स को संशोधित करने के निर्देश यहां देखे जा सकते हैं।

चरण 2: अपने हार्डवेयर को जोड़ना

अपने हार्डवेयर को जोड़ना
अपने हार्डवेयर को जोड़ना

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

बाहर पिन

मेरे द्वारा बनाए गए कनेक्शन निम्नलिखित हैं। यदि आपने परिचय में बताए गए अनुसार अलग ट्रांसमीटर/रिसीवर हार्डवेयर खरीदा है तो आपके पास एक अलग कॉन्फ़िगरेशन हो सकता है। यदि आप नीचे बताए गए पिन नंबरों से भिन्न पिन नंबर चुनने का निर्णय लेते हैं, तो कोई डर नहीं है! जब आप स्रोत कोड डाउनलोड करते हैं, तो बस RxTx.py फ़ाइल में आवश्यकतानुसार पिन नंबर संशोधित करें।

रिसीवर (बड़ी चिप):

  • GND - कोई भी निर्दिष्ट ग्राउंड पिन
  • डेटा - पिन 11
  • डीईआर - जुड़ा नहीं है
  • +5वी - कोई भी निर्दिष्ट +5वी पिन
  • ------
  • +5वी - कोई भी निर्दिष्ट +5वी पिन
  • GND - कोई भी निर्दिष्ट ग्राउंड पिन
  • जीएनडी - जुड़ा नहीं
  • चींटी - जुड़ा नहीं

नोट: आप आवश्यकतानुसार एंटीना कनेक्ट कर सकते हैं, लेकिन मैंने पाया कि मुझे इसकी आवश्यकता नहीं थी। यह छोटी सी चिप आश्चर्यजनक रूप से संवेदनशील थी और कम से कम 50 फीट की दूरी पर और कम से कम दो दीवारों के माध्यम से संकेतों का ईमानदारी से पता लगाती थी।

ट्रांसमीटर:

  • पी - 3.3V पिन
  • डीए - पिन 7
  • जी - कोई भी निर्दिष्ट ग्राउंड पिन
  • एएन - जुड़ा नहीं

नोट: फिर से, आप आवश्यकतानुसार एक एंटीना को ट्रांसमीटर से जोड़ सकते हैं, लेकिन मैंने पाया कि मुझे इसकी आवश्यकता नहीं थी। सीमा पर्याप्त (50+फीट) से अधिक है।

चरण 3: कोड जोड़ना

यह वह हिस्सा है जिस पर मैंने अपना अधिकांश समय उस समय बिताया जब मैं इस परियोजना को विकसित कर रहा था। मैं यथासंभव अधिक से अधिक टिप्पणी करने का प्रयास करता हूं, लेकिन यदि आप में से कोई इसे समझने की कोशिश में समय व्यतीत करता है, तो संभवत: मैंने अंतराल छोड़ दिया है जिसके लिए स्पष्टीकरण की आवश्यकता हो सकती है। अगर आपके साथ भी ऐसा होता है तो कमेंट करें!

यहां शामिल होने वाली भाषाएं हैं:

  • अजगर
  • सीएसएस
  • जावास्क्रिप्ट
  • एचटीएमएल
  • JQuery/अजाक्स

पायथन का उपयोग फ्लास्क सर्वर और में किया जाता है

आरएक्सटीएक्स.py

फ़ाइल, जो कोड ट्रांसमिशन और रसीद को संभालती है। CSS का उपयोग वेबपेज की शैली को उत्पन्न करने में किया जाता है। एक उबाऊ वेबसाइट कौन चाहता है !? जावास्क्रिप्ट का उपयोग किसी भी ईवेंट हैंडलिंग (एक बटन को दबाने आदि) में किया जाता है। HTML वेबपेज का मुख्य बिल्डिंग ब्लॉक है। अंत में, JQuery/Ajax का उपयोग वेबपेज और पायथन बैकएंड के बीच संचार करने के लिए किया जाता है।

अगर ये सभी भाषाएं डराने वाली लगती हैं, तो चिंता न करें! मैं केवल यह जानता था कि पायथन इस परियोजना में जा रहा है, जो कि ऐसी भाषा थी जिसमें कम से कम कोडिंग शामिल थी, आंकड़ा जाओ … यह कहने के लिए पर्याप्त है, कोड के माध्यम से अपना समय ले लो यदि आप ऐसा करना चुनते हैं। यदि आप नहीं चाहते हैं, तो आपको नहीं करना है!

निम्नलिखित निर्देशिका संरचना है जिसे मैंने इस वेबपेज के साथ नियोजित करने के लिए चुना है। इस चरण से जुड़े ज़िप्ड फ़ोल्डर में निम्न संरचना में सभी स्रोत कोड शामिल हैं।

आउटलेट स्विच-> कॉम-- DataRW.py-- keys.py-- RxTx.py-> वेबपेज-- static----- favicon.ico----- style.css-- templates----- index.html----- शेड्यूल.html-- app.py-- data.file

आप आउटलेट स्विच फ़ोल्डर को अपने पाई पर कहीं भी रख सकते हैं। जब आप अपना वेब सर्वर चलाने के लिए तैयार हों, तो अपने पाई पर टर्मिनल खोलें, और

सीडी

(निर्देशिका बदलें) वेबपेज निर्देशिका में। फिर टाइप करें

python3 app.py

टर्मिनल में। यदि कोई त्रुटि नहीं थी, तो आपको जाना अच्छा होगा!

पी.एस. कृपया धैर्य रखें यदि आप किसी भी बग में भाग लेते हैं। मैंने अपलोड करने से पहले उन सभी को स्क्वैश करने की कोशिश की।

चरण 4: इसे एक शॉट दें

इसे मार दें!
इसे मार दें!

अब जब आप कोड चला रहे हैं, तो आप अपनी उंगलियों पर वेब इंटरफ़ेस का अनुभव प्राप्त कर सकते हैं। सिस्टम का नियंत्रण बहुत सरल है:

  • आप वेब इंटरफेस का उपयोग करके जितने चाहें उतने आउटलेट जोड़ सकते हैं।
  • हटाना उतना ही सरल है जितना कि संपादन पर क्लिक करना, उन आउटलेट्स का चयन करना जिन्हें आप हटाना चाहते हैं, और डिलीट पर क्लिक करना।

उपरोक्त YouTube वीडियो दर्शाता है कि वास्तव में आपकी सूची में एक नया आउटलेट जोड़ने के बारे में कैसे जाना है। यह जो दिखाता है उसे संक्षेप में प्रस्तुत करने के लिए:

  • सबसे पहले शीर्षक क्षेत्र में आउटलेट का शीर्षक दर्ज करें
  • प्रोग्राम को यह जांचने की अनुमति देने के लिए शीर्षक फ़ील्ड के बाहर क्लिक या स्पर्श करें कि शीर्षक पहले से मौजूद नहीं है। आपके पास एक ही नाम के शीर्षक नहीं हो सकते
  • एक बार मान्य होने के बाद, ON कोड और OFF कोड बटन सक्षम हो जाते हैं।
  • अपने दिए गए रिमोट पर ON बटन को दबाकर रखें और इंटरफ़ेस पर ON कोड बटन पर तुरंत क्लिक करें। रिमोट पर बटन को तब तक दबाए रखें जब तक कि आपका बाइनरी कोड आसन्न फ़ील्ड को पॉप्युलेट न कर दे।
  • OFF कोड के लिए पिछले चरण को दोहराएं।
  • ठीक क्लिक करें, और अब आप इस आउटलेट को स्विच करने के लिए तैयार हैं!

जैसा कि परिचय में बताया गया है, परियोजना मेरे अपने उपयोगों के लिए 100% पूर्ण नहीं है। सबसे बड़ा घटक जो मुझे अभी पूरा करना और कार्यान्वित करना है, वह है शेड्यूलिंग क्षमता। मैं उपयोगकर्ता को एक शेड्यूल बनाने की अनुमति देने की योजना बना रहा हूं जो आउटलेट को निर्दिष्ट समय पर स्वचालित रूप से चालू और बंद करने की अनुमति देगा।

चरण 5: डिबगिंग और RxTx.py फ़ाइल

डिबगिंग और RxTx.py फ़ाइल
डिबगिंग और RxTx.py फ़ाइल
डिबगिंग और RxTx.py फ़ाइल
डिबगिंग और RxTx.py फ़ाइल
डिबगिंग और RxTx.py फ़ाइल
डिबगिंग और RxTx.py फ़ाइल
डिबगिंग और RxTx.py फ़ाइल
डिबगिंग और RxTx.py फ़ाइल

सिस्टम की एकमात्र ज्ञात सीमा यह है कि विभिन्न विक्रेता के आउटलेट के बीच असंगति की संभावना है। मेरे सिस्टम के लिए ऑन और ऑफ कोड संदेश 25 बिट हैं, और यदि किसी सिस्टम की संदेश लंबाई भिन्न है, तो यह इस प्रोजेक्ट के साथ तुरंत संगत नहीं है। यदि आपने बिल्कुल निर्देशों का पालन किया है और आपको अभी भी इसे काम करने में समस्या आ रही है, तो समस्या को डीबग करने का सबसे अच्छा तरीका निम्नलिखित होगा।

  • सुनिश्चित करें कि आपने अपने पाई पर matplotlib स्थापित किया है। आप पाई के टर्मिनल में निम्नलिखित टाइप करके ऐसा कर सकते हैं:

    • अजगर3

    • आयात matplotlib

    • यदि आपको कोई त्रुटि मिलती है, तो आपको matplotlib स्थापित करने की आवश्यकता है।
    • का उपयोग कर अजगर खोल से बाहर निकलें

      बाहर जाएं()

  • Matplotlib स्थापित करने के लिए, टाइप करें

    sudo pip3 matplotlib स्थापित करें

  • टर्मिनल में
  • संलग्न test.py फ़ाइल डाउनलोड करें, और इसे RxTx.py फ़ाइल के साथ अपने Pi. पर रखें
  • पायथन टर्मिनल खोलें और निर्देशिका को कॉम फ़ोल्डर में बदलें।
  • प्रकार

    python3 test.py

  • जब यह कहता है "**रिकॉर्डिंग शुरू हुई**," रिकॉर्डिंग समाप्त होने तक अपने रिमोट पर अपना चालू या बंद बटन दबाकर रखें।
  • कार्यक्रम एक matplotlib आंकड़ा लोड करेगा जो ऊपर जैसा दिखता है। ज़ूम इन करें जब तक कि आपको दोहराए जाने वाले सिग्नल दिखाई न दें जैसा कि ऊपर की तस्वीरों में दिखाया गया है।
  • प्रत्येक संदेश के लिए कुल तार्किक 1 और तार्किक 0 की गणना करें, जहां एक संदेश ऊपर देखे गए दोहराव वाले संकेत का एक पुनरावृत्ति है। यदि कुल 25 है, तो संभवतः RxTx.py फ़ाइल में कोई त्रुटि नहीं है। यदि आपको 25 के अलावा कुछ और मिलता है, तो नीचे टिप्पणी करना सुनिश्चित करें, और मैं RxTx.py फ़ाइल को और अधिक ओपन-एंडेड (या इस पर अपना हाथ आज़माने के लिए स्वतंत्र महसूस) के लिए फिर से तैयार करूँगा।

अगर मुझे दोहराव वाला संकेत दिखाई न दे तो क्या होगा?

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

चरण 6: आनंद लें

आप जानते हैं कि आपके पास अपने फोन, टैबलेट, कंप्यूटर या अन्य वेब-सक्षम डिवाइस से आउटलेट को चालू/बंद करने की क्षमता है! मुझे आप क्या सोचते हैं टिपण्णी में बताये!

सिफारिश की: