विषयसूची:

रास्पबेरी पीआई 4: 15 चरणों पर आधारित एक कम लागत वाला आईओटी वायु गुणवत्ता मॉनिटर (चित्रों के साथ)
रास्पबेरी पीआई 4: 15 चरणों पर आधारित एक कम लागत वाला आईओटी वायु गुणवत्ता मॉनिटर (चित्रों के साथ)

वीडियो: रास्पबेरी पीआई 4: 15 चरणों पर आधारित एक कम लागत वाला आईओटी वायु गुणवत्ता मॉनिटर (चित्रों के साथ)

वीडियो: रास्पबेरी पीआई 4: 15 चरणों पर आधारित एक कम लागत वाला आईओटी वायु गुणवत्ता मॉनिटर (चित्रों के साथ)
वीडियो: Fast Raspberry Pi 4 Telemetry and Data Visualization 2024, नवंबर
Anonim
रास्पबेरीपी पर आधारित एक कम लागत वाला आईओटी वायु गुणवत्ता मॉनिटर 4
रास्पबेरीपी पर आधारित एक कम लागत वाला आईओटी वायु गुणवत्ता मॉनिटर 4
रास्पबेरीपी पर आधारित एक कम लागत वाला आईओटी वायु गुणवत्ता मॉनिटर 4
रास्पबेरीपी पर आधारित एक कम लागत वाला आईओटी वायु गुणवत्ता मॉनिटर 4
रास्पबेरीपी पर आधारित एक कम लागत वाला आईओटी वायु गुणवत्ता मॉनिटर 4
रास्पबेरीपी पर आधारित एक कम लागत वाला आईओटी वायु गुणवत्ता मॉनिटर 4
रास्पबेरीपी पर आधारित एक कम लागत वाला आईओटी वायु गुणवत्ता मॉनिटर 4
रास्पबेरीपी पर आधारित एक कम लागत वाला आईओटी वायु गुणवत्ता मॉनिटर 4

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

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

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

आपूर्ति

  • रास्पबेरी पाई 4
  • 1SDS011 - उच्च परिशुद्धता लेजर pm2.5 वायु गुणवत्ता का पता लगाने वाला सेंसर
  • प्लास्टिक का डिब्बा

चरण 1: पार्टिकुलेट मैटर (पीएम): यह क्या है? यह हवा में कैसे मिलता है?

पार्टिकुलेट मैटर (पीएम): यह क्या है? यह हवा में कैसे मिलता है?
पार्टिकुलेट मैटर (पीएम): यह क्या है? यह हवा में कैसे मिलता है?

इसलिए प्रदूषण या वायु प्रदूषण को समझने के लिए हमें उससे संबंधित कणों का अध्ययन करना चाहिए, जिन्हें कण पदार्थ के रूप में भी जाना जाता है। पिछले खंड के रेखांकन को देखते हुए हम देख सकते हैं कि उन्होंने PM2.5 और PM10 का उल्लेख किया। आइए इसका एक त्वरित अवलोकन दें।

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

कण प्रदूषण में मोटे धूल के कण (पीएम 10) शामिल हैं: इनहेलेबल कण, व्यास के साथ जो आमतौर पर 10 माइक्रोमीटर और छोटे होते हैं। सूत्रों में क्रशिंग या ग्राइंडिंग ऑपरेशन और सड़कों पर वाहनों से निकलने वाली धूल शामिल हैं। फाइन पार्टिकल्स (PM2.5): सूक्ष्म सांस लेने योग्य कण, जिनका व्यास आमतौर पर 2.5 माइक्रोमीटर और उससे छोटा होता है। मोटर वाहन, बिजली संयंत्र, आवासीय लकड़ी जलाने, जंगल की आग, कृषि जलने, और कुछ औद्योगिक प्रक्रियाओं सहित सभी प्रकार के दहन से ठीक कण उत्पन्न होते हैं, आप ईपीए साइट पर कण पदार्थ के बारे में अधिक जानकारी प्राप्त कर सकते हैं: संयुक्त राज्य पर्यावरण संरक्षण एजेंसी

