ब्राइट आइडिया: एक लैंप टाइमर के रूप में रास्पबेरी पाई का उपयोग करना
मान लीजिए कि आप कल सुबह एक लंबी छुट्टी पर जा रहे हैं और आप अपने घर से बर्गलर होना चाहते हैं। एक दीपक टाइमर एक अच्छा निवारक है, लेकिन हार्डवेयर स्टोर रात के लिए बंद हैं और आपके पास सुबह में अपनी उड़ान से पहले एक होने का समय नहीं है। हालाँकि, जब से आप रास्पबेरी पाई के शौकीन हैं, तो आपके पास कुछ आपूर्ति हैं, अर्थात्:
- रास्पबेरी पाई बोर्ड
- breadboard
- जम्पर तार, महिला-से-पुरुष।
- पॉवरस्विच टेल II रिले
- तार बांधना
इन आपूर्ति के साथ, आप दो शक्तिशाली लिनक्स उपकरणों का उपयोग करके अपना प्रोग्रामेबल लैंप टाइमर बना सकते हैं:शेल स्क्रिप्ट तथाक्रॉन.
स्क्रिप्टिंग कमांड
एक शेल स्क्रिप्ट एक फाइल है जिसमें कमांड की एक श्रृंखला होती है (ठीक उसी तरह जैसे आप पिन को नियंत्रित और पढ़ने के लिए उपयोग कर रहे हैं)। नीचे शेल स्क्रिप्ट और मुख्य लाइनों के स्पष्टीकरण पर एक नज़र डालें।
#! / बिन / बैश # इको एक्सपोर्ट पिन $ 1। # गूंज $ 1> / sys / वर्ग / gpio / निर्यात # गूंज सेटिंग दिशा बाहर करने के लिए। इको आउट> / sys / वर्ग / gpio / gpio $ 1 / दिशा # इको सेटिंग पिन हाई। गूंज 1> / sys / वर्ग / gpio / gpio $ 1 / मान
सभी शेल स्क्रिप्ट के लिए यह लाइन आवश्यक है। | |
"$ 1" पहली कमांड लाइन तर्क को संदर्भित करता है। | |
विशिष्ट पिन नंबर निर्यात करने के बजाय, स्क्रिप्ट पहले कमांड लाइन तर्क का उपयोग करती है। | |
ध्यान दें कि पहली कमांड लाइन तर्क यहां पिन नंबर को भी बदल देती है। |
उस टेक्स्ट फ़ाइल के रूप में सहेजेंon.sh
और इसे कमोड कमांड के साथ निष्पादित करें:
[ईमेल संरक्षित]: / घर / पाई # chmod + x on.sh
ध्यान दें
आपको अभी भी रूट के रूप में थिसिस कमांड निष्पादित करना होगा। प्रकारसूदो सु
अगर आपको "अनुमति अस्वीकृत" जैसी त्रुटियां मिलती हैं।
एक कमांड लाइन तर्क एक प्रोग्राम या स्क्रिप्ट में जानकारी को कमांड के नाम से टाइप करके पास करने का एक तरीका है। जब आप शेल स्क्रिप्ट लिखते हैं, तो $ 1 पहली कमांड लाइन तर्क को संदर्भित करता है, $ 2 दूसरी को संदर्भित करता है, और इसी तरह। के मामले मेंon.sh
जिस पिन नंबर को आप एक्सपोर्ट करना चाहते हैं, उसे टाइप करें और चालू करें। के बजायकठिन कोडिंग शेल स्क्रिप्ट में 25 पिन करें, यह कमांड लाइन पर टाइप किए गए पिन का संदर्भ देकर अधिक सार्वभौमिक है। पिन 25 निर्यात करने और इसे चालू करने के लिए, अब आप टाइप कर सकते हैं:
[ईमेल संरक्षित]: / घर / पीआई / # ./on.sh 25
निर्यात पिन 25. बाहर की दिशा निर्धारित करना। पिन को हाई सेट करना।
फ़ाइल नाम से पहले "./" इंगित करता है कि आप उस निर्देशिका में स्क्रिप्ट निष्पादित कर रहे हैं जो आप में हैं। |
यदि आपके पास अभी भी अध्याय में पहले से 25 पिन से जुड़ा हुआ एलईडी है, तो इसे चालू करना चाहिए। चलो एक और शेल स्क्रिप्ट बनाते हैंoff.sh
जो एलईडी बंद कर देगा। यह इस तरह दिखेगा:
#! / बिन / बैश इको सेटिंग पिन कम। इको ०> / sys / क्लास / gpio / gpio $ १ / मान echo अनपेक्टिंग पिन $ १ इको $ १> / sys / क्लास / gpio / unexport
अब इसे निष्पादन योग्य बनाते हैं और स्क्रिप्ट चलाते हैं:
[ईमेल संरक्षित]: / घर / पीआई / अस्थायी # chmod + x off.sh
[ईमेल संरक्षित]: / घर / पीआई / अस्थायी # ./off.sh 25
पिन कम लगाना। अनपेक्षित पिन 25
यदि सब कुछ काम करता है, तो एलईडी बंद होना चाहिए।
एक दीपक को जोड़ना
निश्चित रूप से, एक छोटा सा एलईडी नहीं है जो यह सोचने के लिए कि आप घर पर हैं, तो बर्गलरों को मूर्ख बनाने के लिए पर्याप्त रोशनी देने जा रहे हैं, इसलिए रास्पबेरी पाई के लिए एक दीपक को हुक दें।
- 25 पिन से जुड़ी एलईडी निकालें।
- ब्रेडबोर्ड को हुकअप तार के दो किस्में कनेक्ट करें, एक जो रास्पबेरी पाई के 25 पिन और दूसरे को ग्राउंड बस से जोड़ता है।
- 25 से जुड़ने वाले तार के स्ट्रैंड को पॉवरस्विच टेल के टर्मिनल "+" से जोड़ा जाना चाहिए।
- जमीन से जुड़ने वाले तार के स्ट्रैंड को पावरस्विच टेल के "-इन" टर्मिनल से जोड़ा जाना चाहिए। अपने सर्किट की तुलना चित्र 7 से करें, "पॉवरस्विच टेल II को रास्पबेरी पाई से जोड़ना"।
- PowerSwitch Tail को दीवार में प्लग करें और PowerSwitch Tail में एक लैंप प्लग करें। सुनिश्चित करें कि दीपक का स्विच चालू है।
- अब जब आप निष्पादित करते हैं
./on.sh 25
दीपक चालू होना चाहिए और यदि आप निष्पादित करते हैं./off.sh 25
दीपक को बंद कर देना चाहिए!
ध्यान दें
पॉवरस्विच टेल के अंदर कुछ इलेक्ट्रॉनिक घटक होते हैं जो आपको कम वोल्टेज सिग्नल जैसे कि रास्पबेरी पाई से एक का उपयोग करके उच्च वोल्टेज उपकरणों को दीपक या ब्लेंडर को नियंत्रित करने में मदद करते हैं। जब यह चालू या बंद होता है, तो आप PowerSwitch Tail से "क्लिक" सुनते हैं, यह सर्किट का मुख्य घटक है। रिले उच्च वोल्टेज डिवाइस के लिए एक स्विच की तरह काम करता है जिसे रास्पबेरी पाई से कम वोल्टेज नियंत्रण संकेत चालू या बंद किया जा सकता है।
चित्र 7. रास्पबेरी पाई को एक पावरस्विच टेल II कनेक्ट करना
क्रोन के साथ शेड्यूलिंग कमांड
तो अब आप कुछ अलग-अलग कमांड को दो साधारण कमांड में पैक कर सकते हैं जो पिन को चालू या बंद कर सकते हैं। और पावरस्विच टेल के माध्यम से रास्पबेरी पाई से जुड़े दीपक के साथ, आप एकल कमांड के साथ दीपक को चालू या बंद कर सकते हैं। अब आप उपयोग कर सकते हैंक्रॉन
दिन के अलग-अलग समय पर प्रकाश को चालू और बंद करने के लिए शेड्यूल करें।क्रॉन
लिनक्स का जॉब शेड्यूलर है इसके साथ, आप विशिष्ट समय और तिथियों पर निष्पादित करने के लिए कमांड सेट कर सकते हैं, या आप किसी विशेष अवधि (उदाहरण के लिए, एक घंटे में एक बार) पर नौकरी चला सकते हैं। आप दो नौकरियों के कार्यक्रम के लिए जा रहे हैं; उनमें से एक रात 8:00 बजे लाइट चालू करेगा और दूसरा 2:00 बजे लाइट बंद कर देगा।
ध्यान दें
अन्य समय-निर्भर कार्यक्रमों के साथ, आप यह सुनिश्चित करना चाहते हैं कि आपको अपने रास्पबेरी पाई पर सही तारीख और समय निर्धारित किया गया है, जैसा कि ??? में वर्णित है।
इन नौकरियों को जोड़ने के लिए, आपको क्रोन टेबल (उन कमांडों की एक सूची को संपादित करना होगा जो लिनक्स निर्दिष्ट समय पर निष्पादित करता है):
[ईमेल संरक्षित]: / घर / पीआई / # Crontab -e
यह रूट के क्रोन टेबल को बदलने के लिए एक टेक्स्ट एडिटर लॉन्च करेगा। रूट उपयोगकर्ता प्रकार में बदलने के लिएसूदो सु
। फ़ाइल के शीर्ष पर, आपको क्रोन तालिका को संशोधित करने के बारे में कुछ जानकारी दिखाई देगी। फ़ाइल के निचले भाग में जाने के लिए अपनी तीर कुंजियों का उपयोग करें और फ़ाइल के अंत में इन दोनों प्रविष्टियों को जोड़ें।
० २० * * * * /home/pi/on.sh २५ ० २ * * * /home/pi/off.sh २५
ध्यान दें
क्रॉन
हैश मार्क के साथ शुरू होने वाली किसी भी रेखा को अनदेखा करेगा। यदि आप किसी लाइन को हटाए बिना अस्थायी रूप से अक्षम करना चाहते हैं या फ़ाइल में कोई टिप्पणी जोड़ना चाहते हैं, तो लाइन के सामने एक हैश मार्क लगाएं।
प्रकारनियंत्रण एक्स
बाहर निकलने के लिए, टाइप करेंy
फ़ाइल को बचाने के लिए जब यह आपको संकेत देता है, और डिफ़ॉल्ट फ़ाइल नाम को स्वीकार करने के लिए एंटर दबाएं। जब फ़ाइल सहेज ली जाती है और आप कमांड लाइन पर वापस आ जाते हैं, तो यह कहना चाहिएनया crontab स्थापित करना
यह इंगित करने के लिए कि आपके द्वारा किए गए परिवर्तन निष्पादित होने वाले हैंक्रॉन
क्रोन के बारे में अधिक
क्रोन आपको विशिष्ट तिथियों और समय या अंतराल पर नौकरियों को शेड्यूल करने देगा। पाँच समय क्षेत्र हैं (या छह यदि आप वर्ष द्वारा शेड्यूल करना चाहते हैं), प्रत्येक को एक स्थान द्वारा अलग किया जाता है उसके बाद दूसरे स्थान पर निष्पादित करने के लिए कमांड। तारांकन संकेत देते हैं कि नौकरी को प्रत्येक अवधि में निष्पादित करना चाहिए। उदाहरण के लिए:
तालिका 1. हर दिन 8:00 बजे प्रकाश चालू करने के लिए क्रोन प्रवेश
0 | 20 | * | * | * | /होम / ६/३.श २५ |
---|---|---|---|---|---|
मिनट (: 00) | घंटा (रात 8 बजे) | हर दिन | हर महीने | सप्ताह के हर दिन | आज्ञा का मार्ग |
मान लीजिए कि आप केवल दीपक को हर सप्ताह के दिन चालू करना चाहते थे। यहाँ क्या crontab प्रविष्टि की तरह दिखेगा:
टेबल 2. क्रोन एंट्री ऑन टर्निंग लाइट ऑन 8:00 बजे हर वीकडे
0 | 20 | * | * | 1-5 | /होम / ६/३.श २५ |
---|---|---|---|---|---|
मिनट (: 00) | घंटा (रात 8 बजे) | हर दिन | हर महीने | सोमवार से शुक्रवार | आज्ञा का मार्ग |
मान लीजिए कि आपके पास एक शेल स्क्रिप्ट है जो यह जांचता है कि क्या आपके पास नया मेल है और यदि आप करते हैं तो आपको ईमेल करते हैं। यहां बताया गया है कि आप हर पांच मिनट में वह स्क्रिप्ट कैसे प्राप्त कर सकते हैं:
तालिका 3. मेल हर पांच मिनट के लिए जाँच के लिए क्रोन प्रवेश
*/5 | * | * | * | * | /home/pi/checkMail.sh |
---|---|---|---|---|---|
हर पाँच मिनट में | प्रत्येक घंटे | हर दिन | हर महीने | सप्ताह के हर दिन | आज्ञा का मार्ग |
* / 5 हर पांच मिनट की अवधि को इंगित करता है।
जैसा कि आप देख सकते हैं,क्रॉन
एक शक्तिशाली उपकरण है जो विशिष्ट तिथियों या समय के लिए शेड्यूलिंग जॉब्स के लिए आपके निपटान में है और एक विशिष्ट अंतराल पर होने वाली नौकरियों को शेड्यूल करने के लिए है।
आगे बढ़ते हुए
- eLinux का रास्पबेरी पाई GPIO संदर्भ पृष्ठ
- यह रास्पबेरी पाई के GPIO पिन के लिए सबसे व्यापक संदर्भ गाइड है।
- प्रवेश: रास्पबेरी पाई पर MCP230xx GPIO विस्तारक
- यदि आपके पास काम करने के लिए पर्याप्त पिन नहीं है, तो Adafruit 8 अतिरिक्त GPIO पिन के लिए MCP23008 चिप और 16 अतिरिक्त GPIO पिन के लिए MCP23017 का उपयोग करने के लिए यह मार्गदर्शिका प्रदान करता है।