मैं ऐसा क्यों करना चाहता हूं?
क्योंकि यह मज़ेदार है। हमारे कई ट्यूटोरियल्स के विपरीत जहां हम शीर्ष रूपरेखा पर थोड़ा अस्पष्टता शामिल करते हैं, इस परियोजना से आपको कितना लाभ मिलेगा, इस मामले में अस्पष्टता बहुत कम है क्योंकि लाभ बस मजेदार है।
रास्पबेरी पाई इलेक्ट्रॉनिक्स के साथ प्रयोग करने और कुछ प्रोग्रामिंग सीखने के लिए एक आदर्श उपकरण है। कोई भी नहीं ज़रूरत उदाहरण के लिए, उनके रसोईघर में एक परिवेश बारिश संकेतक, लेकिन एक इमारत बनाना एक मजेदार व्यायाम है और संभावित रूप से तूफान के दिनों में आपके साथ छतरी लाने के लिए एक महान अनुस्मारक है।
मुझे क्या ज़रुरत है?
आउट ट्यूटोरियल के साथ-साथ आपको कुछ चीजों की आवश्यकता होगी। सबसे पहले, हम मानते हैं कि आप पहले से ही हमारे पिछले ट्यूटोरियल का पालन कर चुके हैं: रास्पबेरी पीआई के साथ शुरू करने के लिए एचटीजी गाइड (और इस प्रकार हमारे रास्पबेरी पीआई पर रस्बीन स्थापित करने के लिए मूलभूत आधार शामिल है)।
यदि आप बजट पर इस परियोजना को करने के लिए देख रहे हैं, तो हम आपको आश्वस्त रूप से बता सकते हैं कि नवीनतम मॉडल रास्पबेरी पीआई नौकरी के लिए महत्वपूर्ण ओवरकिल है और हम आपको पुरानी रास्पबेरी पीआई से धूल उड़ाने के लिए प्रोत्साहित करेंगे जो आपको मिल गया है कोठरी में या ईबे या इसी तरह से एक सस्ते इस्तेमाल किया उठाओ। बजट के अनुसार लंबे समय से दांत एक रास्पबेरी पीआई 1 मॉडल ए या मॉडल बी $ 10-15 के लिए ईबे से छीन लिया गया है, इस परियोजना के लिए एक नई $ 35 वर्तमान पीढ़ी पीआई खरीदने पर एकदम सही फिट है।
रास्पियन के साथ एक कार्यात्मक पीआई इकाई स्थापित करने के अलावा आपको निम्न चीजों की आवश्यकता होगी:
- 1 लेडबॉर्ग मॉड्यूल (यूके से यूएस $ 4 शिपिंग के साथ $ 5.00, सभी रास्पबेरी पीआई मॉडल के साथ काम करता है)।
- 1 रास्पबेरी पीआई केस अपने विशेष पीआई मॉडल के साथ इस रास्पबेरी पीआई 1 मॉडल बी मामले के साथ संगत।
ध्यान दें: स्पष्ट / फ्रॉस्टेड पीआई केस पूरी तरह से वैकल्पिक है लेकिन यदि आप वर्तमान में एक अपारदर्शी केस का उपयोग कर रहे हैं तो आपका एलईडी सूचक अंदर छिपा होगा। आपको या तो अपने मामले में छेद काटने या ब्रेकआउट किट के साथ एक जीपीआईओ एक्सटेंशन केबल का उपयोग करने की आवश्यकता होगी-जैसे कि एडफ्रूट इंडस्ट्रीज से - लेडबोर्ग को अपने रास्पबेरी पीआई में टेदर करने के लिए। ब्रेकआउट केबल का उपयोग करते समय परियोजना के खर्च के लिए $ 8 जोड़ते हैं, यह अंत उत्पाद को अनुकूलित करने के लिए अधिक संभावना प्रदान करता है जिसमें आप आसानी से चीजों के अंदर या कुछ ऐसी चीज के नीचे डाल सकते हैं जो आप रोशनी करना चाहते हैं।
लेडबोर्ग स्थापित करना
मॉड्यूल को स्थापित करना एक स्नैप है क्योंकि इसे पीआई पर जीपीआईओ पिन पर सीधे फिट करने के लिए डिज़ाइन किया गया है। सबसे पहले, अपने पीआई को पावर करें और केस खोलें।
स्थापना प्रक्रिया का सबसे महत्वपूर्ण हिस्सा यह है कि आप मॉड्यूल को उन्मुख करते हैं ताकि लेडबॉर्ग आइकन रास्पबेरी पीआई बोर्ड पर आरसीए मॉड्यूल के निकटतम हो (और इस प्रकार लेडबोर्ग का किनारा पीई बोर्ड के किनारों के साथ फ्लश हो रहा है पीई बोर्ड पर लटकते हुए लेडबॉर्ग का हिस्सा और किनारे से नहीं)। उपरोक्त तस्वीर देखें।
जबकि आपके पास पीआई बोर्ड खुला है, अब ऑन-बोर्ड एलईडी संकेतक (यूएसबी पोर्ट के बगल में) को कवर करने का एक उत्कृष्ट समय होगा, खासकर यदि आप एक स्पष्ट मामले का उपयोग कर रहे हैं। आप नहीं चाहते हैं कि यह आपके लेडबॉर्ग सूचक को पढ़ने में भ्रमित हो क्योंकि बिजली और नेटवर्क सूचक रोशनी इतनी उज्ज्वल हैं।
हमने सफेद विद्युत टेप की एक परत के साथ हमारा कवर किया। इससे उन्हें काफी मंद कर दिया गया ताकि हम उन्हें अभी भी संदर्भित कर सकें लेकिन वे लेडबोर्ग की तुलना में बहुत मंद थे, यह अब विचलित नहीं था।
एक बार जब आप लेडबॉर्ग स्थापित कर लेते हैं और वैकल्पिक रूप से, पाई के एलईडी संकेतक को विद्युत टेप के साथ कवर करते हैं, तो यह मामला बैक अप बंद करने का समय है। ट्यूटोरियल के अगले चरण पर जाने से पहले अपने पीआई को बूट करें।
लेडबॉर्ग सॉफ्टवेयर स्थापित करना
शुरू करने से पहले आपको यह सुनिश्चित करने की ज़रूरत है कि आप अपने रास्पियन के संस्करण के लिए सही पैकेज और अपने रास्पबेरी पीआई बोर्ड के संशोधन # को पकड़ रहे हैं।
यदि आपके रास्पबेरी पीआई बोर्ड में कोई घुमावदार छेद नहीं है, तो यह संशोधन 1 है। यदि आपके रास्पबेरी पीआई में बढ़ते छेद हैं (यूएसबी पोर्ट्स और पावर और एचडीएमआई पोर्ट के बीच स्थित) तो यह संशोधन 2 है। आपको कर्नेल संस्करण को भी जानने की आवश्यकता है अपने रेशियन स्थापना के। टर्मिनल खोलें और जांचने के लिए निम्न आदेश दर्ज करें:
uname -r
एक बार आपके पास संशोधन संख्या और कर्नेल संख्या हो जाने के बाद, आप अपने पैकेज के लिंक को पकड़ने के लिए यहां पैकेज अनुभाग पर जा सकते हैं। हमारे मामले में हम 3.6.11 कर्नेल के साथ एक संशोधन 1 बोर्ड का उपयोग कर रहे हैं, इसलिए हम raspbian-2013-02-09-rev1.zip फ़ाइल को पकड़ लेंगे।
सभी उपहारों को स्थापित करने के लिए हमें पीआई पर टर्मिनल खोलने की जरूरत है। और फिर LedBorg पैकेज को स्थापित करने के लिए निम्न आदेश इनपुट करें।
ध्यान दें: आपको अपने बोर्ड / कर्नेल संयोजन के लिए पैकेज के यूआरएल के साथ तीसरे कमांड में यूआरएल को प्रतिस्थापित करना होगा।
mkdir ~/ledborg-setup cd ~/ledborg-setup wget -O setup.zip https://www.piborg.org/downloads/ledborg/raspbian-2013-02-09-rev1.zip unzip setup.zip chmod +x install.sh./install.sh
इस बिंदु पर अब आपके पास लेडबॉर्ग ड्राइवरों के लिए जीयूआई रैपर है और ड्राइवर स्वयं स्थापित हैं। अपने रास्पियन डेस्कटॉप पर आपको जीयूआई रैपर के लिए एक आइकन दिखाई देगा:
यह डेमो मोड सेक्शन में है कि आप अपने लेडबॉर्ग को कई संकेतकों में से पहले में बदल सकते हैं। कलर्स सेक्शन में सीपीयू का चयन करके एलईडी रास्पबेरी पीआई के एआरएम प्रोसेसर पर लोड इंगित करने के लिए हरे से पीले से लाल रंग में बदलना शुरू कर देगा। हम सुझाव देते हैं कि जब आप इसमें हों तो स्पीड टू स्लो को बदलना-तेजी से एलईडी को तेज़ अपडेट करता है और सीपीयू सूचक को उपयोगी के बजाय विचलित करता है।
रंगों का चयन करने के लिए जीयूआई इंटरफेस का उपयोग करने के अलावा आप आरजीबी मूल्यों का उपयोग कर टर्मिनल से रंग चुन सकते हैं। टर्मिनल खोलें और एलईडी बंद करने के लिए निम्न आदेश दर्ज करें:
echo '000' > /dev/ledborg
जिस तरह से लेडबोर्ग आरजीबी मूल्यों को संभालता है वह है कि 0 का मतलब है कि चैनल बंद है, 1 का मतलब है कि चैनल आधा शक्ति है, और 2 का मतलब है कि चैनल पूर्ण शक्ति है। तो उदाहरण के लिए 001 लाल चैनल को 0% पर सेट करेगा, ग्रीन चैनल 0% और ब्लू चैनल 50% पावर पर सेट करेगा।
मान को 002 में बदलें और एलईडी आउटपुट नीला रहता है लेकिन चमकदार हो जाता है क्योंकि ब्लू चैनल अब 100% आउटपुट पर है। एक मैजेंटा रंग बनाने के लिए मूल्य को 202 तक बदलें और लाल और नीले रंग की पूर्ण शक्ति पर गठबंधन करें।
अब जब हम जानते हैं कि एलईडी मैन्युअल रूप से कैसे छेड़छाड़ की जाए, तो चलिए अपने एलईडी को एक साधारण प्रकाश से वास्तविक संकेतक में बदलने के लिए स्क्रिप्ट का उपयोग करके देखें।
रेन इंडिकेटर के रूप में अपने लेडबॉर्ग को कॉन्फ़िगर करना
ट्यूटोरियल के इस हिस्से के लिए हम अपने लेडबॉर्ग एलईडी मॉड्यूल को हमारे स्थान के मौसम पूर्वानुमान के आधार पर बारिश संकेतक में बदलने के लिए कई चीजों को एक साथ जोड़ देंगे। हम मौसम एपीआई को कॉल करने के लिए एक पायथन स्क्रिप्ट का उपयोग करेंगे जो बदले में दिन के लिए बारिश का मौका पढ़ेगा, और फिर पूर्वानुमानित बारिश को इंगित करने के लिए एलईडी को उज्ज्वल नीले रंग से टॉगल करेगा।
सबसे पहले, हमें मौसम भूमिगत के लिए एपीआई एक्सेस कुंजी प्राप्त करने की आवश्यकता है। व्यक्तिगत उपयोग और छोटी विकास परियोजनाओं के लिए एपीआई मुफ़्त है। यहां मौसम एपीआई साइन अप पेज पर जाएं और एपीआई कुंजी के लिए साइन अप करें।
एक बार आपके पास एपीआई कुंजी हो जाने के बाद, मौसम अंडरग्राउंड पर जाएं और उस शहर की खोज करें जहां आप निगरानी करना चाहते हैं। हमारे मामले में हम सैन फ्रांसिस्को, सीए की निगरानी करने जा रहे हैं। सैन फ्रांसिस्को के पूर्वानुमान पृष्ठ के लिए यूआरएल है:
https://www.wunderground.com/US/CA/San_Francisco.html
हमारे उद्देश्यों के लिए महत्वपूर्ण हिस्सा URL का अंतिम भाग है: /CA/San_Francisco.html। हम एपीआई उपकरण के लिए पूर्वानुमान यूआरएल को संपादित करने के लिए इसका उपयोग करने जा रहे हैं। आधार यूआरएल है:
https://api.wunderground.com/api/YOUR API KEY/forecast/q/STATE/CITY.json
आप अपने एपीआई कुंजी, दो अक्षर राज्य कोड और आपके मौसम भूमिगत खोज परिणामों से खींचे गए यूआरएल से शहर का नाम दर्ज करके किसी भी अमेरिकी शहर के पूर्वानुमान का अनुमान लगा सकते हैं।
एक बार आपके एपीआई कुंजी और राज्य / शहर डालने के साथ एपीआई यूआरएल हो जाने के बाद, आप लीफपैड का उपयोग करके अपने पीआई पर एक नया टेक्स्ट दस्तावेज़ बनाकर निम्नलिखित पाइथन स्क्रिप्ट को संपादित कर सकते हैं और इसमें निम्न कोड पेस्ट कर सकते हैं:
from urllib2 import urlopen import json
req = urlopen('https://api.wunderground.com/api/YOUR API KEY/forecast/q/STATE/CITY.json') parsed_json = json.load(req) pop = int(parsed_json['forecast']['txt_forecast']['forecastday'][0]['pop'])
# निम्नलिखित एक डिबगिंग मान है। # हैश और परिवर्तन संपादित करें # परीक्षण करने के लिए 0-100 के पूर्णांक # एलईडी प्रतिक्रिया।
# पॉप = 0
print 'Current chance of precipitation is {}.'.format(pop)
# The default setting is to turn on the LED # for any chance of rain above 20%. You can adjust # the value in 'if pop > 20:' as you wish.
if pop > 20: LedBorg = open('/dev/ledborg', 'w') LedBorg.write('002') del LedBorg print ('Rain!') else: LedBorg = open('/dev/ledborg', 'w') LedBorg.write('000') del LedBorg print ('No rain!')
/ Home / pi / निर्देशिका में फ़ाइल को wunderground.py के रूप में सहेजें। टर्मिनल खोलें और निम्न आदेश टाइप करें:
python wunderground.py
यदि आपने अपनी एपीआई कुंजी और अपने राज्य / शहर कोड को सही तरीके से दर्ज किया है, तो उसे एक प्रतिक्रिया वापस लेनी चाहिए जो इस तरह दिखती है:
अंतिम चरण एलईडी सूचक वर्तमान को चालू रखने के लिए नियमित रूप से नियमित अंतराल पर सहेजी गई स्क्रिप्ट को स्वचालित रूप से चलाने के लिए क्रॉन नौकरी स्थापित करना है। चूंकि यह कार्य इस स्क्रिप्ट और ईमेल संकेतक दोनों के लिए जरूरी है, इसलिए हम आपको अन्य स्क्रिप्ट को सेट अप करने के तरीके के बाद एक क्रॉन नौकरी स्थापित करने के लिए कवर करने जा रहे हैं।
जीमेल इंडिकेटर के रूप में अपने लेडबॉर्ग को कॉन्फ़िगर करना
हमें फीडपर्सर, एक पायथन आरएसएस / एटम फीड रीडिंग टूल इंस्टॉल करके हमारे पायथन इंस्टॉलेशन की कार्यक्षमता को थोड़ा सा विस्तारित करने की आवश्यकता है। टर्मिनल खोलें और निम्न आदेश दर्ज करें:
sudo easy_install feedparser
एक बार इंस्टॉलेशन पूरा होने के बाद हम अपनी जीमेल जांच स्क्रिप्ट बनाने के लिए काम कर सकते हैं। फिर, Leafpad का उपयोग करके, निम्न पाठ को संपादक में पेस्ट करें। जीमेल खाते के उपयोगकर्ता नाम और पासवर्ड से मेल खाने के लिए उपयोगकर्ता नाम और पासवर्ड बदलें, जिसे आप देखना चाहते हैं।
import feedparser
# Enter your Gmail username # and password. Don't include # the @gmail.com portion of # your username.
username = 'username' password = 'password'
mail = int(feedparser.parse('https://' + username + ':' + password +'@mail.google.com/gmail/feed/atom')['feed']['fullcount'])
# निम्नलिखित एक डिबगिंग मान है। # हैश और परिवर्तन संपादित करें # परीक्षण करने के लिए 0 या 1 के पूर्णांक # एलईडी प्रतिक्रिया।
# मेल = 0
if mail > 0: LedBorg = open('/dev/ledborg', 'w') LedBorg.write('020') del LedBorg print ('Mail!') else: LedBorg = open('/dev/ledborg', 'w') LedBorg.write('000') del LedBorg print ('No mail!')
स्क्रिप्ट को gmailcheck.py के रूप में सहेजें। टर्मिनल खोलें और निम्न आदेश टाइप करें:
python gmailcheck.py
अगर आपके जीमेल इनबॉक्स में ईमेल बैठा है तो एलईडी हरे रंग की हो जाएगी और आपको इस तरह की प्रतिक्रिया मिलेगी:
शेड्यूल पर चलाने के लिए अपनी जीमेल स्क्रिप्ट सेट करने के लिए ट्यूटोरियल के अगले भाग में हॉप करें।
अपनी स्क्रिप्ट चलाने के लिए एक क्रॉन नौकरी की स्थापना
पहली बात यह है कि हम एलईडी को बंद करना चाहते हैं यदि यह वर्तमान में हमारे पिछले प्रयोगों से है। टर्मिनल प्रकार पर:
echo “000” > /dev/ledborg
जबकि आप अभी भी कमांड लाइन पर हैं, आप क्रॉन संपादक खोल सकते हैं। यदि आपने पहले कभी क्रॉन नौकरी स्थापित नहीं की है, तो हम दृढ़ता से यहां इसका उपयोग करने के लिए हमारी मार्गदर्शिका की जांच करने का सुझाव देंगे। उस ने कहा, हम आपको यहां एक बुनियादी कार्यक्रम स्थापित करने के माध्यम से चलेंगे।
टर्मिनल प्रकार पर:
sudo crontab –e
यह नैनो टेक्स्ट एडिटर में रास्पियन क्रॉन टेबल खोल देगा। बहुत नीचे स्क्रॉल करने के लिए तीर कुंजियों का उपयोग करें। यह वह जगह है जहां हम अपने पायथन स्क्रिप्ट के लिए पुनरावर्ती क्रॉन नौकरी स्थापित करने जा रहे हैं।
यदि आप बारिश स्क्रिप्ट सेट अप करना चाहते हैं, तो क्रॉन टेबल में निम्न पंक्ति दर्ज करें:
*/5 * * * * python /home/pi/wunderground.py
बाहर निकलने के लिए CTRL + X दबाएं; मौजूदा क्रॉन टेबल को सहेजने और ओवरराइट करने के लिए हाँ का चयन करें। क्रॉन टेबल में दर्ज किया गया मान "* / 5 * * * *" स्क्रिप्ट को हर 5 मिनट में हमेशा के लिए चलाने के लिए सेट करता है।
प्रत्येक 5 मिनट एक स्क्रिप्ट के लिए समय की एक अच्छी अवधि है जो पूर्वानुमानित बारिश की जांच करता है-आप यह भी तर्क दे सकते हैं कि यह थोड़ा आक्रामक है-लेकिन यदि आप अपने ईमेल के शीर्ष पर रखने की कोशिश कर रहे हैं तो यह अधिसूचना के लिए एक बहुत लंबा समय है । यदि आप जीमेल अधिसूचना स्क्रिप्ट के लिए शेड्यूल सेट अप कर रहे हैं तो क्रॉन टेबल में निम्न पंक्ति दर्ज करें:
*/1 * * * * python /home/pi/wunderground.py
यह प्रविष्टि एक बहुत तेज अद्यतन अधिसूचना के लिए हर मिनट gmailcheck.py स्क्रिप्ट चलाती है।
यही सब है इसके लिए! आप हमारे स्वयं के पायथन स्क्रिप्ट्स के साथ प्रयोग कर सकते हैं अगर हमारे बारे में / अन्य बयानों को उठाकर और ब्रांड नए चर के साथ कोशिश कर रहे हैं। यदि आप डेटा के लिए एक इनपुट स्रोत पा सकते हैं तो आप इसे अपने पायथन स्क्रिप्ट-स्टॉक मार्केट औसत में एक चर में बदल सकते हैं, पराग मायने रखता है, ट्विटर का उल्लेख है, यदि इसके लिए कोई एपीआई है तो आप इसे परिवेश एलईडी सूचक में बदल सकते हैं।
अंत में, मैं इस परियोजना पर काम करने के लिए उपयोग किए जाने वाले सभी महान संसाधनों का धन्यवाद देना चाहता हूं। यह एक दशक से थोड़ा सा रहा है क्योंकि मैं सक्रिय रूप से प्रोग्राम लिख रहा था और धूल और जंग को निकालने के लिए कुछ दस्तक लगाए। / आर / लर्नपैथॉन के योगदानकर्ताओं ने मुझे मौसम अंडरग्राउंड के लिए एपीआई आउटपुट में उलझाने में मदद की, यह अध्ययन करते हुए कि मिच टेक पर माइकल ने जीमेल एटम फीड के साथ कैसे काम किया है, इसे लेडबोर्ग के लिए आसान बना दिया है, और कोड अकादमी में पायथन सीखने के मॉड्यूल का अध्ययन करना था एक भाषा की बुनियादी वाक्यविन्यास और संरचना को चुनने का एक शानदार तरीका जिसे मैंने पहले कभी नहीं उपयोग किया था।