तापमान और आर्द्रता पीआई-टीवी -2 को मापने वाला उपकरण

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

मैंने शुरू में स्थानीय स्तर पर तापमान और आर्द्रता देखने की योजना नहीं बनाई थी, क्योंकि मैं सप्ताह के दौरान अधिकांश समय बिताता हूं, पहला, घर के बाहर और दूसरा स्मार्टफोन के साथ। इसलिए, दो विकल्प थे: मौसम को मेल द्वारा प्राप्त करना या किसी उपयुक्त ऑनलाइन सेवा पर अपलोड करना।

ईमानदारी से, सबसे पहले मैं अच्छा करना चाहता था और इसे पानी में फेंक देता हूं, मौसम को Openweathermap.org पर भेजता हूं, और थोड़ी देर के लिए भी किया। लेकिन फिर यह शुरू हुआ - फिर सेवा अचानक विफल हो जाएगी, और मैं बैठा रहा और सोच रहा था कि क्या हुआ, फिर इसका आईपी बदल जाएगा, और मुझे फिर से केंद्रीय नियंत्रक के कोड में आने की आवश्यकता है।

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





नियुक्ति

PI-TV-2 को आर्द्रता और तापमान के वर्तमान मूल्यों को मापने के लिए डिज़ाइन किया गया है, और उन्हें केंद्रीय घरेलू नियंत्रक KTSDV-2-12 हवा में प्रसारित करता है।

इसका कोई अन्य कार्य नहीं है, हालाँकि मुख्य आपूर्ति और बोर्ड पर Arduino Pro मिनी नियंत्रक संकेत देते हैं कि कुछ और जोड़ा जा सकता है। मैं शायद किसी दिन क्या करूँगा।

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

कार्य सिद्धांत

PI-TV-2 को KTSDV-2-12 केंद्रीय होम कंट्रोलर या समान डिवाइस के साथ मिलकर काम करने के लिए डिज़ाइन किया गया है, जो प्राप्त डेटा प्राप्त करने और व्याख्या करने में सक्षम है। डेटा प्रारूप पाठ में कम है और स्केच में भी दिखाई देता है।

PI-TV-2 वर्तमान रीडिंग प्रदर्शित नहीं करता है और तापमान / आर्द्रता सेंसर और एक ट्रांसमीटर को छोड़कर किसी भी बाहरी उपकरणों के लिए वायर्ड कनेक्शन नहीं है।

DHT21 सेंसर द्वारा मापा गया तापमान और आर्द्रता रीडिंग आधे घंटे के अंतराल के साथ एक रेडियो चैनल के माध्यम से केंद्रीय नियंत्रक को प्रेषित की जाती है। केंद्रीय नियंत्रक HTTP POST प्रोटोकॉल के माध्यम से रीडिंग को एक घंटे के अंतराल के साथ पीपल मॉनिटरिंग सेवा पर अपलोड करता है। दोनों अंतराल एक-दूसरे से बंधे नहीं हैं और सिंक्रनाइज़ नहीं हैं।

डेमो सेंसर रीडिंग

सामान्य ऑपरेशन के दौरान, अंतर्निहित Arduino LED लगभग 8 सेकंड के अंतराल पर चमकती है।

त्रुटि सुधार और प्रेषित डेटा के स्वागत और अखंडता का नियंत्रण प्रदान नहीं किया जाता है।

लोहा

डिजाइन द्वारा, पीआई-टीवी -2 बहुत सरल है और इसमें केवल चार मुख्य घटक (लिंक, हमेशा की तरह - उदाहरण के लिए) शामिल हैं:

1. Arduino Pro Mini 5V, ATmega328 चिप के साथ 16 MHz।
2. संयुक्त तापमान और आर्द्रता सेंसर DHT21
3. 433 मेगाहर्ट्ज ट्रांसमीटर आयाम मॉडुलन के साथ ( ऐसी किट से , उदाहरण के लिए)।
4. रेसिस्टर 4.7kOhm, 0.125W
5. बिजली की आपूर्ति 5V - 9V (वैकल्पिक, आप बैटरी या रिचार्जेबल बैटरी के साथ प्रयोग कर सकते हैं)।
6. Arduino Pro Mini में कोड भरने के लिए, आपको यह (या समान) COM-USB कनवर्टर (वैकल्पिक - आपके पास पहले से ही हो सकता है) की आवश्यकता होगी।

यह इस नियंत्रक है - क्योंकि यह कॉम्पैक्ट है और पहले से ही सभी प्रकार के होममेड उत्पादों के लिए मेरे बॉक्स में रखा गया है। और मैंने इन नियंत्रकों का एक पैकेट खरीदा, क्योंकि वे सस्ते थे और संस्करण 3 बी से अधिक सामान्य थे। हां, और मैंने नहीं सोचा था कि मैं इस अर्थव्यवस्था को 3V से खिलाऊंगा, इसलिए 5V अधिक प्रासंगिक था।

। कुछ इस तरह से आप स्केच को भरने के लिए सब कुछ कनेक्ट करेंगे
छवि

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

छवि

मैंने इस तथ्य को ध्यान में रखते हुए मापदंडों का चयन किया कि सेंसर सबसे अधिक संभावना होगा, इसलिए DHT11 नहीं, बल्कि DHT21, जिसमें -40 has का न्यूनतम माप तापमान है। मुझे तुरंत कहना चाहिए: यह मॉस्को के लिए है, और यदि आपके पास अन्य चढ़ाव हैं, तो सेंसर भी पूरी तरह से अलग होगा। उदाहरण के लिए, सुपर-लोकप्रिय DS18B20, जो -55C तक मापता है और आर्द्रता के लिए कुछ और।

। उपयुक्त
छवि

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

एक अन्य विकल्प स्वायत्त या मुख्य शक्ति है। फिर, मैंने ईमानदारी से स्वायत्त शक्ति का उपयोग करने की कोशिश की: मुझे यह विचार पसंद आया कि सेंसर बस तारों के बिना कहीं लटकाएगा। लेकिन यह काम नहीं किया। वास्तव में, यहां तक ​​कि अरुडिनो प्रो मिनी में भी उच्च बिजली की खपत है, अगर आपको नहीं पता कि सब कुछ और सब कुछ कैसे बंद करें। लेकिन मैंने सीखा नहीं है।

"नींद" के विभिन्न पुस्तकालयों के साथ निचोड़ने में मैं जो अधिकतम था, वह टाइप 14500 की बैटरी पर काम करने का एक सप्ताह था। एक ही समय में, कुछ कारणों से कुछ हफ्तों के भीतर दो बैटरी की मृत्यु हो गई। सिद्धांत रूप में, संरक्षण अत्यधिक निर्वहन को रोकने वाला था, लेकिन वास्तव में - यह बस बैटरी को अवरुद्ध करता था। सुरक्षा को हटाकर बैटरी जीवन को एक और सप्ताह के लिए बढ़ा दिया, जिसके बाद वह पूरी तरह से मर गया।

परिणाम एक बिजली की आपूर्ति पक्ष है और कोई चिंता नहीं है।

तार्किक रूप से, विधानसभा इस प्रकार है:

1. DHT21 सेंसर

जीएनडी - शून्य से शक्ति तक;

VCC - VCC Arduino पिन या OUTPUT / हाई मोड में किसी भी Arduino डिजिटल पिन को बैटरी की शक्ति का उपयोग करते समय ऊर्जा बचाने के लिए (कोड 7 यह पिन है) या बिजली आपूर्ति के 5V आउटपुट (यदि आपके पास 5V इकाई है)। सेंसर 9 वी से जुड़ा नहीं हो सकता है;

OUT - सीधे Arduino के 5 को पिन करने के लिए और एक 4.7 kOhm रोकनेवाला के माध्यम से - पावर प्लस (प्लस पर खींचें) के लिए।

। सिद्धांत रूप में, यह तार द्वारा भी दिखाई देता है, लेकिन यह सुनिश्चित करने के लिए कि आपको इसे खोलने की आवश्यकता है
छवि

2. ट्रांसमीटर

जीएनडी - शून्य से शक्ति तक;

वीसीसी - पावर के प्लस (3 वी से 12 वी तक), वीसीसी अरुडिनो को या किसी भी डिजिटल पिन अरुडिनो को OUTPUT / हाई मोड में बैटरी पावर का उपयोग करते समय ऊर्जा बचाने की संभावना के लिए पिन करना भी संभव है (कोड द्वारा पिन 8 है);

DATA - 6 Arduino को पिन करने के लिए।

। इस प्रक्रिया में कुछ इस तरह
छवि

। बैटरी (संचायक) पर गणना
छवि

3. अरुडुइनो

यदि आपके पास 5 वी स्रोत है, तो इसके प्लस को वीसीसी पिन से जोड़ा जा सकता है।

यदि बिजली की आपूर्ति 5 वी (लेकिन 12 वी से अधिक नहीं) से काफी अधिक उत्पादन करती है, तो रॉ पिन के लिए। इसी समय, वीसीसी पिन 5 वी होगा, जिसका उपयोग डीएचटी 21 सेंसर और अन्य बाह्य उपकरणों के लिए किया जा सकता है।

GND Arduino को क्रमशः बिजली की आपूर्ति का माइनस।

"बैटरी से चलने वाले बिजली की बचत के विकल्प" का एक सा। तथ्य यह है कि हम Arduino को सोने के लिए भेज देंगे, लेकिन उन बाह्य उपकरणों के साथ क्या करना है जो लगातार बिजली से जुड़े हुए हैं? आपूर्ति सर्किट पर चाबियाँ बनाने के लिए? बिलकुल नहीं। आखिरकार, Arduino डिजिटल पिन का उपयोग कम-बिजली उपकरणों - ट्रांसमीटर, रिसीवर, कुछ सेंसर को बिजली देने के लिए किया जा सकता है।

और यह बदले में, बाह्य उपकरणों को आवश्यकतानुसार चालू और बंद करना आसान बनाता है। इसे सक्षम करने के लिए, बस पिन को OUTPUT मोड में अनुवादित करें, इसे लिखें और 5V पावर प्राप्त करें। और बंद करने के लिए, उसी पिन में लिखें LOW।

यह सब तर्क के साथ है।

शारीरिक रूप से, विधानसभा इस तथ्य से जटिल है कि, सबसे पहले, मैंने वायरलेस कॉल से मामले में सब कुछ रखा, क्योंकि मैं इसकी बैटरी डिब्बे का उपयोग करने की उम्मीद कर रहा था। वैसे, ऐसा हुआ कि Arduino संकेतक एलईडी पूर्व कॉल के "लाइट संगीत" की खिड़की के बगल में निकला, जिससे कि इसके माध्यम से नियंत्रक की गतिविधि की निगरानी करना संभव हो गया, क्योंकि कोड समय-समय पर चमकती का सुझाव देता है (हाँ, हाँ, यह यहाँ है!)।

। जब तक मैंने बिजली एलईडी को बाहर निकाला - यह दिखाई दे रहा था और
छवि

दूसरे, मैंने मौसम सेंसर के रखरखाव में आसानी के लिए प्लग कनेक्टर के माध्यम से DHT21 सेंसर को कनेक्ट किया। मैंने सेंसर तार को बढ़ाया ताकि इसे बिना किसी समस्या के खिड़की से बाहर निकाला जा सके।

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

खिड़की के बाहर सेंसर को ठीक करने के लिए, मैंने उस पर एक छोटा चुंबक चिपकाया। इस रूप में, सेंसर "चिपकता है" टोपी का छज्जा या "खिड़की दासा"। मैं इसे नीचे से उपवास करता हूं ताकि यह पानी से बाढ़ न जाए और सूरज के साथ गर्म न हो।

अंतिम संस्करण में पूरे पीआई-टीवी -2 को बिजली देने के लिए मैंने मौजूदा नेटवर्क एडाप्टर के लिए कनेक्टर के साथ तार का एक टुकड़ा इस्तेमाल किया।

ठीक है, मौसम संवेदक स्वयं एक ही मैग्नेट के साथ खिड़की पर लटका हुआ है: सेंसर पर एक चुंबक, खिड़की पर दूसरा। वैसे, वे चेहरे से बहुत सफलतापूर्वक जुड़ जाते हैं (चुंबक की मोटाई एक मिलीमीटर के बारे में है), जो काफी हद तक कम कर देता है: सेंसर ऐसा है मानो बस फ्रेम से चिपके हुए हैं।

। यह भी बहुत सौंदर्य से प्रसन्न नहीं है, लेकिन पीठ पर
छवि

मुलायम

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

कृपया ध्यान दें: एक 14500 की बैटरी पर्याप्त नहीं है, इसलिए आपको दो की आवश्यकता है। और दो - यह बैटरी पर बोर्ड की विशेषताओं के अनुसार कुल 7.4V है (और फुल चार्ज होने के तुरंत बाद 8.4V), इसलिए आपको RAW Arduino पिन से कनेक्ट करने की आवश्यकता है ताकि इसे न मारें। और DHT21 सेंसर, क्रमशः, केवल VCC Arduino पिन या डिजिटल पिन की आपूर्ति करने के लिए।

चूंकि प्रयुक्त ऊर्जा-बचत पुस्तकालय 8 सेकंड से अधिक समय के लिए नियंत्रक को euthanizes करता है, इसलिए इसकी कॉल एक ऐसे चक्र में रहती है जो लगभग आधे घंटे का समय प्रदान करती है, लेकिन यह बहुत स्वस्थ नहीं है।

एक ही चक्र में, अंतर्निहित Arduino एलईडी चमकती है। बैटरी पर काम करते समय, इसने नियंत्रक को जीवित करने के लिए जल्दी और आसानी से समझना संभव बना दिया है, या यह रिचार्ज करने का समय है। अब यह केवल गतिविधि का एक संकेतक है।

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

रीडिंग प्रेषित करने के लिए, मैं उपयोग करता हूं, इसलिए बोलने के लिए, आरसी-स्विच के शीर्ष पर काम करने वाला एक मालिकाना प्रोटोकॉल। यह इस तरह दिखता है: सेंसर 161HSXXX फॉर्म की संख्या को प्रसारित करता है, जहां एच आर्द्रता का संकेत है, एस तापमान का संकेत है, एक्सएक्सएक्स 10 बार दसवीं कक्षा के लिए सटीक जलवायु पैरामीटर का मूल्य है।

यदि H = 1 है, तो नियंत्रक आर्द्रता रीडिंग को प्रसारित करता है। यदि H = 0, नियंत्रक को लगता है कि यह तापमान प्राप्त कर चुका है। यदि एस = 0, तापमान सकारात्मक माना जाता है, यदि एस = 1, तो यह नकारात्मक है।

केंद्रीय नियंत्रक की ओर से प्रसंस्करण के लिए समय की गारंटी के लिए दोनों मापदंडों को मौसम संवेदक द्वारा एक छोटे अंतराल के साथ प्रसारित किया जाता है, जो तब इंटरनेट पर प्रसारण के लिए HTTP POST अनुरोध के सभी रूप को आकर्षित करता है। " लोगों की निगरानी " का उपयोग करके मापदंडों का भंडारण और विज़ुअलाइज़ेशन किया जाता है। बेशक, आप किसी अन्य उपयुक्त संसाधन या अपनी सेवा का चयन कर सकते हैं, लेकिन फिर मौजूदा प्रारूप में डेटा प्राप्त करने के लिए केंद्रीय नियंत्रक या अपनी सेवा के कोड को सही करना न भूलें।

यह मत भूलो कि इस कोड को संकलित करने के लिए आपको तीन गैर-मानक पुस्तकालयों की आवश्यकता होगी:

1. सेंसर के लिए DHT22
2. बिजली की बचत मोड के लिए LowPower
3. आरसी-स्विच रीडिंग प्रेषित करने के लिए।

वायरलेस मौसम सेंसर स्केच
// 23.11.2013 -       ,   Low Power #include <LowPower.h> // https://github.com/rocketscream/Low-Power #include <DHT22.h> //   https://github.com/nethoncho/Arduino-DHT22 #include <RCSwitch.h> // http://code.google.com/p/rc-switch/ //    4.7  VCC   Out DHT22 #define DHT22_PIN 5 // DHT21     5 Arduino //   DHT22 DHT22 myDHT22(DHT22_PIN); #define txPIN 6 //   #define sensorPower 7 //   #define txPower 8 //   //   RCSwitch RCSwitch meteoSwitch = RCSwitch(); byte param = 0; //   (/) unsigned long myData; //    void setup() { pinMode(sensorPower, OUTPUT); //     pinMode(txPower, OUTPUT); //     meteoSwitch.enableTransmit(txPIN); //   meteoSwitch.disableReceive(); getWeather(); //    ,     ,   pinMode(13, OUTPUT); //      Arduino } //     void getWeather() { digitalWrite(sensorPower, HIGH); //   digitalWrite(txPower, HIGH); //   delay(3000); //     DHT22_ERROR_t errorCode; //       errorCode = myDHT22.readData(); if (errorCode == 0) { //    //    if (myDHT22.getTemperatureCInt()>30000) { myData = 16101000 + abs((myDHT22.getTemperatureCInt()-32768));} //  =   +   +   +  else { myData = 16100000 + myDHT22.getTemperatureCInt();} //  =   +   +   +  meteoSwitch.send(myData, 24); //   meteoSwitch.send(myData, 24); //   () delay(1000); //    myData = 16110000 + myDHT22.getHumidityInt(); //  =   +   +  meteoSwitch.send(myData, 24); //   meteoSwitch.send(myData, 24); //   lightsOn(); } digitalWrite(sensorPower, LOW); //   digitalWrite(txPower, LOW); //   } void loop () { for (byte i=0;i<=225;i++){ LowPower.powerDown(SLEEP_8S, ADC_OFF, BOD_OFF); //   lightsOn(); //     } getWeather(); //     } void lightsOn() { digitalWrite(13, HIGH); //   delay(500); digitalWrite(13, LOW); } 




अंतिम शब्द

ऊर्जा दक्षता के बाद सबसे बड़ी समस्या रेडियो चैनल की विश्वसनीयता है। या तो मैं कुछ गलत कर रहा हूं, या घर पर, हस्तक्षेप के साथ कुछ आश्चर्यजनक रूप से खराब स्थिति है, लेकिन सेंसर कम या ज्यादा नियंत्रक से 5-6 मीटर की दूरी पर काम करता है, अगर केवल बड़े टेलीस्कोपिक एंटीना को सामान्य ट्रांसमीटर में खराब कर दिया गया था, या अगर मैं एक अधिक महंगा ट्रांसमीटर का उपयोग करता हूं।

एक और विशेषता यह है कि मेरा DHT21 नमूना वास्तव में अपने उच्च मूल्यों पर नमी को मापना बंद कर देता है। कुछ बिंदु पर, यह बस 99.9% से कम हो जाता है, और जब तक आर्द्रता एक निश्चित सीमा तक कम हो जाती है, तब तक मूल्य नहीं बदलता है।

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

और, फिर, अगर मैंने कहीं गलती की - कहो, मैं इसे सही कर दूंगा।

Source: https://habr.com/ru/post/In211458/


All Articles