- ADC0804 और रास्पबेरी पाई:
- LM35 तापमान सेंसर:
- आवश्यक घटक:
- सर्किट और कार्य विवरण:
- प्रोग्रामिंग स्पष्टीकरण:
हमने अपनी रास्पबेरी पाई ट्यूटोरियल सीरीज़ में ज्यादातर रास्पबेरी पाई के साथ सभी बुनियादी घटकों को शामिल किया है। हमने सभी ट्यूटोरियल को सरल और विस्तृत तरीके से कवर किया है, ताकि कोई भी, चाहे उसने रास्पबेरी पाई के साथ काम किया हो या नहीं, इस श्रृंखला से आसानी से सीख सकता है। और सभी ट्यूटोरियल से गुजरने के बाद आप रास्पबेरी पाई का उपयोग करके कुछ उच्च स्तरीय परियोजनाओं का निर्माण करने में सक्षम होंगे।
इसलिए यहां हम पिछले ट्यूटोरियल के आधार पर पहला आवेदन तैयार कर रहे हैं। पहला मूल अनुप्रयोग रास्पबेरी पाई द्वारा एक रीडिंग रूम तापमान है । और आप कंप्यूटर पर रीडिंग की निगरानी कर सकते हैं।
जैसा कि पिछले ट्यूटोरियल में चर्चा की गई थी, रास्पबेरी पाई में आंतरिक रूप से प्रदान किए गए कोई एडीसी चैनल नहीं हैं। इसलिए यदि हम किसी एनालॉग सेंसर को इंटरफ़ेस करना चाहते हैं तो हमें ADC रूपांतरण इकाई की आवश्यकता है। और हमारे ट्यूटोरियल में से एक में हमने एनालॉग वैल्यू पढ़ने के लिए ADC0804 चिप को रास्पबेरी पाई को दिया है। तो इस कमरे के तापमान थर्मामीटर के निर्माण से पहले इसके माध्यम से जाएं ।
ADC0804 और रास्पबेरी पाई:
ADC0804 एक चिप है जिसे एनालॉग सिग्नल को 8 बिट डिजिटल डेटा में बदलने के लिए डिज़ाइन किया गया है। यह चिप एडीसी की लोकप्रिय श्रृंखला में से एक है। यह एक 8bit रूपांतरण इकाई है, इसलिए हमारे पास मान या 0 से 255 मान हैं। हमारे द्वारा चुने गए संदर्भ वोल्टेज के आधार पर इस चिप का रिज़ॉल्यूशन बदल जाता है, हम बाद में इसके बारे में अधिक बात करेंगे। नीचे ADC0804 का पिनआउट दिया गया है:
अब यहाँ एक और महत्वपूर्ण बात है, ADC0804 5V पर काम करता है और इसलिए यह 5V लॉजिक सिग्नल में आउटपुट प्रदान करता है। 8 पिन आउटपुट (8 बिट्स का प्रतिनिधित्व) में, हर पिन तर्क '1' का प्रतिनिधित्व करने के लिए + 5V आउटपुट प्रदान करता है। तो समस्या यह है कि PI लॉजिक + 3.3v का है, इसलिए आप PI के + 3.3V GPIO पिन में 5V तर्क नहीं दे सकते। यदि आप PI के किसी भी GPIO पिन को + 5V देते हैं, तो बोर्ड क्षतिग्रस्त हो जाता है।
इसलिए + 5V से लॉजिक स्तर को नीचे ले जाने के लिए, हम वोल्टेज विभक्त सर्किट का उपयोग करेंगे। हमने पहले चर्चा के लिए वोल्ट डिवाइडर सर्किट पर चर्चा की है। हम क्या करेंगे, हम 2 * 2.5V लॉजिक में + 5V तर्क को विभाजित करने के लिए दो प्रतिरोधों का उपयोग करते हैं। इसलिए विभाजन के बाद हम PI को + 2.5v तर्क देंगे। इसलिए, जब भी ADC0804 द्वारा तर्क '1' प्रस्तुत किया जाता है, हम + 5V के बजाय PI GPIO पिन पर + 2.5V देखेंगे।
LM35 तापमान सेंसर:
अब रीडिंग टेम्परेचर ऑफ़ रूम के लिए, हमें एक सेंसर की आवश्यकता है। यहां हम LM35 तापमान सेंसर का उपयोग करने जा रहे हैं । आमतौर पर तापमान "सेंटीग्रेड" या "फ़ारेनहाइट" में मापा जाता है। "LM35" सेंसर डिग्री सेंटीग्रेड में आउटपुट प्रदान करता है।
जैसा कि चित्र में दिखाया गया है, LM35 डिवाइस की तरह एक तीन पिन ट्रांजिस्टर है। पिन के रूप में गिने जाते हैं, PIN1 = Vcc - पावर (+5 V से जुड़ा)
PIN2 = सिग्नल या आउटपुट (ADC चिप से जुड़ा)
पिन 3 = ग्राउंड (जमीन से जुड़ा)
यह सेंसर तापमान के आधार पर आउटपुट पर वैरिएबल वोल्टेज प्रदान करता है। तापमान में प्रत्येक +1 सेंटीग्रेड वृद्धि के लिए आउटपुट पिन पर + 10mV उच्च वोल्टेज होगा। इसलिए यदि तापमान 0◦ सेंटीग्रेड है तो सेंसर का आउटपुट 0V होगा, यदि तापमान 10◦ सेंटीग्रेड है तो सेंसर का आउटपुट + 100mV होगा, अगर तापमान 25◦ सेंटीग्रेड है तो सेंसर का आउटपुट + 250mV होगा।
आवश्यक घटक:
यहां हम रास्पबेरी जेसी ओएस के साथ रास्पबेरी पाई 2 मॉडल बी का उपयोग कर रहे हैं । सभी मूल हार्डवेयर और सॉफ़्टवेयर आवश्यकताओं पर पहले से चर्चा की जाती है, आप इसे रास्पबेरी पाई परिचय में देख सकते हैं, इसके अलावा, हमें इसकी आवश्यकता है:
- कनेक्टिंग पिन
- 1 वर्ग मीटर (17 टुकड़े)
- 10K पॉट
- 0.1F संधारित्र
- 100F संधारित्र
- 1000F संधारित्र
- ADC0804 आईसी
- LM35 तापमान सेंसर
- ब्रेड बोर्ड
सर्किट और कार्य विवरण:
रास्पबेरी को ADC0804 और LM35 से जोड़ने के लिए जो कनेक्शन किए गए हैं, वे नीचे दिए गए सर्किट आरेख में दिखाए गए हैं।
LM35 आउटपुट में बहुत अधिक वोल्टेज में उतार-चढ़ाव होता है; इसलिए 100uF संधारित्र का उपयोग आउटपुट को सुचारू करने के लिए किया जाता है, जैसा कि चित्र में दिखाया गया है।
एडीसी में हमेशा बहुत शोर होता है, यह शोर प्रदर्शन को बहुत प्रभावित कर सकता है, इसलिए हम शोर निस्पंदन के लिए 0.1uF संधारित्र का उपयोग करते हैं । इसके बिना आउटपुट में बहुत उतार-चढ़ाव होंगे।
चिप RC (रेसिस्टर-कैपेसिटर) ऑसिलेटर घड़ी पर काम करती है। जैसा कि सर्किट आरेख में दिखाया गया है , C2 और R20 एक घड़ी बनाते हैं । यहां याद रखने वाली महत्वपूर्ण बात यह है कि संधारित्र C2 को एडीसी रूपांतरण की उच्च दर के लिए कम मूल्य में बदला जा सकता है। हालांकि उच्च गति के साथ सटीकता में कमी होगी। इसलिए यदि एप्लिकेशन को उच्च सटीकता की आवश्यकता होती है, तो संधारित्र को उच्च मूल्य के साथ चुनें और उच्च गति के लिए कम मान वाले संधारित्र का चयन करें।
जैसा कि पहले बताया गया है कि LM35 हर सेंटीग्रेड के लिए + 10mV प्रदान करता है। अधिकतम तापमान जिसे LM35 द्वारा मापा जा सकता है वह 150ig सेंटीग्रेड है। इसलिए हमारे पास LM35 आउटपुट टर्मिनल पर अधिकतम 1.5V होगा। लेकिन ADC0804 का डिफ़ॉल्ट संदर्भ वोल्टेज + 5 वी है। इसलिए यदि हम उस संदर्भ मूल्य का उपयोग करते हैं, तो आउटपुट का रिज़ॉल्यूशन कम होगा क्योंकि हम डिजिटल आउटपुट रेंज का अधिकतम (5 / 1.5) 34% का उपयोग कर रहे होंगे।
सौभाग्य से ADC0804 में एक समायोज्य Vref पिन (PIN9) है जैसा कि ऊपर इसका पिन डायग्राम दिखाया गया है। इसलिए हम चिप के Vref को + 2V पर सेट करेंगे । Vref + 2V सेट करने के लिए, हमें PIN9 पर + 1V (VREF / 2) का वोल्टेज प्रदान करना होगा। यहां हम PIN9 पर वोल्टेज को समायोजित करने के लिए 10K पॉट का उपयोग कर रहे हैं + 1V। सटीक वोल्टेज प्राप्त करने के लिए वोल्टमीटर का उपयोग करें।
हमने पहले Arduino के साथ और AVR माइक्रोकंट्रोलर के साथ कमरे के तापमान को पढ़ने के लिए LM35 तापमान सेंसर का उपयोग किया है। Arduino का उपयोग करके आर्द्रता और तापमान माप की भी जाँच करें
प्रोग्रामिंग स्पष्टीकरण:
एक बार जब सब कुछ सर्किट आरेख के अनुसार जुड़ा हुआ है, तो हम PYHTON में प्रोग्राम लिखने के लिए PI को चालू कर सकते हैं ।
हम कुछ आदेशों के बारे में बात करेंगे जिनका हम PYHTON कार्यक्रम में उपयोग करने जा रहे हैं, हम लाइब्रेरी से GPIO फ़ाइल आयात करने जा रहे हैं, नीचे फ़ंक्शन हमें PI के GPIO पिन को प्रोग्राम करने में सक्षम बनाता है। हम "GPIO" का नाम भी "IO" कर रहे हैं, इसलिए जब भी हम GPIO पिन को संदर्भित करना चाहते हैं, तो हम 'IO' शब्द का उपयोग करेंगे।
IO के रूप में RPi.GPIO आयात करें
कभी-कभी, जब GPIO पिन, जिसे हम उपयोग करने की कोशिश कर रहे हैं, हो सकता है कि वह कुछ अन्य कार्य कर रहा हो। उस स्थिति में, हम कार्यक्रम को निष्पादित करते समय चेतावनी प्राप्त करेंगे। नीचे कमांड पीआई को चेतावनी को अनदेखा करने और कार्यक्रम के साथ आगे बढ़ने के लिए कहता है।
IO.setwarnings (गलत)
हम पीआई के GPIO पिन का उल्लेख कर सकते हैं, या तो बोर्ड पर पिन नंबर या उनके फ़ंक्शन नंबर के द्वारा। बोर्ड पर 'PIN 29' की तरह 'GPIO5' है। इसलिए हम यहां बताते हैं कि या तो हम यहां '29' या '5' द्वारा पिन का प्रतिनिधित्व करने जा रहे हैं।
IO.setmode (IO.BCM)
हम इनपुट पिन के रूप में 8 पिन सेट कर रहे हैं। हम इन पिनों द्वारा 8 बिट ADC डेटा का पता लगाएंगे।
IO.setup (4, IO.IN) IO.setup (17, IO.IN) IO.setup (27, IO.IN) IO.setup (22, IO.IN) IO.setup (5, IO.IN) IO.setup (6, IO.IN) IO.setup (13, IO.IN) IO.setup (19, IO.IN)
यदि ब्रेसिज़ में स्थिति सही है, तो लूप के अंदर के बयानों को एक बार निष्पादित किया जाएगा। इसलिए यदि GPIO पिन 19 उच्च जाता है, तो IF लूप के अंदर के स्टेटमेंट्स को एक बार निष्पादित किया जाएगा। यदि GPIO पिन 19 उच्च नहीं जाता है, तो IF लूप के अंदर स्टेटमेंट निष्पादित नहीं किए जाएंगे।
अगर (IO.input (19) == सच):
नीचे कमांड का उपयोग हमेशा के लिए लूप के रूप में किया जाता है, इस कमांड के साथ इस लूप के अंदर के स्टेटमेंट को लगातार निष्पादित किया जाएगा।
जबकि 1:
आगे कोड का स्पष्टीकरण नीचे दिए गए कोड सेक्शन में दिया गया है।
कार्यक्रम लिखने के बाद इसे निष्पादित करने का समय है। कार्यक्रम को निष्पादित करने से पहले, सर्किट में सारांश के रूप में क्या हो रहा है, इस पर बातचीत करने देता है । पहले LM35 सेंसर कमरे के तापमान का पता लगाता है और इसके आउटपुट पर एक एनालॉग वोल्टेज प्रदान करता है। यह वैरिएबल वोल्टेज + 10mV प्रति voltageC के साथ रैखिक रूप से तापमान का प्रतिनिधित्व करता है। यह संकेत ADC0804 चिप को खिलाया जाता है, यह चिप एनालॉग वैल्यू को 255/200 = 1.275 काउंट per10mv या 1.275count 1degree के साथ डिजिटल वैल्यू में बदल देता है। यह गिनती PI GPIO द्वारा ली गई है। कार्यक्रम गणना को तापमान मूल्य में परिवर्तित करता है और इसे स्क्रीन पर प्रदर्शित करता है। पीआई द्वारा पढ़ा गया विशिष्ट तापमान नीचे दिखाया गया है, इसलिए हम इस रास्पबेरी पाई तापमान की निगरानी करते हैं ।