चरण 2: उन पार्टिकुलेट मैटर्स की देखभाल करना क्यों महत्वपूर्ण है?

उन पार्टिकुलेट मैटर्स की देखभाल करना क्यों ज़रूरी है?
उन पार्टिकुलेट मैटर्स की देखभाल करना क्यों ज़रूरी है?

जैसा कि गेरार्डो अल्वाराडो जेड ने चिली विश्वविद्यालय में अपने काम में वर्णित किया है, 1930 में मीयूज वैली (बेल्जियम) में उच्च वायु प्रदूषण के प्रकरणों का अध्ययन, 1948 में डोनोरा (पेंसिल्वेनिया) और 1952 में लंदन पहले प्रलेखित स्रोत रहे हैं जो मृत्यु से संबंधित हैं। कण संदूषण के साथ (प्रेंडेज़, 1993)। लोगों के स्वास्थ्य पर वायु प्रदूषण के प्रभावों की जांच में प्रगति ने निर्धारित किया है कि स्वास्थ्य जोखिम सांस लेने योग्य कणों के कारण होते हैं, जो श्वसन प्रणाली के विभिन्न वर्गों में उनके प्रवेश और जमा होने और जमा सामग्री के लिए जैविक प्रतिक्रिया पर निर्भर करता है।

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

इसलिए, दोनों प्रकार के कणों (PM2.5 और PM10) को खोजने के लिए बहुत महत्वपूर्ण हैं और अच्छी खबर यह है कि दोनों एक साधारण और महंगे सेंसर, SDS011 द्वारा पठनीय हैं।

चरण 3: कण सेंसर - SDS011

कण सेंसर - SDS011
कण सेंसर - SDS011
कण सेंसर - SDS011
कण सेंसर - SDS011

वायु गुणवत्ता निगरानी सुप्रसिद्ध और स्थापित विज्ञान है जिसकी शुरुआत 80 के दशक में हुई थी। उस समय, तकनीक काफी सीमित थी, और वायु प्रदूषण परिसर को मापने के लिए इस्तेमाल किया जाने वाला समाधान, बोझिल और वास्तव में महंगा था।

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

इस लेख में हम एक कण सेंसर पर ध्यान केंद्रित करेंगे, जो हवा में धूल की मात्रा का पता लगा सकता है। जबकि पहली पीढ़ी अस्पष्टता की मात्रा का पता लगाने में सक्षम थी, सबसे हाल के सेंसर जैसे कि INOVAFIT से SDS011, जिनान विश्वविद्यालय (शेडोंग में) से एक स्पिन-ऑफ, अब PM2.5 और PM10 का पता लगा सकता है।

अपने आकार के साथ, SDS011 शायद सटीकता और कीमत (USD40.00 से कम) के मामले में सबसे अच्छे सेंसरों में से एक है। निर्दिष्टीकरण

  • मापा मान: PM2.5, PM10
  • रेंज: 0-999.9 माइक्रोग्राम / एम³
  • आपूर्ति वोल्टेज: 5V (4.7–5.3V)
  • बिजली की खपत (काम): 70mA±10mA
  • बिजली की खपत (स्लीप मोड लेजर और पंखा): <4mA
  • भंडारण तापमान: -20 से +60C
  • कार्य तापमान: -10 से +50C
  • आर्द्रता (भंडारण): मैक्स। 90%
  • आर्द्रता (काम): मैक्स। 70% (जल वाष्प का संघनन रीडिंग को गलत साबित करता है)
  • शुद्धता: 0.3μm के लिए 70% और 0.5μm. के लिए 98%
  • आकार: 71x70x23 मिमी
  • प्रमाणन: सीई, एफसीसी, आरओएचएस

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

संक्षेप में, Nova Fitness SDS011 एक पेशेवर लेज़र डस्ट सेंसर है। सेंसर पर लगा पंखा अपने आप हवा सोख लेता है। हवा में निलंबित धूल कणों के मूल्य को मापने के लिए सेंसर लेजर लाइट स्कैटरिंग सिद्धांत* का उपयोग करता है। सेंसर PM2.5 और PM10 मानों की उच्च परिशुद्धता और विश्वसनीय रीडिंग प्रदान करता है। पर्यावरण में कोई भी परिवर्तन 10 सेकंड से कम समय में लगभग तुरंत ही कम प्रतिक्रिया समय में देखा जा सकता है। मानक मोड में सेंसर 1 सेकंड के अंतराल के साथ पढ़ने की रिपोर्ट करता है।

* लेजर स्कैटरिंग सिद्धांत: जब कण पता लगाने वाले क्षेत्र से गुजरते हैं तो प्रकाश बिखरने को प्रेरित किया जा सकता है। बिखरी हुई रोशनी विद्युत संकेतों में बदल जाती है और इन संकेतों को प्रवर्धित और संसाधित किया जाएगा। कणों की संख्या और व्यास विश्लेषण द्वारा प्राप्त किया जा सकता है क्योंकि सिग्नल तरंग के कणों के व्यास के साथ कुछ संबंध होते हैं।

चरण 4: लेकिन SDS011 उन कणों को कैसे पकड़ सकता है?

लेकिन SDS011 उन कणों को कैसे पकड़ सकता है?
लेकिन SDS011 उन कणों को कैसे पकड़ सकता है?
लेकिन SDS011 उन कणों को कैसे पकड़ सकता है?
लेकिन SDS011 उन कणों को कैसे पकड़ सकता है?

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

दो नमूनों के एक काल्पनिक गतिशील प्रकाश प्रकीर्णन के ऊपर: शीर्ष पर बड़े कण (जैसे PM10) और नीचे छोटे कण (PM2.5 के रूप में)। और हमारे सेंसर के अंदर देखते हुए, हम देख सकते हैं कि प्रकाश बिखराव सिद्धांत कैसे लागू किया जाता है।

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

वास्तविक वैज्ञानिक अनुभव के बारे में SDS011 के बारे में अधिक जानने के लिए, कृपया PM2.5 सांद्रता की निगरानी के लिए कम लागत वाले पोर्टेबल सिस्टम के विकास और ऑन-फील्ड परीक्षण, Konstantinos et al के 2018 के काम पर एक नज़र डालें।

चरण 5: शोटाइम

शो टाइम!
शो टाइम!
शो टाइम!
शो टाइम!

आइए इस सभी सिद्धांत पर विराम लें और रास्पबेरी पाई और एसडीएस011 सेंसर का उपयोग करके कण मामलों को मापने के तरीके पर ध्यान दें

HW कनेक्शन वास्तव में बहुत सरल है। आरपीआई के मानक यूएसबी कनेक्टर में से एक के साथ अपने 7 पिन यूएआरटी से आउटपुट डेटा को इंटरफेस करने के लिए सेंसर को यूएसबी एडाप्टर के साथ बेचा जाता है।

SDS011 पिनआउट:

  • पिन 1 - जुड़ा नहीं
  • पिन 2 - PM2.5: 0-999μg/m³; पीडब्लूएम आउटपुट
  • पिन 3-5V
  • पिन 4 - PM10: 0-999 μg/m³; पीडब्लूएम आउटपुट
  • पिन 5 - जीएनडी
  • पिन 6 - आरएक्स यूएआरटी (टीटीएल) 3.3V
  • पिन 7 - TX UART (TTL) 3.3V

इस ट्यूटोरियल के लिए, मैं पहली बार एक बिल्कुल नए रास्पबेरी-पाई 4 का उपयोग कर रहा हूं। लेकिन निश्चित रूप से, कोई भी पिछला मॉडल भी ठीक काम करेगा।

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

