विषयसूची:

रास्पबेरी पाई पर सटीक तापमान नियंत्रण 4: 3 कदम
रास्पबेरी पाई पर सटीक तापमान नियंत्रण 4: 3 कदम

वीडियो: रास्पबेरी पाई पर सटीक तापमान नियंत्रण 4: 3 कदम

वीडियो: रास्पबेरी पाई पर सटीक तापमान नियंत्रण 4: 3 कदम
वीडियो: Temperature monitoring using Raspberry Pi | Raspberry Pi for Beginners in Hindi #10 2024, नवंबर
Anonim
रास्पबेरी पाई पर सटीक तापमान नियंत्रण 4
रास्पबेरी पाई पर सटीक तापमान नियंत्रण 4

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

ऊपर दिया गया उदाहरण मेरे परिणामों को पीआईडी नियंत्रक चलाने और लक्ष्य अवधि को हर 500 सेकंड में बदलने से दिखाता है। सटीकता +/- 1 डिग्री है जिसमें टर्मपरचर में अचानक बदलाव पर कुछ ओवरशूट होते हैं।

महत्वपूर्ण रूप से, यह परीक्षण कुल परीक्षण समय (बीबीसी iPlayer को देखते हुए) के लिए समान भार के तहत किया गया था।

आपूर्ति

  • रास्पबेरी पाई 4
  • पिमोरोनी फैन शिमो

चरण 1: अपना प्रशंसक सेट करें

अपना फैन सेट करें
अपना फैन सेट करें

पहला कदम अपने प्रशंसक को स्थापित करना है। पिमोरिनी ट्यूटोरियल बहुत अच्छा है!

फिर अपने पाई पर टर्मिनल खोलें (ctrl alt t)

और Pimoroni. द्वारा प्रदान किया गया कोड इंस्टॉल करें

गिट क्लोन https://github.com/pimoroni/fanshim-pythoncd fanshim-python sudo./install.sh

चरण 2: एक पीआई (डी) नियंत्रक बनाएं

एक पीआई (डी) नियंत्रक बनाएं
एक पीआई (डी) नियंत्रक बनाएं

एक आनुपातिक अभिन्न व्युत्पन्न (पीआईडी) नियंत्रक एक प्रणाली है जिसका उपयोग कुछ भौतिक उपकरण (फैन स्पीड) में हेरफेर करके एक निश्चित प्रक्रिया (सीपीयू तापमान) के मूल्य को नियंत्रित करने के लिए किया जाता है। हम समय-समय पर इसे चालू और बंद करके पंखे की 'गति' और शोर में हेरफेर कर सकते हैं (पल्स वेव मॉड्यूलेशन)। एक निश्चित अवधि (जैसे 1 सेकंड) में यह चालू रहने की अवधि निर्धारित करती है कि पंखा कितना तेज़ और कितना तेज़ है (900ms = तेज़ और तेज़, 100ms = शांत और धीमा)। हम पंखे की गति को नियंत्रित करने के लिए PID का उपयोग करेंगे और इस प्रकार तापमान को नियंत्रित करेंगे।

हम PID के उपयोग को कई चरणों में विभाजित कर सकते हैं।

  1. उस प्रक्रिया चर के मूल्य पर निर्णय लें जिसे आप प्राप्त करना चाहते हैं (जैसे सीपीयू तापमान = 55)। इसे आपका सेटपॉइंट कहा जाता है।
  2. पीआईडी त्रुटि की गणना करें। यदि आपका सेटपॉइंट 55 डिग्री है और वास्तविक तापमान 60 डिग्री है तो आपकी त्रुटि 5 डिग्री है (तापमान - सेटपॉइंट)
  3. त्रुटि के अनुपात में पंखे का ऑन-टाइम बदलें (बड़ी त्रुटियों के परिणामस्वरूप पंखे की गति में बड़े परिवर्तन होते हैं, छोटी त्रुटियों के कारण पंखे की गति में छोटे परिवर्तन होते हैं)।
  4. पिछले मूल्यों के अनुपात में पंखे को समायोजित करें (सभी पिछली त्रुटियों का अभिन्न / योग)
  5. वैकल्पिक रूप से आप त्रुटि (व्युत्पन्न) के परिवर्तन की दर के आधार पर पंखे की गति को समायोजित करते हैं, लेकिन हम यहां ऐसा नहीं करेंगे

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

फैनशिम से फैनशिम आयात करें

समय से आयात नींद, समय आयात ओएस आयात गणित # एक चरित्र स्ट्रिंग के रूप में सीपीयू तापमान लौटाएं getCPUtemperature(): res = os.popen('vcgencmd माप_temp')।readline() वापसी (res.replace("temp=", " ").replace("'C\n", "")) fanshim = FanShim() target = 55 # वांछित तापमान (इसके साथ खेलें और देखें कि क्या होता है) अवधि = 1 # PWM अवधि =.1 # प्रारंभ से 0 % कर्तव्य चक्र बंद = अवधि-पर # 0% कर्तव्य चक्र के लिए प्रारंभ करें पी =.01 # आनुपातिक लाभ अवधि (इसके साथ खेलें और देखें कि क्या होता है) intErr = 0 # अभिन्न त्रुटि I =.0001 # अंतर लाभ अवधि (इसके साथ खेलें) और देखें कि क्या होता है) जबकि ट्रू: # टेम्पर्यूट टेम्प = इंट (फ्लोट (getCPUtemperature ()) प्राप्त करें) # एरर की गणना करें और स्मूथ एरर = टेम्प-टारगेट # इंटीग्रेटेड एरर की गणना करें और इसे बाधित करें intErr=intErr+err if intErr>10: intErr = १० अगर intErr = अवधि: चालू = अवधि बंद = ० अन्य: चालू = बंद = अवधि-पर # न्यूनतम कर्तव्य चक्र निर्धारित करें यदि <.09: पर =.09 अन्य: पर = पर # पीडब्लूएम फैनशिम पिन पर अगर पर == अवधि: fanshim.set_fan(True) नींद (चालू) अन्य: fanshim.set_fan(True) रों लीप (ऑन) फैन्शिम.सेट_फैन (झूठी) नींद (बंद)

चरण 3: स्टार्टअप पर नियंत्रण स्क्रिप्ट चलाएँ

स्टार्टअप पर नियंत्रण स्क्रिप्ट चलाएँ
स्टार्टअप पर नियंत्रण स्क्रिप्ट चलाएँ

जब भी आप अपना पीआई शुरू करते हैं तो आप इस स्क्रिप्ट को चला सकते हैं या आप इसे रीबूट पर स्वचालित रूप से ट्रिगर कर सकते हैं। यह क्रोंटैब के साथ करना बहुत आसान है।

  1. टर्मिनल खोलें
  2. टर्मिनल में crontab-e टाइप करें
  3. फ़ाइल में कोड की अगली पंक्ति जोड़ें '@reboot python /home/pi/bootScripts/fanControl.py &'
  4. बाहर निकलें और रिबूट करें

मैंने स्क्रिप्ट (fanControl.py) को बूटस्क्रिप्ट्स नामक एक फ़्लोडर में रखा है, लेकिन आप इसे कहीं भी रख सकते हैं, बस सुनिश्चित करें कि आप crontab में सही पथ निर्दिष्ट करते हैं।

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

सिफारिश की: