हम InfluxDB, Grafana, Docker और Raspberry Pi पर एक वायु गुणवत्ता नियंत्रण सेंसर बनाते हैं

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



सामग्री



परिचय


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



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





आवश्यक उपकरण


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



मुझे मिलाप नहीं चाहिए


यदि आप मिलाप नहीं करना चाहते हैं, तो आपको आवश्यकता होगी:


मैं मिलाप करना चाहता हूं - मुझे दे दो!


यदि आप एक टांका लगाने वाला लोहा लेने के लिए खुश हैं, तो आपको आवश्यकता होगी:


अन्य सेंसर


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



रिसर के साथ बॉश बीएमई 680 को अलग-अलग आपूर्तिकर्ताओं से अलग-अलग कीमतों पर ऑर्डर किया जा सकता है।


नोट। लेख में हम पिमोरोनी का उपयोग करते हैं: इस बोर्ड का अतिरिक्त लाभ है कि संपर्क रास्पबेरी पिओ रियो के लिए सही क्रम में टूट गए हैं। अन्य कार्डों का उपयोग करते समय, आपको यह सत्यापित करना होगा कि पावर, ग्राउंड और I2C बस पिन (SDA और SCL) मैच, जैसा कि बाद में मैनुअल में बताया गया है।

सॉफ्टवेयर


हमने गिटहब पर बालना-अर्थ परियोजना खोली, जिसमें सभी सॉफ्टवेयर, कॉन्फ़िगरेशन और कोड हैं जो आपको एक कार्य प्रणाली के लिए आवश्यक हैं। हम रास्पबेरी पाई के लिए सभी सॉफ्टवेयर वितरित करने के लिए, साथ ही रिमोट एक्सेस के लिए इस प्रोजेक्ट को एक मुफ्त बैलेक्लाउड खाते पर तैनात करने जा रहे हैं। इसलिए, आप की आवश्यकता होगी:


उपकरण विधानसभा


इस परियोजना के हार्डवेयर मोर्चे पर बहुत कम काम है। हमारा लक्ष्य सेंसर बोर्ड को रास्पबेरी पाई पर GPIO पिन से जोड़ना है।

BME680 रास्पबेरी पाई के साथ I2C (आई-स्क्वॉयर-व्यू) नामक एक बस के माध्यम से संचार करता है, जो दो तारों के साथ एक सीरियल बस है। इन दो तारों को सिंक्रोनाइज़ेशन लाइन (SCK) और डेटा लाइन (SDA) कहा जाता है। दो तारों के अलावा, सेंसर को बिजली की आपूर्ति करना आवश्यक है (3.3V या 3V3) और इसे जमीन।

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

यदि आप पिमोरोनी या किसी अन्य रिसर का उपयोग करके सेंसर को सीधे रास्पबेरी पाई से कनेक्ट करने का निर्णय लेते हैं, तो मुख्य बात ऊपर वर्णित संपर्कों (एसडीए, एससीके, 3 वी 3 और जीएनडी) का सही कनेक्शन सुनिश्चित करना है।



रास्पबेरी पाई पर GPIO के साथ काम करने के लिए एक उपयोगी साइट pinout.xyz है ; यह स्पष्ट रूप से दिखाता है कि हमें पिंस 1 (3V3 पावर), 3 (SDA), 5 (SCL) और 9 (ग्राउंड) की आवश्यकता है। पीआई 2 और बाद में एक 40-पिन GPIO मानक है। यदि आप एक पिमोरोनी बोर्ड का उपयोग करते हैं, तो बोर्ड को जोड़ने के लिए संपर्क सही क्रम में हैं। ध्यान दें कि बोर्ड पर शिलालेख ऊपर पिनआउट आरेख से कैसे मेल खाता है।



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



इसी तरह, यदि आप किसी अन्य सेंसर का उपयोग करते हैं, जहां पिनआउट आरेख बिल्कुल मेल नहीं खाते हैं, तो आप उसी विधि का उपयोग करके इन बोर्डों को पाई से जोड़ सकते हैं। मुख्य बात 3V3, एसडीए, एससीएल और जीएनडी का अनुपालन सुनिश्चित करना है। यदि बोर्ड के पास एसडीआई, एसडीओ, सीएस के लिए संपर्क हैं - तो आप उन्हें अनदेखा कर सकते हैं, क्योंकि उनका उपयोग वैकल्पिक एसपीआई इंटरफ़ेस के लिए किया जाता है, जिसका हम इस परियोजना में उपयोग नहीं करते हैं।

उपरोक्त तस्वीरों में, हमारे पास रास्पबेरी पाई 3 ए + है, लेकिन पाई जीरो एक सस्ता समाधान के रूप में भी उपयुक्त है।

रास्पबेरी पाई कॉन्फ़िगर करें


हम बैलेओएस ऑपरेटिंग सिस्टम के साथ एसडी कार्ड को फ्लैश करने जा रहे हैं, बैलेक्लाउड क्लाउड के साथ संलग्न होते हैं, हमारे डिवाइस को वहां जोड़ते हैं और प्रोजेक्ट को कॉन्फ़िगर करते हैं ताकि बाद में इसे आसानी से अपडेट किया जा सके।

सबसे पहले आपको एक balenaCloud खाता सेट करना होगा। इसका मतलब है पंजीकरण करना, एप्लिकेशन जोड़ना और डिवाइस जोड़ना।

चरण 1. balenaCloud के लिए साइन अप करें


यदि आपके पास पहले से ही GitHub या Google खाता है, तो आप पंजीकरण प्रक्रिया से गुजरे बिना इसका उपयोग कर सकते हैं।

चरण 2. एप्लिकेशन बनाना


एप्लिकेशन प्रकार के रूप में सही डिवाइस प्रकार और Starter चयन करके एप्लिकेशन जोड़ें, फिर Create New Application क्लिक Create New Application । यह प्रकार सभी माइक्रोसर्विसेस का समर्थन करता है और दस उपकरणों तक मुफ्त है।

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

चरण 3. डिवाइस जोड़ें और ओएस बूट करें


एप्लिकेशन बनाने के बाद, आप ग्रीन ऐड डिवाइस बटन पर क्लिक करके इस एप्लिकेशन में एक डिवाइस जोड़ सकते हैं। डिवाइस जोड़ते समय, सही डिवाइस प्रकार निर्दिष्ट करें। यदि आप वायरलेस नेटवर्क से कनेक्ट कर रहे हैं, तो आप अपना वाईएफआई एसएसआईडी और पासफ्रेज़ सेट कर सकते हैं।

नोट: रास्पबेरी पाई 3 एनीमेशन में संकेत दिया गया है, अपने डिवाइस के सही प्रकार का चयन करने के लिए मत भूलना!



यह प्रक्रिया एप्लिकेशन और डिवाइस प्रकार के लिए एक कस्टम छवि बनाती है, जिसमें नेटवर्क सेटिंग्स शामिल हैं, यदि निर्दिष्ट है।

नोट: शुरुआत के लिए, कुछ परीक्षण और समस्या निवारण के लिए देव छवि चुनना बेहतर है। विकास और उत्पादन छवियों के बीच अंतर के बारे में अधिक जानकारी के लिए, यहां देखें। यदि आप सुनिश्चित हैं कि आप अभी एक उत्पादन छवि को तैनात करना शुरू कर सकते हैं - कृपया।

चरण 4. रिकॉर्ड एसडी कार्ड और बूट डिवाइस


जब ओएस छवि लोड होती है, तो एसडी कार्ड फ्लैश करने का समय है। आप इसके लिए बालैनेटर का इस्तेमाल कर सकते हैं।



प्रक्रिया पूरी होने के बाद, रास्पबेरी पाई में एसडी कार्ड डालें और पावर स्रोत को कनेक्ट करें।



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



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

सॉफ्टवेयर परिनियोजन


जब आपका रास्पबेरी पाई तैयार किया जाता है, डाउनलोड किया जाता है और बैलेक्लाउड से जुड़ा होता है, तो आप डिवाइस पर एप्लिकेशन कोड स्थापित करने के लिए तैयार हैं।

कार्य केंद्र पर बैलेना सीएलआई उपकरण स्थापित करें


BalenaCloud आपको रास्पबेरी पाई और अन्य उपकरणों के लिए दूरस्थ रूप से एप्लिकेशन सॉफ़्टवेयर / कोड को स्थानांतरित करने की अनुमति देता है। इसे संभव बनाने के लिए, आपके वर्कस्टेशन (रास्पबेरी पाई नहीं) को कुछ न्यूनतम सॉफ्टवेयर आवश्यकताओं को पूरा करना होगा। नोट: इस परियोजना को सफलतापूर्वक तैनात करने के लिए, आपको डिवाइस पर स्वयं किसी भी कमांड को चलाने की आवश्यकता नहीं है, या तो एसएसएच के माध्यम से या बालैनाक्लाउड डैशबोर्ड से। सब कुछ दूर से किया जाता है!

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

सीएलआई टूल के लिए प्रलेखन एनपीएम पैकेज की स्थापना और कॉन्फ़िगरेशन, साथ ही बायनेरिज़ का वर्णन करता है।

जब CLI स्थापित और चल रहा होता है, तो पहला कदम balena login कमांड चलाकर balenaCloud में लॉग इन करना होता है:





जब एक कामकाजी सीएलआई है जो खाते में पंजीकृत है, तो आप रास्पबेरी पाई पर प्रोग्राम स्थापित करने के लिए तैयार हैं।

GitHub से एक प्रोजेक्ट डाउनलोड करना


अगला कदम GitHub से इस परियोजना के लिए कोड डाउनलोड करना है

नीले बटन प्रोजेक्ट ज़िप फ़ाइल को लोड करेगा, लेकिन अगर आप पहले से ही गिट से परिचित हैं, तो आप सामान्य तरीके से git clone उपयोग कर सकते हैं।

रास्पबेरी पाई पर स्थापित करें


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

प्रोजेक्ट डायरेक्टरी से इसे अनपैक करने के बाद, balena push <appName> , जहाँ appName मैनुअल की शुरुआत में निर्दिष्ट किया गया एप्लिकेशन नाम है। उदाहरण के लिए, balena push balenaSense

यदि सब कुछ सही ढंग से किया जाता है, तो कुछ मिनटों के बाद नियंत्रण कक्ष पर आपके डिवाइस की जानकारी स्क्रीन पर चल रही सेवाओं को दिखाना चाहिए, प्रत्येक सॉफ़्टवेयर घटकों में से एक, कुछ इस तरह से:



पहली बार डाउनलोड में कई मिनट लग सकते हैं (आपके इंटरनेट कनेक्शन की गति के आधार पर), लेकिन तब केवल कंटेनर में परिवर्तन डाउनलोड किए जाते हैं, इसलिए सब कुछ बहुत तेज़ी से होता है।

नोट: जब एप्लिकेशन पहली बार शुरू होता है (और आप BME680 का उपयोग करते हैं, Sense HAT का नहीं), सेंसर लगभग पांच मिनट तक 'बर्न-इन' करता है। इस अवधि के दौरान, रीडिंग को डेटाबेस में नहीं डाला और डाला जाएगा। आवेदन उलटी गिनती रिकॉर्ड करेगा, जो बालेंकॉल पैनल में प्रदर्शित है:



जब गिनती शून्य तक पहुँच जाती है, तो आप संदेश 'लूप शुरू ...' देखेंगे। उसके बाद, रीडिंग को हर 10 सेकंड में डेटाबेस में डाला और डाला जाएगा।

डैशबोर्ड देखें


मुझे आशा है कि आपने डिवाइस को फ्लैश किया है, नेटवर्क से जुड़ा है और बिना किसी समस्या के शुरू किया है। Free balenaCloud खाते का उपयोग करने के महान लाभों में से एक Public Device URL सुविधा है।



इस स्विच को सक्रिय करें और डैशबोर्ड तक पहुंचने के लिए नीले तीर आइकन पर क्लिक करें। आप इस लिंक को साझा कर सकते हैं या इसे अपने फोन या अन्य डिवाइस पर बुकमार्क कर सकते हैं। जबकि balenaSense डिवाइस जुड़ा हुआ है और काम कर रहा है, आप डैशबोर्ड को कहीं से भी देख सकते हैं!



यदि आप सार्वजनिक पहुंच को सक्षम नहीं करना चाहते हैं, तो आप अभी भी आईपी पते द्वारा अपने स्वयं के स्थानीय नेटवर्क से डैशबोर्ड देख सकते हैं, जैसा कि ऊपर स्क्रीनशॉट में देखा जा सकता है। आपके अलग-अलग होंगे, लेकिन ब्राउज़र में बस http://<ip-> दर्ज करें, और यदि आप डिवाइस के समान नेटवर्क पर हैं, तो भी आपको डैशबोर्ड तक पहुंच प्राप्त होगी। उदाहरण के लिए, अपने डिवाइस को एक्सेस करने के लिए, मैं http://10.1.231.36 दर्ज करूंगा।

यदि आप ग्राफाना में लॉग इन करना चाहते हैं और सेटिंग्स के साथ खेलना चाहते हैं, तो डिफ़ॉल्ट क्रेडेंशियल admin और admin

यह कैसे काम करता है?


इस परियोजना के तीन मुख्य घटक हैं, तीन सेवाएं। ये नाम balenaCloud डैशबोर्ड पर हैं:

  • InfluxDB - सेंसर रीडिंग को स्टोर करने के लिए इस्तेमाल किया जाने वाला डेटाबेस
  • सेंसर - अजगर पुस्तकालय और सेंसर तक पहुंचने, रीडिंग लेने और डेटाबेस में सहेजने के लिए कोड
  • ग्राफाना - ग्राफ और रिपोर्ट के साथ एक डैशबोर्ड बनाने के लिए उपयोग किया जाता है

बॉश का BME680 सेंसर तापमान, आर्द्रता, दबाव और गैस प्रतिरोध का पता लगाता है। तापमान, आर्द्रता और दबाव सेंसर बॉक्स के ठीक बाहर काम करते हैं, लेकिन अकेले गैस प्रतिरोध रीडिंग बहुत उपयोगी नहीं हैं। ये वायु संरचना में परिवर्तन के संकेतक हैं। जब सेंसर शुरू होता है, तो यह आधार सेट करता है, और फिर परिवर्तनों की निगरानी करता है। वायु गुणवत्ता के संकेतक संकेतक प्रतिशत में दिए गए हैं और आर्द्रता और गैस प्रतिरोध के प्रभाव को ध्यान में रखते हैं।

यदि आप Sense HAT का उपयोग करते हैं, जहां कोई गैस प्रतिरोध सेंसर नहीं है, तो हम लक्ष्य तापमान और आर्द्रता मूल्यों के आधार पर वायु गुणवत्ता रीडिंग का अनुमान लगाते हैं।

आगे क्या है?


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

पासवर्ड बदलें


यदि आप डिवाइस को सार्वजनिक एक्सेस के लिए खोलते हैं, तो ग्रेफाना के लिए पासवर्ड बदलने की सिफारिश की जाती है।



हम उपयोगकर्ता नाम और डिफ़ॉल्ट पासवर्ड admin admin साथ सिस्टम सेट करते हैं। उन्हें बदलने के लिए, पैनल के निचले बाएं कोने में बटन का उपयोग करके ग्राफाना में प्रवेश करें। पहली बार लॉगिन करने पर आपको पासवर्ड बदलने के लिए कहा जाएगा।

अपने स्वाद के लिए अनुकूलित


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



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



आप सेंसर को भी कॉन्फ़िगर कर सकते हैं। उदाहरण के लिए, दबाव नापने के आरेख पर, हम संख्याओं के बजाय कई बुनियादी रेंज और पाठ मान सेट करते हैं। यह सब आपके स्वाद में बदल जाता है!

आवास


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

मौसम बूथ बिक्री पर हैं , लेकिन वे काफी महंगे हो सकते हैं, इसलिए DIY विकल्पों पर विचार करें

थिंगविवर्स के पास कई BME680 इमारतें और मौसम बूथ हैं

अंतिम विचार


पढ़ने के लिए धन्यवाद! यदि आप वायु गुणवत्ता नियंत्रण के साथ अपना खुद का मौसम केंद्र बनाने का निर्णय लेते हैं - तो हमें बताएं कि सब कुछ कैसे चला, क्या समस्याएं पैदा हुईं। हमारी परियोजना के विकास के लिए विचार मंचों पर व्यक्त किए जा सकते हैं।

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


All Articles