सेंसर और आरपीआई के बीच संचार एक सीरियल प्रोटोकॉल के माध्यम से होगा। इस प्रोटोकॉल के बारे में विवरण यहां पाया जा सकता है: लेजर डस्ट सेंसर कंट्रोल प्रोटोकॉल V1.3. लेकिन इस परियोजना के लिए, विकसित किए जाने वाले कोड को सरल बनाने के लिए पायथन इंटरफ़ेस का उपयोग करना सबसे अच्छा है। आप अपना स्वयं का इंटरफ़ेस बना सकते हैं या कुछ का उपयोग कर सकते हैं जो इंटरनेट पर उपलब्ध हैं, जैसे कि फ्रैंक ह्यूअर या इवान कलचेव। हम पिछले एक का उपयोग करेंगे, जो बहुत सरल है और ठीक काम करता है (आप sds011.py स्क्रिप्ट को इसके GitHub या खदान से डाउनलोड कर सकते हैं)।

फ़ाइल sds011.py उसी निर्देशिका में होनी चाहिए जहाँ आप अपनी स्क्रिप्ट बनाते हैं।

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

Sds011 आयात करना शुरू करें, और अपना सेंसर इंस्टेंस बनाएं। SDS011 UART का उपयोग करके सेंसर से पढ़ने के लिए एक विधि प्रदान करता है।

sds011 आयात से *

सेंसर = SDS011 ("/ dev / ttyUSB0")

आप स्लीप कमांड से अपने सेंसर को चालू या बंद कर सकते हैं:

pmt_2_5, pmt_10 = sensor.query()

माप से पहले स्थिरीकरण के लिए कम से कम 10 सेकंड और एक नया शुरू करने के लिए कम से कम 2 सेकंड प्रतीक्षा करें (ऊपर कोड देखें)।

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

चरण 6: वायु गुणवत्ता सूचकांक - AQI

वायु गुणवत्ता सूचकांक - एक्यूआई
वायु गुणवत्ता सूचकांक - एक्यूआई
वायु गुणवत्ता सूचकांक - एक्यूआई
वायु गुणवत्ता सूचकांक - एक्यूआई
वायु गुणवत्ता सूचकांक - एक्यूआई
वायु गुणवत्ता सूचकांक - एक्यूआई

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

उदाहरण के लिए, EPA (यूनाइटेड स्टेट्स एनवायर्नमेंटल प्रोटेक्शन एजेंसी), न केवल कण प्रदूषण (PM2.5 और PM10) के लिए, बल्कि स्वच्छ वायु अधिनियम द्वारा नियंत्रित अन्य प्रमुख वायु प्रदूषकों के लिए भी AQI की गणना करता है: ग्राउंड-लेवल ओजोन, कार्बन मोनोऑक्साइड, सल्फर डाइऑक्साइड और नाइट्रोजन डाइऑक्साइड। इनमें से प्रत्येक प्रदूषक के लिए, ईपीए ने सार्वजनिक स्वास्थ्य की रक्षा के लिए राष्ट्रीय वायु गुणवत्ता मानकों की स्थापना की है। एक्यूआई मूल्यों, रंगों और स्वास्थ्य से जुड़े संदेश के साथ उपरोक्त तस्वीर देखें।

जैसा कि उन AQI मूल्यों और रंगों से पहले टिप्पणी की गई थी, जो प्रदूषक एजेंटों में से प्रत्येक से संबंधित हैं, लेकिन सेंसर द्वारा उत्पन्न मूल्यों को उनके साथ कैसे जोड़ा जाए? जैसा कि ऊपर दिखाया गया है, एक अतिरिक्त तालिका उन सभी को जोड़ती है।

लेकिन निश्चित रूप से, ऐसी तालिका का उपयोग करने का कोई मतलब नहीं है। अंत में, यह एक सरल गणितीय एल्गोरिथम है जो गणना करता है। उसके लिए, हम AQI मान और प्रदूषक सांद्रता (µg/m³) के बीच कनवर्ट करने के लिए पुस्तकालय का आयात करेंगे: पायथन-एकी।

पीआईपी का उपयोग करके पुस्तकालय स्थापित करें और एक परीक्षण करें (ऊपर कोड देखें)

पाइप स्थापित करें

और चिली के बारे में कैसे?

