विषयसूची:

रास्पबेरी पाई सीपीयू तापमान संकेतक: 11 कदम (चित्रों के साथ)
रास्पबेरी पाई सीपीयू तापमान संकेतक: 11 कदम (चित्रों के साथ)

वीडियो: रास्पबेरी पाई सीपीयू तापमान संकेतक: 11 कदम (चित्रों के साथ)

वीडियो: रास्पबेरी पाई सीपीयू तापमान संकेतक: 11 कदम (चित्रों के साथ)
वीडियो: {meme} Japenese Office Girl Fast typing 443?!wpm 😨😱Fastest typer in the world 🔥😲 2024, जुलाई
Anonim
रास्पबेरी पाई सीपीयू तापमान संकेतक
रास्पबेरी पाई सीपीयू तापमान संकेतक

पहले मैंने सरल रास्पबेरी पाई (इसके बाद आरपीआई के रूप में) परिचालन स्थिति संकेतक सर्किट पेश किया था।

इस बार, मैं आरपीआई के लिए हेडलेस (मॉनिटर के बिना) तरीके से चलने के लिए कुछ और उपयोगी संकेतक सर्किट की व्याख्या करूंगा।

ऊपर दिया गया सर्किट सीपीयू तापमान को 4 अलग-अलग स्तरों में दिखाता है जैसे:

- सीपीयू तापमान 30 ~ 39 डिग्री के भीतर होने पर ग्रीन एलईडी चालू हो जाती है

- पीली एलईडी इंगित करती है कि तापमान 40 से 45 डिग्री की सीमा में बढ़ा है

- तीसरा रेड एलईडी दिखाता है कि सीपीयू 46 ~ 49 डिग्री तक पहुंचकर थोड़ा गर्म हो जाता है

- तापमान 50 डिग्री से अधिक होने पर एक और लाल एलईडी झपकेगी

उपरोक्त सीपीयू तापमान रेंज मेरी व्यक्तिगत डिजाइन अवधारणा है (इस सर्किट को नियंत्रित करने वाले पायथन प्रोग्राम की परीक्षण स्थितियों को बदलकर अन्य तापमान श्रेणियों को कॉन्फ़िगर किया जा सकता है)।

इस सर्किट का उपयोग करके, आप कंसोल टर्मिनल पर अक्सर "vcgencmd माप_टेम्प" कमांड निष्पादित नहीं कर रहे हैं।

यह सर्किट वर्तमान सीपीयू तापमान को लगातार और आसानी से सूचित करेगा।

चरण 1: स्कीमैटिक्स तैयार करना

स्कीमैटिक्स तैयार करना
स्कीमैटिक्स तैयार करना

यद्यपि आप केवल पायथन कोड का उपयोग करके 4 एल ई डी को सीधे नियंत्रित कर सकते हैं, प्रोग्राम के नियंत्रण तर्क आरपीआई लोड करेंगे और परिणामस्वरूप, सीपीयू तापमान अधिक बढ़ जाएगा क्योंकि आपको लगातार थोड़ा जटिल पायथन कोड चलाना चाहिए।

इसलिए, मैं अजगर कोड जटिलता को यथासंभव सरल और बाहरी हार्डवेयर सर्किट में एलईडी नियंत्रण तर्क को ऑफ-लोड कर रहा हूं।

CPU तापमान संकेतक (इसके बाद INICATOR) सर्किट में निम्नलिखित प्रमुख भाग होते हैं।

- तापमान स्तर डेटा प्राप्त करने के लिए दो ऑप्टो-कप्लर्स आरपीआई जीपीआईओ पिन से जुड़े होते हैं जैसे 00-> कम, 01-> मध्यम, 10-> उच्च, 11-> शीतलन की आवश्यकता होती है।

- 74LS139 (या 74HC139, 2-टू-4 डिकोडर और डी-मल्टीप्लेक्सर) इनपुट्स (A, B) के अनुसार आउटपुट (Y0, Y1, Y2, Y3) को नियंत्रित करते हैं।

- जब तापमान 30 ~ 39 डिग्री के भीतर होता है, तो अजगर कोड आउटपुट 00 से GPIO पिन तक होता है। इसलिए, 74LS139 इनपुट डेटा 00 प्राप्त करें (A->0, B->0)

- जैसे ही 00 दर्ज किया जाता है, Y0 आउटपुट कम हो जाता है। (कृपया 74LS139 की सत्य तालिका देखें)

- जब Y0 आउटपुट कम हो जाता है, तो यह 2N3906 PNP ट्रांजिस्टर को सक्रिय कर देता है और परिणामस्वरूप, ग्रीन एलईडी चालू हो जाती है

- इसी तरह, Y1 (01 -> CPU तापमान माध्यम) येलो एलईडी और इसी तरह चालू करेगा

- जब Y3 LOW हो जाता है, DB140 सक्रिय NE555 LED ब्लिंकिंग सर्किट (यह सामान्य 555 IC आधारित LED ब्लिंकर है) जो BD140 PNP ट्रांजिस्टर का भार है

इस सर्किट का सबसे महत्वपूर्ण घटक 74LS139 है जो 2 अंकों के इनपुट को 4 अलग-अलग एकल आउटपुट में डिकोड करता है जैसा कि नीचे दी गई सत्य तालिका में दिखाया गया है।

इनपुट | उत्पादन

जी (सक्षम करें) | बी | ए | Y0 | वाई1 | Y2 | Y3 |

एच | एक्स | एक्स | एच | एच | एच | एच |

एल | एल | एल | एल | एच | एच | एच |

एल | एल | एच | एच | एल | एच | एच |

एल | एच | एल | एच | एच | एल | एच |

एल | एच | एच | एच | एच | एच | एल |

जैसे ही 74LS139 आउटपुट LOW हो जाता है, PNP टाइप ट्रांजिस्टर समग्र सर्किट को सरल बना सकता है क्योंकि बेस टर्मिनल LOW होने पर PNP ट्रांजिस्टर चालू हो जाता है। (मैं इस कहानी के अंत में एनपीएन संस्करण दिखाऊंगा)

चूंकि NE555 एलईडी ब्लिंकर सर्किट में 100K पोटेंशियोमीटर शामिल है, इसलिए रेड एलईडी ऑन / ऑफ समय को जरूरतों के अनुसार स्वतंत्र रूप से समायोजित किया जा सकता है।

चरण 2: पीसीबी ड्राइंग बनाना

पीसीबी ड्राइंग बनाना
पीसीबी ड्राइंग बनाना

जैसा कि इंडिकेटर की ऑपरेटिंग स्कीम की व्याख्या की गई है, आइए सर्किट बनाना शुरू करें।

यूनिवर्सल बोर्ड पर कुछ टांका लगाने से पहले, ऊपर दिखाया गया पीसीबी ड्राइंग तैयार करना किसी भी गलती को कम करने में मददगार होता है।

यूनिवर्सल बोर्ड पर प्रत्येक भाग का पता लगाने और तारों के साथ भागों के बीच वायरिंग पैटर्न बनाने के लिए पावर-पॉइंट का उपयोग करके ड्राइंग बनाई जाती है।

चूंकि आईसी और ट्रांजिस्टर पिन-आउट छवियां पीसीबी वायरिंग पैटर्न के साथ सह-स्थित हैं, इसलिए इस ड्राइंग का उपयोग करके सोल्डरिंग किया जा सकता है।

चरण 3: सोल्डरिंग

टांकने की क्रिया
टांकने की क्रिया

हालाँकि मूल पीसीबी ड्राइंग पीसीबी पर घटकों को जोड़ने के लिए एकल तारों का उपयोग नहीं करके बनाई गई है, मैं कुछ अलग तरीके से सोल्डर कर रहा हूं।

तारों के एकल कंडक्टर (टिन तार नहीं) का उपयोग करके, मैं सार्वभौमिक पीसीबी आकार को कम करने की कोशिश कर रहा हूं जिसमें इंडिकेटर सर्किट होता है।

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

जब प्रत्येक घटक पीसीबी ड्राइंग के मूल डिजाइन के अनुसार जुड़ा होता है, तो इंडिकेटर सर्किट सहित सोल्डरिंग पूर्ण पीसीबी बोर्ड सही ढंग से काम करेगा।

चरण 4: परीक्षण की तैयारी

परीक्षण की तैयारी
परीक्षण की तैयारी

आरपीआई कनेक्शन से पहले, तैयार सर्किट को परीक्षण की आवश्यकता होती है।

चूंकि कोई भी सोल्डरिंग गलती मौजूद हो सकती है, डीसी पावर सप्लायर का उपयोग शॉर्ट्स या गलत वायरिंग होने पर नुकसान को रोकने के लिए किया जाता है।

संकेतक के परीक्षण के लिए, दो अतिरिक्त बिजली आपूर्ति केबल सर्किट के 5V बिजली आपूर्ति कनेक्टर से जुड़े हैं।

चरण 5: परीक्षण (सीपीयू तापमान मध्यम स्तर है)

परीक्षण (सीपीयू तापमान मध्यम स्तर है)
परीक्षण (सीपीयू तापमान मध्यम स्तर है)

जब कोई 5V इनपुट लागू नहीं होता है तो 74LS139 डिकोडिंग इनपुट और आउटपुट Y0 को LOW (ग्रीन एलईडी चालू) के रूप में सक्रिय करता है।

लेकिन 5V इनपुट A पर लागू होता है, 74LS139 एक्टिवेटिंग (LOW) का आउटपुट Y1।

इसलिए, जैसा कि ऊपर चित्र में दिखाया गया है, पीली एलईडी चालू है।

चरण 6: परीक्षण (सीपीयू को शीतलक स्तर की आवश्यकता है)

परीक्षण (सीपीयू को शीतलक स्तर की आवश्यकता है)
परीक्षण (सीपीयू को शीतलक स्तर की आवश्यकता है)

जब 5V ने 74LS139 के दोनों इनपुट (ए और बी) को लागू किया, तो चौथी लाल एलईडी ब्लिंक कर रही है।

जैसा कि ऊपर चित्र में दिखाया गया है, 100K VR को समायोजित करके ब्लिंकिंग दर को बदला जा सकता है।

जब परीक्षण पूरा हो जाता है, तो दो Molex 3 पिन महिला केबल को हटाया जा सकता है।

चरण 7: संकेतक सर्किट को बिजली की आपूर्ति

इंडिकेटर सर्किट को बिजली की आपूर्ति
इंडिकेटर सर्किट को बिजली की आपूर्ति

इंडिकेटर सर्किट को पावर देने के लिए, मैं सामान्य हैंड-फोन चार्जर का उपयोग कर रहा हूं जो 5V और यूएसबी टाइप-बी एडेप्टर आउटपुट करता है जैसा कि ऊपर चित्र में दिखाया गया है।

3.3V GPIO और 5V संचालित इंडिकेटर सर्किट को जोड़कर RPI के साथ समस्या से बचने के लिए, सिग्नल इंटरफेस और बिजली की आपूर्ति एक दूसरे को पूरी तरह से अलग कर दिया गया है।

चरण 8: आरपीआई वायरिंग

आरपीआई वायरिंग
आरपीआई वायरिंग

इंडिकेटर सर्किट को आरपीआई के साथ जोड़ने के लिए, दो ग्राउंड पिन के साथ दो जीपीआईओ पिन लगाए जाने चाहिए।

GPIO पिन चुनने की कोई विशेष आवश्यकता नहीं है।

इंडिकेटर को जोड़ने के लिए आप किसी भी GPIO पिन का उपयोग कर सकते हैं।

लेकिन वायर्ड पिन को अजगर कार्यक्रम में 74LS139 (जैसे ए, बी) के इनपुट के रूप में नामित किया जाना चाहिए।

चरण 9: पायथन कार्यक्रम

पायथन कार्यक्रम
पायथन कार्यक्रम

जैसा कि सर्किट पूरा हो गया है, इंडिकेटर फ़ंक्शन का उपयोग करने के लिए पायथन प्रोग्राम बनाना आवश्यक है।

प्रोग्राम लॉजिक के बारे में अधिक जानकारी के लिए कृपया ऊपर फ्लो चार्ट देखें।

#-*- कोडिंग:utf-8 -*-

आयात उपप्रक्रिया, संकेत, sys

आयात समय, पुन:

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

ए = 12

बी = 16

जी.सेटमोड (जी.बीसीएम)

g.setup(A, g. OUT)

जी.सेटअप (बी, जी.ओयूटी)

##

डीईएफ़ सिग्नल_हैंडलर (सिग, फ्रेम):

प्रिंट ('आपने Ctrl+C दबाया है!')

जी.आउटपुट (ए, गलत)

जी.आउटपुट (बी, गलत)

एफ.क्लोज़ ()

sys.exit(0)

सिग्नल.सिग्नल (सिग्नल। सिगिनट, सिग्नल_हैंडलर)

##

जबकि सच:

f = खुला ('/ होम/पीआई/My_project/CPU_temperature_log.txt', 'a+')

temp_str = subprocess.check_output('/opt/vc/bin/vcgencmd माप_टेम्प', शेल = ट्रू)

temp_str = temp_str.decode (एन्कोडिंग = 'UTF-8', त्रुटियाँ = 'सख्त')

CPU_temp = re.findall("\d+\.\d+", temp_str)

# वर्तमान CPU तापमान निकालना

current_temp = फ्लोट (CPU_temp [0])

अगर current_temp > 30 और current_temp <40:

# तापमान कम ए = 0, बी = 0

जी.आउटपुट (ए, गलत)

जी.आउटपुट (बी, गलत)

समय सो जाओ(5)

elif current_temp >= ४० और current_temp <४५:

# तापमान माध्यम ए = 0, बी = 1

जी.आउटपुट (ए, गलत)

जी.आउटपुट (बी, ट्रू)

समय सो जाओ(5)

एलिफ करंट_टेम्प> = ४५ और करंट_टेम्प <५०:

# तापमान उच्च ए = 1, बी = 0

जी.आउटपुट (ए, ट्रू)

जी.आउटपुट (बी, गलत)

समय सो जाओ(5)

एलिफ करंट_टेम्प> = ५०:

# CPU कूलिंग के लिए उच्च A=1, B=1. की आवश्यकता होती है

जी.आउटपुट (ए, ट्रू)

जी.आउटपुट (बी, ट्रू)

समय सो जाओ(5)

current_time = समय। समय ()

formated_time = time.strftime("%H:%M:%S", time.gmtime(current_time))

f.write(str(formated_time)+'\t'+str(current_temp)+'\n')

एफ.क्लोज़ ()

पायथन प्रोग्राम का मुख्य कार्य नीचे जैसा है।

- सबसे पहले GPIO 12, 16 को आउटपुट पोर्ट के रूप में सेट करें

- लॉग फ़ाइल को बंद करने और GPIO 12, 16. को बंद करने के लिए Ctrl+C इंटरप्ट हैंडलर को परिभाषित करना

- अनंत लूप में प्रवेश करते समय, लॉग फ़ाइल को एपेंड मोड के रूप में खोलें

- "/opt/vc/bin/vcgencmd माप_टेम्प" कमांड निष्पादित करके CPU तापमान पढ़ें

- जब तापमान 30 ~ 39 की सीमा में हो तो ग्रीन एलईडी चालू करने के लिए 00 आउटपुट करें

- जब तापमान ४० ~ ४४ की सीमा में हो तो पीली एलईडी चालू करने के लिए आउटपुट ०१

- जब तापमान ४५ ~ ४९ की सीमा में हो तो रेड एलईडी चालू करने के लिए आउटपुट १०

- जब तापमान 50 से अधिक हो तो रेड एलईडी ब्लिंकिंग करने के लिए आउटपुट 11

- फ़ाइल लॉग करने के लिए समय टिकट और तापमान डेटा लिखें

चरण 10: संकेतक संचालन

संकेतक संचालन
संकेतक संचालन

जब सब कुछ ठीक हो जाता है, तो आप देख सकते हैं कि प्रत्येक एलईडी सीपीयू तापमान के अनुसार चालू या ब्लिंक कर रही है।

वर्तमान तापमान की जांच के लिए आपको शेल कमांड दर्ज करने की आवश्यकता नहीं है।

लॉग फ़ाइल में डेटा एकत्र करने और एक्सेल का उपयोग करके टेक्स्ट डेटा को ग्राफ़ में प्रस्तुत करने के बाद, परिणाम ऊपर चित्र दिखाया गया है।

उच्च भार लागू करते समय (दो मिडोरी ब्राउज़र चलाना और Youtube वीडियो चलाना), CPU तापमान 57.9C तक बढ़ जाता है।

चरण 11: वैकल्पिक बनाना (एनपीएन ट्रांजिस्टर का उपयोग करना) और आगे का विकास

वैकल्पिक बनाना (एनपीएन ट्रांजिस्टर का उपयोग करना) और आगे का विकास
वैकल्पिक बनाना (एनपीएन ट्रांजिस्टर का उपयोग करना) और आगे का विकास

यह NPN ट्रांजिस्टर (2N3904 और BD139) का उपयोग करने वाला पिछला संकेतक प्रोजेक्ट उदाहरण है।

जैसा कि आप देख सकते हैं कि एनपीएन ट्रांजिस्टर को चलाने के लिए एक और आईसी (74एचसी04, क्वाड इनवर्टर) आवश्यक है क्योंकि ट्रांजिस्टर को चालू करने के लिए एनपीएन के आधार पर उच्च स्तर का वोल्टेज लगाया जाना चाहिए।

संक्षेप में, एनपीएन ट्रांजिस्टर का उपयोग करके इंडिकेटर सर्किट बनाने के लिए अनावश्यक जटिलता जोड़ें।

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

सिफारिश की: