- DHT11 सेंसर का अवलोकन:
- पूर्व आवश्यक वस्तुएँ:
- रास्पबेरी पाई पर Adafruit LCD लाइब्रेरी स्थापित करना:
- रास्पबेरी पाई पर Adafruit DHT11 पुस्तकालय स्थापित करना:
- सर्किट आरेख:
- DHT11 सेंसर के लिए पायथन प्रोग्रामिंग:
- रास्पबेरी पाई का उपयोग करके आर्द्रता और तापमान को मापना:
तापमान और आर्द्रता सबसे सामान्य पैरामीटर हैं जिनकी निगरानी किसी भी वातावरण में की जा रही है। तापमान और आर्द्रता मापने के लिए चुनने के लिए कई टन सेंसर हैं, लेकिन इसकी सबसे अच्छी माप सीमा और सटीकता के कारण DHT11 का सबसे अधिक उपयोग किया जाता है । यह एक पिन संचार के साथ भी काम करता है और इसलिए माइक्रोकंट्रोलर या माइक्रोप्रोसेसर के साथ इंटरफेस करना बहुत आसान है। इस ट्यूटोरियल में हम रास्पबेरी पाई के साथ लोकप्रिय DHT11 सेंसर को इंटरफ़ेस करने और 16x2 एलसीडी स्क्रीन पर तापमान और आर्द्रता के मूल्य को प्रदर्शित करने का तरीका जानने जा रहे हैं। हमने पहले से ही IoT रास्पबेरी पाई वेदर स्टेशन के निर्माण के लिए इसका इस्तेमाल किया था।
DHT11 सेंसर का अवलोकन:
DHT11 सेंसर निम्नलिखित विनिर्देशों के साथ सापेक्ष आर्द्रता और तापमान को माप सकता है
तापमान रेंज: 0-50 ° C तापमान सटीकता: C 2 ° C आर्द्रता सीमा: 20-90% आरएच आर्द्रता सटीकता: ° 5%
DHT11 सेंसर या तो मॉड्यूल रूप में या सेंसर रूप में उपलब्ध है। इस ट्यूटोरियल में हम सेंसर के मॉड्यूल रूप का उपयोग कर रहे हैं, दोनों के बीच एकमात्र अंतर यह है कि मॉड्यूल रूप में सेंसर में फ़िल्टरिंग कैपेसिटर होता है और सेंसर के आउटपुट पिन से जुड़ा पुल अप रेज़र होता है। तो अगर आप अकेले सेंसर का उपयोग कर रहे हैं, तो सुनिश्चित करें कि आप इन दो घटकों को जोड़ते हैं। इसके अलावा DHT11 को Arduino के साथ इंटरफेस करना सीखें।
DHT11 सेंसर कैसे काम करता है:
DHT11 सेंसर एक नीले या सफेद रंग के आवरण के साथ आता है। इस आवरण के अंदर हमारे दो महत्वपूर्ण घटक होते हैं जो हमें सापेक्ष आर्द्रता और तापमान को समझने में मदद करते हैं। पहला घटक इलेक्ट्रोड की एक जोड़ी है; इन दो इलेक्ट्रोड के बीच विद्युत प्रतिरोध एक नमी धारण सब्सट्रेट द्वारा तय किया जाता है। तो मापा प्रतिरोध पर्यावरण के सापेक्ष आर्द्रता के विपरीत आनुपातिक है। उच्च सापेक्ष आर्द्रता कम प्रतिरोध और इसके विपरीत का मूल्य होगा। यह भी ध्यान दें कि सापेक्ष आर्द्रता वास्तविक आर्द्रता से अलग है। सापेक्ष आर्द्रता हवा में तापमान के सापेक्ष हवा में पानी की मात्रा को मापती है।
अन्य घटक एक सतह घुड़सवार एनटीसी थर्मिस्टर है । NTC शब्द नकारात्मक तापमान गुणांक के लिए है, तापमान में वृद्धि के लिए प्रतिरोध का मूल्य घट जाएगा
पूर्व आवश्यक वस्तुएँ:
यह माना जाता है कि आपका रास्पबेरी पाई पहले से ही एक ऑपरेटिंग सिस्टम के साथ फ्लैश किया गया है और इंटरनेट से कनेक्ट करने में सक्षम है। यदि नहीं, तो आगे बढ़ने से पहले रास्पबेरी पाई ट्यूटोरियल के साथ आरंभ करें का पालन करें।
यह भी माना जाता है कि आपके पास टर्मिनल विंडो या अन्य एप्लिकेशन के माध्यम से आपके पाई तक पहुंच है, जिसके माध्यम से आप अजगर कार्यक्रमों को लिख और निष्पादित कर सकते हैं और टर्मिनल विंडो का उपयोग कर सकते हैं।
रास्पबेरी पाई पर Adafruit LCD लाइब्रेरी स्थापित करना:
तापमान और आर्द्रता का मूल्य 16 * 2 एलसीडी डिस्प्ले पर प्रदर्शित किया जाएगा। Adafruit हमें 4-बिट मोड में इस एलसीडी को आसानी से संचालित करने के लिए एक लाइब्रेरी प्रदान करता है, इसलिए हम टर्मिनल विंडो Pi को खोलकर और नीचे दिए गए चरणों का पालन करके इसे अपने रास्पबेरी पाई में जोड़ दें।
चरण 1: नीचे पंक्ति का उपयोग करके अपने रास्पबेरी पाई पर गिट स्थापित करें। Git आपको Github पर किसी भी प्रोजेक्ट फाइल को क्लोन करने और अपने रास्पबेरी पाई पर उपयोग करने की अनुमति देता है। हमारा पुस्तकालय जीथूब पर है इसलिए हमें उस पुस्तकालय को पीआई में डाउनलोड करने के लिए गिट स्थापित करना होगा।
apt-get install गिट
चरण 2: निम्न लाइन GitHub पेज से लिंक होती है, जहां लाइब्रेरी मौजूद है, जहां केवल Pi होम डायरेक्टरी में प्रोजेक्ट फाइल को क्लोन करने के लिए लाइन निष्पादित करें
git क्लोन क्लोन git: //github.com/adafruit/Adafruit_Python_CharLCD
चरण 3: निर्देशिका लाइन को बदलने के लिए नीचे दिए गए कमांड का उपयोग करें, जिस प्रोजेक्ट फ़ाइल को हमने अभी डाउनलोड किया है। कमांड लाइन नीचे दी गई है
cd Adafruit_Python_CharLCD
चरण 4: निर्देशिका के अंदर एक फाइल होगी जिसे सेटअप थ्रीडीम कहा जाता है, हमें इसे स्थापित करना होगा, लाइब्रेरी स्थापित करना होगा। लाइब्रेरी स्थापित करने के लिए निम्न कोड का उपयोग करें
sudo python setup.py इंस्टॉल
यही कारण है कि पुस्तकालय को सफलतापूर्वक स्थापित किया जाना चाहिए था । अब इसी तरह से DHT लाइब्रेरी को स्थापित करने के लिए आगे बढ़ें जो कि Adafruit की भी है।
रास्पबेरी पाई पर Adafruit DHT11 पुस्तकालय स्थापित करना:
DHT11 सेंसर एक-तार प्रणाली के सिद्धांत के साथ काम करता है। तापमान और आर्द्रता का मूल्य संवेदक द्वारा महसूस किया जाता है और फिर सीरियल डेटा के रूप में आउटपुट पिन के माध्यम से प्रेषित होता है। फिर हम MCU / MPU पर I / O पिन का उपयोग करके इन आंकड़ों को पढ़ सकते हैं। यह समझने के लिए कि ये मान कैसे पढ़े जाते हैं, आपको DHT11 सेंसर की डेटशीट के माध्यम से पढ़ना होगा, लेकिन अब चीजों को सरल रखने के लिए हम DHT11 सेंसर के साथ बात करने के लिए एक लाइब्रेरी का उपयोग करेंगे।
DHT11 पुस्तकालय Adafruit द्वारा प्रदान के साथ-साथ DHT11, DHT22 और अन्य एक तार तापमान सेंसरों के लिए इस्तेमाल किया जा सकता है। DHT11 लाइब्रेरी को स्थापित करने की प्रक्रिया भी एलसीडी लाइब्रेरी को स्थापित करने के लिए उसी के समान है। परिवर्तन करने वाली एकमात्र रेखा GitHub पृष्ठ की लिंक है, जिस पर DHT लाइब्रेरी सहेजी गई है।
DHT लाइब्रेरी को स्थापित करने के लिए टर्मिनल पर एक-एक करके चार कमांड लाइन डालें
git clone
cd Adafruit_Python_DHT sudo apt-get install- Essential python-dev sudo python setup.py install
एक बार यह हो जाने के बाद आपके पास दोनों रास्पबेरी सफलतापूर्वक हमारे रास्पबेरी पाई पर स्थापित होंगे। अब हम हार्डवेयर कनेक्शन के साथ आगे बढ़ सकते हैं।
सर्किट आरेख:
रास्पबेरी पाई के साथ पूरा सर्किट आरेख इंटरफैडिंग डीएच 11 नीचे दिया गया है, इसे फ्रिट्ज़िंग का उपयोग करके बनाया गया था। कनेक्शन का पालन करें और सर्किट बनाएं
दोनों एलसीडी और DHT11 सेंसर + 5V आपूर्ति के साथ काम करते हैं इसलिए हम दोनों रास्पबेरी पाई पर 5V पिन का उपयोग दोनों को शक्ति प्रदान करने के लिए करते हैं। मूल्य 1k के एक पुल अप अवरोधक का उपयोग DHT11 सेंसर के आउटपुट पिन पर किया जाता है, यदि आप एक मॉड्यूल का उपयोग कर रहे हैं तो आप इस अवरोधक से बच सकते हैं।
एलसीडी के विपरीत स्तर को नियंत्रित करने के लिए एलसीडी के वी पिन में 10k का एक ट्रिमर पॉट जोड़ा जाता है। इसके अलावा सभी कनेक्शन बहुत सीधे आगे हैं। लेकिन ध्यान दें कि जिस GPIO पिन का उपयोग आप पिन से कनेक्ट करने के लिए कर रहे हैं क्योंकि हमें अपने प्रोग्राम में इसकी आवश्यकता होगी। नीचे दिए गए चार्ट से आपको GPIO पिन नंबरों का पता लगाना चाहिए।
चार्ट का उपयोग करें और सर्किट आरेख के अनुसार अपने कनेक्शन बनाएं। मैंने अपने कनेक्शन बनाने के लिए ब्रेडबोर्ड और जम्पर तारों का उपयोग किया। चूंकि मैंने DHT11 मॉड्यूल का उपयोग किया था इसलिए मैंने इसे सीधे रास्पबेरी पाई को वायर्ड किया। मेरा हार्डवेयर नीचे इस तरह दिखता था
DHT11 सेंसर के लिए पायथन प्रोग्रामिंग:
हमें DHT11 सेंसर से तापमान और आर्द्रता के मूल्य को पढ़ने के लिए एक कार्यक्रम लिखना होगा और फिर एलसीडी पर समान प्रदर्शित करना होगा। चूंकि हमने एलसीडी और DHT11 सेंसर दोनों के लिए लाइब्रेरियों को डाउनलोड किया है, इसलिए कोड बहुत सीधा होना चाहिए। अजगर पूरा कार्यक्रम इस पृष्ठ के अंत में पाया जा सकता है, लेकिन आप को समझने के लिए कार्यक्रम काम करता है आगे पढ़ सकते हैं।
हमें अपने कार्यक्रम में एलसीडी लाइब्रेरी और DHT11 लाइब्रेरी को आयात करना होगा ताकि इससे संबंधित कार्यों का उपयोग किया जा सके। चूँकि हमने अपने Pi पर पहले ही डाउनलोड और इंस्टॉल कर लिया है, इसलिए हम उन्हें आयात करने के लिए बस निम्नलिखित पंक्तियों का उपयोग कर सकते हैं। हम विलंब फ़ंक्शन का उपयोग करने के लिए समय पुस्तकालय का भी आयात करते हैं ।
आयात समय # देरी समय बनाने के लिए आयात समय Adafruit_CharLCD एलसीडी के रूप में #Import एलसीडी पुस्तकालय आयात Adafruit_DHT # सेंसर के लिए DHT लाइब्रेरी
अगला, हमें यह निर्दिष्ट करना होगा कि सेंसर किस पिन से जुड़ा है और किस प्रकार के तापमान सेंसर का उपयोग किया जाता है। चर सेंसर_नाम को Adafruit_DHT.DHT11 को सौंपा गया है क्योंकि हम यहाँ DHT11 सेंसर का उपयोग कर रहे हैं। सेंसर का आउटपुट पिन रास्पबेरी पाई के GPIO 17 से जुड़ा है और इसलिए हम नीचे दिखाए गए अनुसार 17 से Sens_pin वेरिएबल असाइन करते हैं।
Sens_name = Adafruit_DHT.DHT11 #we DHT11 सेंसर का उपयोग कर रहा है सेंसर_पिन = 17 # सेंसर GPIO17 पर पाई से जुड़ा है
इसी तरह, हमें यह भी परिभाषित करना होगा कि GPIO पिन किस एलसीडी से जुड़ा है । यहां हम 4-बिट मोड में एलसीडी का उपयोग कर रहे हैं इसलिए पीआई के जीपीओ पिन से कनेक्ट करने के लिए हमारे पास चार डेटा पिन और दो कंट्रोल पिन होंगे। इसके अलावा, आप बैकलाइट पिन को GPIO पिन से जोड़ सकते हैं यदि हम बैकलाइट को भी नियंत्रित करना चाहते हैं। लेकिन अब मैं इसका उपयोग नहीं कर रहा हूं इसलिए मैंने इसे 0 को सौंपा है।
lcd_rs = LCD का 7 #RS PIIO से GPIO 7 से जुड़ा हुआ है lcd_en = 8 # LCD LCD से जुड़ा है PIIO पर 8 से जुड़ा है lcd_d4 = 25 # एलसीडी का D4, LCD से GPIO 25 से जुड़ा है lcd_d5 = 24 # एलसीडी का D5 है GPIO 24 से जुड़ा हुआ है PI lcd_d6 = 23 # LCD का D6, GPIO 23 से PI lcd_d7 = 18 # D7 से जुड़ा है LCD का D7 GPIO 18 से जुड़ा है PI lcd_backlight = 0 #LED जुड़ा नहीं है इसलिए हम 0 को असाइन करते हैं
आप रास्पबेरी पाई के साथ 8-बिट मोड में एलसीडी को भी कनेक्ट कर सकते हैं लेकिन फिर मुफ्त पिन कम हो जाएंगे।
Adafruit का एलसीडी लाइब्रेरी जिसे हमने डाउनलोड किया है, इसका उपयोग सभी प्रकार के विशेषता एलसीडी डिस्प्ले के लिए किया जा सकता है। यहां हमारी परियोजना में हम 16 * 2 एलसीडी डिस्प्ले का उपयोग कर रहे हैं, इसलिए हम नीचे दिखाए गए एक चर के लिए पंक्तियों और स्तंभों की संख्या का उल्लेख कर रहे हैं।
lcd_columns = 16 #for 16 * 2 LCD lcd_rows = 2 #for 16 * 2 LCD
अब, जब हमने एलसीडी पिन और एलसीडी के लिए पंक्तियों और स्तंभों की संख्या घोषित की है, तो हम निम्नलिखित लाइन का उपयोग करके एलसीडी डिस्प्ले को आरंभ कर सकते हैं जो सभी आवश्यक जानकारी पुस्तकालय में भेजते हैं।
lcd = LCD.Adafruit_CharLCD (lcd_rs, lcd_d4, lcd_d5, lcd_d6, lcd_d7, lcd_columns, lcd_rows, lcd_backlight) #S पुस्तकालय के लिए सभी पिन विवरण भेजें
कार्यक्रम शुरू करने के लिए, हम lcd.message () फ़ंक्शन का उपयोग करके एक छोटा इंट्रो संदेश प्रदर्शित करते हैं और फिर संदेश को पठनीय बनाने के लिए 2 सेकंड की देरी देते हैं। 2 एन डी लाइन पर मुद्रण के लिए कमांड \ n का उपयोग नीचे दिखाए गए अनुसार किया जा सकता है
lcd .message ('PHT11 with Pi \ n -CircuitDigest') # एक इंट्रो मैसेज टाइम दे। स्लीप (2) # सेकंड 2 सेकेंड के लिए
अंत में, हमारे अंदर है, जबकि पाश हम तापमान और आर्द्रता का मूल्य पढ़ना चाहिए सेंसर से और यह हर 2 सेकंड के लिए एलसीडी स्क्रीन पर प्रदर्शित करते हैं। जबकि लूप के अंदर पूरा कार्यक्रम नीचे दिखाया गया है
जबकि 1: # अनिश्चित लूप
आर्द्रता, तापमान = Adafruit_DHT.read_retry (Sens_name, sensor_pin) # सेंसर से फैलता है और तापमान और आर्द्रता भिन्नता में संबंधित मूल्यों को बचाता है
lcd.clear () एलसीडी स्क्रीन #Clear lcd.message ('अस्थायी = सी.1f%'% तापमान) # प्रदर्शन तापमान का मूल्य lcd.message ('\ Nhum =%.1f %%'% आर्द्रता) #Display 2 सेकंड के लिए आर्द्रता समय (2) का मान # निर्धारित करें फिर मानों को अपडेट करें
हम नीचे इस एकल लाइन का उपयोग करके आसानी से सेंसर से तापमान और आर्द्रता का मूल्य प्राप्त कर सकते हैं। जैसा कि आप देख सकते हैं कि यह दो मानों को लौटाता है जो चर आर्द्रता और तापमान में संग्रहीत होता है । Sensor_name और sensor_pin विवरण पैरामीटर के रूप में पारित कर रहे हैं; ये मूल्य कार्यक्रम की शुरुआत में अपडेट किए गए थे
आर्द्रता, तापमान = Adafruit_DHT.read_retry (सेंसर_नाम, सेंसर_पीएन)
एलसीडी स्क्रीन पर एक चर नाम प्रदर्शित करने के लिए हम पहचानकर्ताओं का उपयोग कर सकते हैं जैसे & d,% c आदि। यहाँ चूंकि हम दशमलव बिंदु के बाद केवल एक अंक के साथ एक फ्लोटिंग पॉइंट नंबर प्रदर्शित कर रहे हैं, हम मान प्रदर्शित करने के लिए पहचानकर्ता%.1f का उपयोग करते हैं । परिवर्तनशील तापमान और आर्द्रता
lcd .message ('Temp =%.1f C'% तापमान) एलसीडी .message ('\ nHum =%.1f %%'% आर्द्रता)
रास्पबेरी पाई का उपयोग करके आर्द्रता और तापमान को मापना:
सर्किट आरेख के अनुसार कनेक्शन बनाएं और आवश्यक लाइब्रेरी स्थापित करें। फिर इस पृष्ठ के अंत में दिए गए अजगर कार्यक्रम को लॉन्च करें। आपके एलसीडी को एक इंट्रो संदेश प्रदर्शित करना चाहिए और फिर वर्तमान तापमान और आर्द्रता मान प्रदर्शित करना चाहिए जैसा कि नीचे की छवि में दिखाया गया है।
यदि आपको एलसीडी प्रदर्शित होने वाला कुछ भी नहीं मिलता है, तो जांच करें कि क्या पायथन शेल विंडो किसी भी एरोस को प्रदर्शित कर रही है, यदि कोई त्रुटि प्रदर्शित नहीं होती है, तो अपने कनेक्शनों को एक बार फिर से जांचें और एलसीडी के विपरीत स्तर को बदलने के लिए पोटेंशियोमीटर को समायोजित करें और जांचें कि क्या आपको कुछ भी मिलता है। स्क्रीन।
आशा है कि आप इस परियोजना को समझ गए हैं और इसे बनाने का आनंद ले रहे हैं, अगर आपको इसे टिप्पणी अनुभाग पर रिपोर्ट करने में कोई समस्या का सामना करना पड़ा है या तकनीकी सहायता के लिए मंच का उपयोग करना है। मैं सभी टिप्पणियों का जवाब देने की पूरी कोशिश करूंगा।
आप अन्य माइक्रोकंट्रोलर के साथ DHT11 का उपयोग करके हमारी अन्य परियोजनाओं की भी जांच कर सकते हैं।