चिली में एक समान सूचकांक का उपयोग किया जाता है, आईसीएपी: सांस लेने योग्य कणों के लिए वायु गुणवत्ता सूचकांक। गणतंत्र के प्रेसीडेंसी के महासचिव मंत्रालय का 16 मार्च, 1998 का एक सर्वोच्च डिक्री 59, अपने लेख 1, पत्र जी) में स्थापित करता है कि वे स्तर जो सांस लेने योग्य कण सामग्री, आईसीएपी के लिए आईसीए को परिभाषित करते हैं।

मान वर्गों के बीच रैखिक रूप से भिन्न होंगे, मान 500 उस सीमा मूल्य के अनुरूप होगा जिस पर इन सांद्रता के संपर्क में आने पर जनसंख्या के लिए जोखिम होगा। आईसीएपी मूल्यों के अनुसार, श्रेणियों ने स्थापित किया है जो एमपी 10 के एकाग्रता स्तर को अर्हता प्राप्त करते हैं जिससे लोगों को अवगत कराया गया।

चरण 7: स्थानीय रूप से डेटा लॉग करना

स्थानीय रूप से लॉगिंग डेटा
स्थानीय रूप से लॉगिंग डेटा
स्थानीय रूप से लॉगिंग डेटा
स्थानीय रूप से लॉगिंग डेटा
स्थानीय रूप से लॉगिंग डेटा
स्थानीय रूप से लॉगिंग डेटा

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

आइए उन मानों को पकड़ने के लिए एक फ़ंक्शन बनाएं। हम उनमें से औसत लेते हुए क्रम में 3 मान प्राप्त करेंगे:

डीईएफ़ get_data (एन = 3):

सेंसर.स्लीप (स्लीप = फॉल्स) pmt_2_5 = 0 pmt_10 = 0 टाइम। स्लीप (10) i रेंज में (n): x = sensor.query() pmt_2_5 = pmt_2_5 + x [0] pmt_10 = pmt_10 + x[1] time.sleep(2) pmt_2_5 = राउंड(pmt_2_5/n, 1) pmt_10 = राउंड(pmt_10/n, 1) sensor.sleep(sleep=True) time.sleep(2) return pmt_2_5, pmt_10 ऊपर आप परीक्षा परिणाम देख सकते हैं। आइए AQI इंडेक्स में PM के संख्यात्मक मानों को बदलने के लिए एक फ़ंक्शन भी करें

def conv_aqi(pmt_2_5, pmt_10):

aqi_2_5 = aqi.to_iaqi(aqi. POLLUTANT_PM25, str(pmt_2_5)) aqi_10 = aqi.to_iaqi(aqi. POLLUTANT_PM10, str(pmt_10)) वापसी aqi_2_5, aqi_10 दोनों कार्यों के साथ एक परीक्षण के परिणाम के ऊपर। लेकिन उनका क्या करें? सबसे सरल उत्तर कैप्चर किए गए डेटा को स्थानीय फ़ाइल पर सहेज कर सहेजने के लिए एक फ़ंक्शन बनाना है

def save_log ():

खुले के साथ ("आपका पथ यहां/air_quality.csv", "a") लॉग के रूप में: dt = datetime.now() log.write("{}, {}, {}, {}, {}\n"। format(dt, pmt_2_5, aqi_2_5, pmt_10, aqi_10)) log.close() एकल लूप के साथ, आप अपनी स्थानीय फ़ाइल में नियमित आधार पर डेटा लॉग कर सकते हैं, उदाहरण के लिए, प्रत्येक मिनट

जबकि (सच):

pmt_2_5, pmt_10 = get_data() aqi_2_5, aqi_10 = conv_aqi(pmt_2_5, pmt_10) कोशिश करें: save_log() को छोड़कर: प्रिंट ("[जानकारी] डेटा लॉगिंग में विफलता") समय। सो (60) जैसा कि हम ऊपर देख सकते हैं, हर 60 सेकंड में टाइमस्टैम्प और डेटा इस फ़ाइल में "संलग्न" हो जाएगा।

चरण 8: क्लाउड सेवा को डेटा भेजना

क्लाउड सेवा को डेटा भेजना
क्लाउड सेवा को डेटा भेजना

इस बिंदु पर, हमने सीखा है कि सेंसर से डेटा कैप्चर कैसे किया जाता है, उन्हें स्थानीय CSV फ़ाइल में सहेजा जाता है। अब, यह देखने का समय है कि उन डेटा को IoT प्लेटफॉर्म पर कैसे भेजा जाए। इस ट्यूटोरियल में, हम ThingSpeak.com का उपयोग करेंगे।

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

सबसे पहले, आपके पास ThinkSpeak.com पर एक खाता होना चाहिए। इसके बाद, चैनल बनाने के लिए निर्देशों का पालन करें, इसकी चैनल आईडी पर ध्यान दें और एपीआई कुंजी लिखें।

चैनल बनाते समय, आपको यह भी परिभाषित करना होगा कि 8 क्षेत्रों में से प्रत्येक पर कौन सी जानकारी अपलोड की जाएगी, जैसा कि ऊपर दिखाया गया है (हमारे मामले में उनमें से केवल 4 का उपयोग किया जाएगा)।

चरण 9: एमक्यूटीटी प्रोटोकॉल और थिंगस्पीक कनेक्शन

MQTT प्रोटोकॉल और थिंगस्पीक कनेक्शन
MQTT प्रोटोकॉल और थिंगस्पीक कनेक्शन

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

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

ThingSpeak™ का URL mqtt.thingspeak.com और पोर्ट 1883 पर MQTT ब्रोकर है। ThingSpeak ब्रोकर MQTT प्रकाशन और MQTT सदस्यता दोनों का समर्थन करता है।

हमारे मामले में, हम MQTT पब्लिश का उपयोग करेंगे।

चरण 10: एमक्यूटीटी प्रकाशित करें

एमक्यूटीटी प्रकाशित करें
एमक्यूटीटी प्रकाशित करें

शुरू करने के लिए, आइए एक्लिप्स पाहो एमक्यूटीटी पायथन क्लाइंट लाइब्रेरी स्थापित करें, जो एमक्यूटीटी प्रोटोकॉल के संस्करण 3.1 और 3.1.1 को लागू करता है।

sudo pip install paho-mqtt

अगला, पाहो पुस्तकालय आयात करते हैं:

आयात paho.mqtt.प्रकाशित के रूप में प्रकाशित करें

और थिंग्सपीक चैनल और MQTT प्रोटोकॉल आरंभ करें। यह कनेक्शन विधि सबसे सरल है और इसके लिए कम से कम सिस्टम संसाधनों की आवश्यकता होती है:

channelID = "आपका चैनल आईडी"

apiKey = "आपकी लेखन कुंजी" विषय = "चैनल/" + channelID + "/प्रकाशित/" + apiKey mqttHost = "mqtt.thingspeak.com" अब हमें अपने "पेलोड" को परिभाषित करना होगा

tPayload = "field1=" + str(pmt_2_5)+ "&field2=" + str(aqi_2_5)+ "&field3=" + str(pmt_10)+ "&field4=" + str(aqi_10)

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

# हर 1 मिनट में थिंगस्पीक को सभी डेटा भेजना

जबकि(सच): pmt_2_5, pmt_10 = get_data() aqi_2_5, aqi_10 = conv_aqi(pmt_2_5, pmt_10) tPayload = "field1=" + str(pmt_2_5)+ "&field2=" + str(aqi_2_5)+ "&field3=" + str (pmt_10)+ "&field4=" + str(aqi_10) कोशिश करें: publish.single(topic, payload=tPayload, hostname=mqttHost, port=tPort, tls=tTLS, Transport=tTransport) save_log() सिवाय: प्रिंट ("[जानकारी] डेटा भेजने में विफलता") समय सो जाओ (60) यदि सब कुछ ठीक है, तो आपको अपने चैनल पर दिखाई देने वाला डेटा भी देखना चाहिए, जैसा कि ऊपर दिखाया गया है।

चरण 11: अंतिम स्क्रिप्ट

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

उदाहरण के लिए, "ts_air_quality_logger.py", जिसे आपको कमांड के साथ चलाना चाहिए:

अजगर 3 ts_air_quality_logger.py

इस स्क्रिप्ट के साथ-साथ जुपिटर नोटबुक और sds011.py को RPi_Air_Quality_Sensor पर मेरे भंडार में पाया जा सकता है।

ध्यान दें कि यह स्क्रिप्ट केवल परीक्षण के लिए संभव है। अंतिम लूप के अंदर देरी का उपयोग नहीं करना सबसे अच्छा है (जो कोड को "रोकें" में रखता है), इसके बजाय टाइमर का उपयोग करें। या एक वास्तविक एप्लिकेशन के लिए, सबसे अच्छा लूप का उपयोग नहीं करना है, जिसमें लिनक्स को क्रोंटैब के साथ नियमित रूप से स्क्रिप्ट को निष्पादित करने के लिए प्रोग्राम किया गया है।

चरण 12: मॉनिटर को बाहर ले जाना

मॉनिटर को बाहर ले जाना
मॉनिटर को बाहर ले जाना
मॉनिटर को बाहर ले जाना
मॉनिटर को बाहर ले जाना
मॉनिटर को बाहर ले जाना
मॉनिटर को बाहर ले जाना
मॉनिटर को बाहर ले जाना
मॉनिटर को बाहर ले जाना

एक बार मेरा रास्पबेरी पाई एयर क्वालिटी मॉनिटर काम कर रहा था, मैंने आरपीआई को एक प्लास्टिक बॉक्स के अंदर इकट्ठा किया, सेंसर को बाहर रखा और इसे अपने घर के बाहर रख दिया।

दो अनुभव हुए।

चरण 13: गैसोलीन मोटर दहन

गैसोलीन मोटर दहन
गैसोलीन मोटर दहन
गैसोलीन मोटर दहन
गैसोलीन मोटर दहन

सेंसर को लैंब्रेटा के गैस स्केप से लगभग 1 मीटर की दूरी पर रखा गया था, और इसकी मोटर चालू हो गई थी। दो मिनट तक मोटर चलती रही और बंद हो गई। उपरोक्त लॉग फ़ाइल से, मुझे जो परिणाम मिला। यह पुष्टि करना दिलचस्प है कि PM2.5 मोटर से निकलने वाला सबसे खतरनाक कण था।

चरण 14: लकड़ी जलना

लकड़ी का जलना
लकड़ी का जलना
लकड़ी का जलना
लकड़ी का जलना

लॉग फ़ाइल को देखते हुए, हम महसूस करते हैं कि सेंसर डेटा "सीमा से बाहर" क्षणिक था और AQI रूपांतरण लाइब्रेरी द्वारा अच्छी तरह से कैप्चर नहीं किया गया था, इसलिए मैं इसे संभालने के लिए पिछले कोड को बदलता हूं:

def conv_aqi(pmt_2_5, pmt_10):

कोशिश करें: aqi_2_5 = aqi.to_iaqi(aqi. POLLUTANT_PM25, str(pmt_2_5)) aqi_10 = aqi.to_iaqi(aqi. POLLUTANT_PM10, str(pmt_10)) रिटर्न aqi_2_5, aqi_10 सिवाय: 600, 600 लौटाएं यह स्थिति क्षेत्र में हो सकती है, जो ठीक है। याद रखें कि वास्तव में, आपको वास्तव में एक्यूआई (प्रति घंटा कम से कम, लेकिन आमतौर पर दैनिक) प्राप्त करने के लिए मूविंग एवरेज का उपयोग करना चाहिए।

चरण 15: निष्कर्ष

निष्कर्ष
निष्कर्ष

हमेशा की तरह, मुझे आशा है कि यह परियोजना दूसरों को इलेक्ट्रॉनिक्स और डेटा विज्ञान की रोमांचक दुनिया में अपना रास्ता खोजने में मदद कर सकती है!

विवरण और अंतिम कोड के लिए, कृपया मेरे GitHub डिपॉजिटरी पर जाएँ: RPi_Air_Quality_Sensor।

दुनिया के दक्षिण से Saludos!

मेरे अगले निर्देश पर मिलते हैं!

शुक्रिया, मार्सेलो

सिफारिश की: