विषयसूची:

रास्पबेरी पाई फैन का स्मार्ट नियंत्रण पायथन और थिंग्सपीक का उपयोग करना: 7 कदम
रास्पबेरी पाई फैन का स्मार्ट नियंत्रण पायथन और थिंग्सपीक का उपयोग करना: 7 कदम

वीडियो: रास्पबेरी पाई फैन का स्मार्ट नियंत्रण पायथन और थिंग्सपीक का उपयोग करना: 7 कदम

वीडियो: रास्पबेरी पाई फैन का स्मार्ट नियंत्रण पायथन और थिंग्सपीक का उपयोग करना: 7 कदम
वीडियो: LED Blinking Using Raspberry Pi with Programming in Hindi | Raspberry Pi Tutorials #6 2024, जुलाई
Anonim
पाइथन और थिंग्सपीक का उपयोग करके रास्पबेरी पाई फैन का स्मार्ट नियंत्रण
पाइथन और थिंग्सपीक का उपयोग करके रास्पबेरी पाई फैन का स्मार्ट नियंत्रण

संक्षिप्त सिंहावलोकन

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

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

आप क्या सीखेंगे

तापमान हिस्टैरिसीस के साथ ऑन-ऑफ नियंत्रण का उपयोग करके रास्पबेरी सीपीयू के वर्तमान तापमान के आधार पर एक प्रशंसक को नियंत्रित करने के लिए पायथन स्क्रिप्ट को कैसे कार्यान्वित करें। अपने रास्पबेरीपी से थिंग्स स्पीक क्लाउड में डेटा कैसे परिवहन करें।

आपूर्ति

इस परियोजना के लिए आपको जिन घटकों की आवश्यकता होगी वे इस प्रकार हैं

  • रास्पबेरी पाई 4 कंप्यूटर मॉडल बी 4GB
  • NPN ट्रांजिस्टर S8050330ohms रोकनेवाला
  • रास्पबेरी पाई के लिए दोहरे प्रशंसकों के साथ आर्मर एल्युमिनियम मेटल केस
  • जंपर केबल
  • ब्रेड बोर्ड

चरण 1: सर्किट का निर्माण

सर्किट का निर्माण
सर्किट का निर्माण
सर्किट का निर्माण
सर्किट का निर्माण

सर्किट काफी सरल है। एनपीएन ट्रांजिस्टर का उपयोग करके पंखे की बिजली काट दी जाती है। इस विन्यास में, ट्रांजिस्टर लो-साइड स्विच के रूप में कार्य कर रहा है। केवल GPIO के माध्यम से करंट को सीमित करने के लिए रेसिस्टर की आवश्यकता होती है। रास्पबेरी पाई के GPIO का अधिकतम वर्तमान आउटपुट 16mA है। मैंने 330 ओम का उपयोग किया जो हमें लगभग (5-0.7)/330 = 13mA का बेस करंट देता है। मैंने एक NPN ट्रांजिस्टर S8050 चुना है, इसलिए दोनों प्रशंसकों से 400mA लोड स्विच करने में कोई समस्या नहीं है।

चरण 2: सीपीयू तापमान को थिंगस्पीक के साथ लॉग करें

थिंगस्पीक के साथ सीपीयू तापमान लॉग करें
थिंगस्पीक के साथ सीपीयू तापमान लॉग करें

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

थिंगस्पीक लोकप्रिय उपकरणों और सेवाओं को एकीकृत कर सकता है जैसे:

  • अरुडिनो
  • रास्पबेरी पाई
  • oBridge / RealTime.io
  • इलेक्ट्रिक इंप
  • मोबाइल और वेब एप्लिकेशन
  • सोशल नेटवर्क
  • MATLAB में डेटा विश्लेषण

इससे पहले कि हम शुरू करें, आपको थिंगस्पीक पर एक खाते की आवश्यकता है।

  1. निम्न लिंक पर जाएं और थिंगस्पीक पर साइन अप करें।
  2. अपना खाता सक्रिय करने के बाद, साइन इन करें।
  3. चैनल्स पर जाएँ -> माय चैनल्स
  4. न्यू चैनल बटन पर क्लिक करें।
  5. उस डेटा का नाम, विवरण और फ़ील्ड दर्ज करें जिसे आप अपलोड करना चाहते हैं
  6. अपनी सभी सेटिंग्स को सेव करने के लिए सेव चैनल बटन पर क्लिक करें।

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

एपीआई कुंजी लिखने के लिए एपीआई कुंजी टैब पर क्लिक करें

एक बार जब आपके पास एपीआई कुंजी लिखें, तो हम अपना डेटा अपलोड करने के लिए लगभग तैयार हैं।

चरण 3: पायथन का उपयोग करके रास्पबेरी पाई से सीपीयू तापमान प्राप्त करना

स्क्रिप्ट प्रोसेसर तापमान को पुनः प्राप्त करने पर आधारित है, जो हर सेकंड होता है। इसे मेजर_टेम्प पैरामीटर के साथ vcgencmd कमांड चलाकर टर्मिनल से प्राप्त किया जा सकता है।

vcgencmd माप_ताप

Subprocess.check_output() लाइब्रेरी का उपयोग कमांड को निष्पादित करने के लिए किया गया था और फिर दिए गए स्ट्रिंग से वास्तविक मान निकालने के लिए नियमित अभिव्यक्ति का उपयोग किया गया था।

सबप्रोसेस से आयात check_output

फिर से आयात से findalldef get_temp (): अस्थायी = check_output (["vcgencmd", "measure_temp"])। decode () अस्थायी = फ्लोट (ढूंढें ('\ d + \। / d +', अस्थायी) [0]) वापसी (अस्थायी)) प्रिंट (get_temp ())

तापमान मान प्राप्त होने के बाद, डेटा को थिंगस्पीक क्लाउड पर भेजने की आवश्यकता होती है। नीचे दिए गए पायथन कोड में myApi चर को बदलने के लिए अपनी लेखन API कुंजी का उपयोग करें।

urllib आयात अनुरोध से

समय से पुनः आयात खोज से सबप्रोसेस आयात से नींद आयात करें check_output myAPI = '###############' baseURL = 'https://api.thingspeak.com/update?api_key=% s'% myAPIdef get_temp (): अस्थायी = check_output (["vcgencmd", "measure_temp"])। डीकोड () अस्थायी = फ्लोट (ढूंढें ('\ d + \। / d +', अस्थायी) [0]) वापसी (अस्थायी)) कोशिश करें: जबकि सच: temp = get_temp() conn = request.urlopen(baseURL + '&field1=%s'% (temp)) print(str(temp)) conn.close() sleep(1) कीबोर्डइंटरप्ट को छोड़कर: प्रिंट ("बाहर निकलें दबाए गए Ctrl+C")

चरण 4: तापमान के आधार पर पंखे को नियंत्रित करना

नीचे दिखाई गई पायथन लिपि तर्क को लागू करती है जो तापमान से ऊपर उठने पर पंखे को चालू करता है और केवल तभी बंद होता है जब तापमान सीमा से नीचे चला जाता है। इस तरह, पंखा तेजी से चालू और बंद नहीं होगा।

RPI. GPIO को GPIO के रूप में आयात करें

समय से फिर से आयात खोज से sys आयात करें सबप्रोसेस से नींद आयात करें check_output def get_temp(): temp = check_output(["vcgencmd", "measure_temp"]).decode() temp = float(findall('\d+\.\d+) ', अस्थायी) [0]) वापसी (अस्थायी) कोशिश करें: GPIO.setwarnings (गलत) अस्थायी = ५० दहलीज = १० नियंत्रणपिन = १४ पिनस्टेट = गलत GPIO.setmode (GPIO. BCM) GPIO.setup (नियंत्रणपिन, GPIO. OUT, प्रारंभिक = 0) जबकि सत्य: अस्थायी = get_temp () यदि अस्थायी> अस्थायी और पिनस्टेट या अस्थायी नहीं str(pinState)) स्लीप (1) कीबोर्डइंटरप्ट को छोड़कर: प्रिंट ("बाहर निकलें दबाए गए Ctrl + C") को छोड़कर: प्रिंट ("अन्य अपवाद") प्रिंट ("--- अपवाद डेटा प्रारंभ करें:") ट्रेसबैक। प्रिंट_एक्ससी (सीमा = 2, फ़ाइल = sys.stdout) प्रिंट ("--- अपवाद डेटा समाप्त करें:") अंत में: प्रिंट ("क्लीनअप") GPIO.cleanup () प्रिंट ("कार्यक्रम का अंत")

चरण 5: अंतिम पायथन कोड

मुख्य अजगर कोड मेरे GitHub खाते पर निम्न लिंक में पाया जा सकता है। अपनी खुद की लिखें एपीआई कुंजी डालना याद रखें।

  1. अपने रास्पबेरी पीआई बोर्ड में लॉग इन करें
  2. टर्मिनल पर निम्न कमांड चलाएँ

python3 cpu.py

चरण 6: थिंग्सपीक क्लाउड के माध्यम से डेटा की निगरानी

थिंग्सपीक क्लाउड के माध्यम से डेटा की निगरानी
थिंग्सपीक क्लाउड के माध्यम से डेटा की निगरानी

थोड़ी देर के बाद, थिंगस्पीक पर अपना चैनल खोलें और आपको वास्तविक समय में थिंग्सपीक क्लाउड में तापमान अपलोड होते देखना चाहिए।

चरण 7: स्टार्टअप पर पायथन स्क्रिप्ट चलाएँ

ऐसा करने के लिए, /etc/rc.local फ़ाइल के अंत में:

सुडो नैनो /etc/rc.local

आपको स्क्रिप्ट स्टार्ट कमांड को लाइन एग्जिट 0 के सामने रखना होगा:

सुडो पायथन /home/pi/cpu.py और

कमांड के अंत में & प्रतीक की उपस्थिति अनिवार्य है, क्योंकि यह पृष्ठभूमि में प्रक्रिया शुरू करने के लिए एक ध्वज है। रिबूट के बाद, स्क्रिप्ट स्वचालित रूप से चलेगी और निर्दिष्ट शर्तों के पूरा होने पर पंखा चालू हो जाएगा।

सिफारिश की: