विषयसूची:

एक इनहाउस IoT वायु गुणवत्ता सेंसर बनाएं कोई क्लाउड आवश्यक नहीं: 10 कदम
एक इनहाउस IoT वायु गुणवत्ता सेंसर बनाएं कोई क्लाउड आवश्यक नहीं: 10 कदम

वीडियो: एक इनहाउस IoT वायु गुणवत्ता सेंसर बनाएं कोई क्लाउड आवश्यक नहीं: 10 कदम

वीडियो: एक इनहाउस IoT वायु गुणवत्ता सेंसर बनाएं कोई क्लाउड आवश्यक नहीं: 10 कदम
वीडियो: एवी लोएब: चेतना, यूएपी, जैक्स वैली 2024, नवंबर
Anonim
एक इनहाउस IoT वायु गुणवत्ता सेंसर का निर्माण करें जिसके लिए किसी क्लाउड की आवश्यकता नहीं है
एक इनहाउस IoT वायु गुणवत्ता सेंसर का निर्माण करें जिसके लिए किसी क्लाउड की आवश्यकता नहीं है
एक इनहाउस IoT वायु गुणवत्ता सेंसर का निर्माण करें जिसके लिए किसी क्लाउड की आवश्यकता नहीं है
एक इनहाउस IoT वायु गुणवत्ता सेंसर का निर्माण करें जिसके लिए किसी क्लाउड की आवश्यकता नहीं है
एक इनहाउस IoT वायु गुणवत्ता सेंसर का निर्माण करें जिसके लिए किसी क्लाउड की आवश्यकता नहीं है
एक इनहाउस IoT वायु गुणवत्ता सेंसर का निर्माण करें जिसके लिए किसी क्लाउड की आवश्यकता नहीं है
एक इनहाउस IoT वायु गुणवत्ता सेंसर का निर्माण करें जिसके लिए किसी क्लाउड की आवश्यकता नहीं है
एक इनहाउस IoT वायु गुणवत्ता सेंसर का निर्माण करें जिसके लिए किसी क्लाउड की आवश्यकता नहीं है

इनडोर या बाहरी हवा की गुणवत्ता प्रदूषण के कई स्रोतों और मौसम पर भी निर्भर करती है।

यह डिवाइस 2 सेंसर चिप्स का उपयोग करके कुछ सामान्य और कुछ सबसे दिलचस्प मापदंडों को कैप्चर करता है।

  • तापमान
  • नमी
  • दबाव
  • कार्बनिक गैस
  • सूक्ष्म कणों

तापमान, आर्द्रता, दबाव और कार्बनिक गैस मान प्राप्त करने के लिए यहां उपयोग किए जाने वाले सेंसर BME680 हैं और सूक्ष्म कणों का घनत्व प्राप्त करने के लिए PMS5003 हैं।

होमडिंग लाइब्रेरी का उपयोग करके ऐसा उपकरण बनाना आसान है जो केवल आपके होम नेटवर्क से जुड़ा हो और नेटवर्क पर किसी भी ब्राउज़र द्वारा पहुँचा और नियंत्रित किया जा सके। यह उन तत्वों के चयन के साथ आता है जो सबसे सामान्य सेंसर चिप्स, उपकरणों और अन्य सेवाओं का उपयोग करने की अनुमति देते हैं।

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

आपूर्ति

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

  • बिजली की आपूर्ति के लिए एक यूएसबी प्लग और एक माइक्रो-यूएसबी केबल।
  • ESP8266 CPU के साथ 1 nodemcu बोर्ड।
  • 1 BME680 सेंसर ब्रेकआउट बोर्ड।
  • 1 PM2.5 वायु कण लेजर सेंसर प्रकार PMS5003

DHT22 सेंसर के साथ BME680 सेंसर को स्वैप करना आसान है क्योंकि वे कई अन्य लोगों के बीच लाइब्रेरी द्वारा भी समर्थित हैं।

चरण 1: ESP8266. के लिए Arduino पर्यावरण तैयार करें

ESP8266. के लिए Arduino पर्यावरण तैयार करें
ESP8266. के लिए Arduino पर्यावरण तैयार करें
  1. Arduino IDE का नवीनतम संस्करण स्थापित करें (वर्तमान में संस्करण 1.8.2)।
  2. Esp8266 समर्थन स्थापित करने के लिए बोर्ड प्रबंधक का उपयोग करें। एक विस्तृत निर्देश यहां पाया जा सकता है:https://arduino-esp8266.readthedocs.io/en/latest/i…
  3. NodeMCU 1.0 के लिए 1MByte SPIFFS फ़ाइल सिस्टम के साथ बोर्ड विकल्प सेटअप करें जैसा कि स्क्रीनशॉट में दिखाया गया है

चरण 2: आवश्यक पुस्तकालय शामिल करें

आवश्यक पुस्तकालय शामिल करें
आवश्यक पुस्तकालय शामिल करें

HomeDing पुस्तकालय काम करने के लिए सेंसर और डिस्प्ले के लिए कुछ सामान्य अतिरिक्त पुस्तकालयों पर निर्भर करता है।

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

कभी-कभी (अज्ञात कारणों से) पुस्तकालयों की स्थापना विफल हो जाती है इसलिए सभी आवश्यक पुस्तकालयों को मैन्युअल रूप से स्थापित करने की आवश्यकता होती है।

आवश्यक पुस्तकालयों के बारे में अधिक जानकारी प्रलेखन वेबसाइट https://homeding.github.io/#page=/elements.md पर देखी जा सकती है।

यह वर्तमान आवश्यक पुस्तकालयों की सूची है:

  • एडफ्रूट नियोपिक्सेल
  • लिक्विड क्रिस्टल_PCF8574.h
  • SSD1306 डिस्प्ले के लिए ESP8266 और ESP32 ओलेड ड्राइवर
  • रोटरी कोडित्र
  • ESPx के लिए DHT सेंसर लाइब्रेरी
  • वनवायर

PMS5003 एयर पार्टिकल लेजर सेंसर 9600 बॉड सीरियल लाइन सिग्नल का उपयोग करके संचार करता है। इस सिग्नल को सॉफ्टवेयरसेरियल लाइब्रेरी का उपयोग करके कैप्चर किया जाता है जो ESP8266 टूल्स की स्थापना के साथ आता है। सुनिश्चित करें कि पुराने संस्करण को लाइब्रेरी के रूप में स्थापित नहीं किया गया है।

चरण 3: मानक उदाहरण स्केच को अनुकूलित करें

मानक उदाहरण स्केच को अनुकूलित करें
मानक उदाहरण स्केच को अनुकूलित करें

मानक उदाहरण में पहले से ही तत्वों के रूप में कुछ अधिक सामान्य सेंसर शामिल हैं, इसलिए केवल कुछ कॉन्फ़िगरेशन की आवश्यकता होगी।

यह BME680 सेंसर पर लागू होता है जो BME680 एलिमेंट द्वारा समर्थित है।

PMS5003 सेंसर कम आम है और फर्मवेयर में PMS तत्व को शामिल करके इसे सक्रिय करने की आवश्यकता है। यह स्केच के एलिमेंट रजिस्टर सेक्शन में #define HOMEDING_INCLUDE_PMS को परिभाषित करके किया जाता है

#HOMEDING_INCLUDE_BME680 परिभाषित करें#HOMEDING_INCLUDE_PMS परिभाषित करें

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

अब स्केच के कार्यान्वयन के संबंध में सब कुछ किया जाता है और फर्मवेयर को संकलित और अपलोड किया जा सकता है।

चरण 4: वेब UI अपलोड करें

मानक उदाहरण एक डेटा फ़ोल्डर के साथ आता है जिसमें वेब UI के लिए सभी फ़ाइल शामिल हैं।

इन फ़ाइलों को अपलोड करने से पहले आप env.json और config.json फ़ाइल जोड़ना चाहेंगे जो आपको इस लेख के साथ मिल सकती है क्योंकि इससे चीजें आसान हो जाएंगी।

इन फ़ाइलों की सामग्री ही IoT डिवाइस को विशेष बनाती है और वायु गुणवत्ता सेंसर के रूप में व्यवहार करती है। इस कहानी में इसका विस्तार से वर्णन किया गया है।

ESP8266 फ़ाइल अपलोड उपयोगिता का उपयोग करें और सभी फ़ाइलों को अपलोड करें। कॉन्फ़िगरेशन को सक्रिय करने के लिए इसे रीबूट की आवश्यकता है।

चरण 5: BME680 सेंसर जोड़ें

BME680 सेंसर जोड़ें
BME680 सेंसर जोड़ें
BME680 सेंसर जोड़ें
BME680 सेंसर जोड़ें
BME680 सेंसर जोड़ें
BME680 सेंसर जोड़ें

BME680 सेंसर I2C बस का उपयोग करके बोर्ड के साथ संचार कर रहा है।

चूंकि यह संभवतः अन्य एक्सटेंशन के साथ साझा किया जाता है जैसे अन्य सेंसर या डिस्प्ले डिवाइस के नेटवर्क नाम के साथ env.json में डिवाइस स्तर पर कॉन्फ़िगर किया गया है। यहाँ डिवाइस और I2C सेटिंग्स का निकाला गया नमूना है:

"डिवाइस": {

"0": { "नाम": "एयरडिंग", "विवरण": "वायु गुणवत्ता सेंसर", … "i2c-scl": "D2", "i2c-sda": "D1" } }

ब्रेडबोर्ड पर आप सेंसर से कनेक्शन केबल देख सकते हैं: 3.3V = लाल, GND = काला, SCL = पीला, SDA = नीला

BME680 के लिए कॉन्फ़िगरेशन का उपयोग config.json में किया जा सकता है:

"बीएमई६८०": {

"बीडी": {"पता": "0x77", "रीडटाइम": "10 एस"}}

हम बाद में क्रियाओं को जोड़ेंगे।

सेटअप का परीक्षण करने के लिए बस एक ब्राउज़र का उपयोग करें और https://airding/board.htm खोलें और आप प्रदर्शित सेंसर के वास्तविक मूल्यों को देखेंगे और उन्हें हर 10 सेकंड में अपडेट किया जाएगा:

चरण 6: PMS5003 सेंसर जोड़ें

PMS5003 सेंसर जोड़ें
PMS5003 सेंसर जोड़ें

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

इस सेंसर की शक्ति विन से ली जानी चाहिए जो सामान्य रूप से यूएसबी बस द्वारा संचालित होती है। GND वही है लेकिन विन पिन के बगल में भी उपलब्ध है।

सेंसर से डेटा एक मानक 9600 बॉड सीरियल प्रारूप में स्थानांतरित किया जाता है, इसलिए rx और tx पिन और पढ़ने के समय को कॉन्फ़िगर करने की आवश्यकता होती है:

"पीएमएस": {

"pm25": { "विवरण": "pm25 कण सेंसर", "पिनरक्स": "D6", "pintx": "D5", "रीडटाइम": "10s"}}

हम बाद में क्रियाओं को जोड़ेंगे।

फिर से सेटअप का परीक्षण करने के लिए बस डिवाइस को रीबूट करें और ब्राउज़र का उपयोग करें और https://airding/board.htm खोलें और आपको सेंसर का वास्तविक pm35 मान प्रदर्शित होगा और वे हर 10 सेकंड में अपडेट हो जाएंगे लेकिन यह मान सामान्य रूप से है अक्सर नहीं बदल रहा है।

आप सेंसर के बगल में एक मोमबत्ती की रोशनी रखकर उच्च मूल्य प्राप्त कर सकते हैं क्योंकि मोमबत्ती इनमें से अधिकतर कणों का उत्पादन करती है।

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

चरण 7: कुछ नेटवर्क सुविधाएँ जोड़ना

Env.json में निम्न कॉन्फ़िगरेशन एक्सट्रेक्ट सक्षम कर रहा है

  • फर्मवेयर को हवा में अपडेट करना
  • SSDP नेटवर्क प्रोटोकॉल का उपयोग करके नेटवर्क का पता लगाने की अनुमति देता है और एक ntp सर्वर से वर्तमान समय को पुनः प्राप्त करता है।

{

… "ओटा": { "0": { "पोर्ट": 8266, "पासवार्ड": "123", "विवरण": "'ओवर द एयर' ओटीए अपडेट के लिए सुनो"}}, "एसएसडीपी": { "0 ": {"निर्माता": "आपका नाम"}}, "एनटीपीटाइम": {"0": {"रीडटाइम": "36एच", "ज़ोन": 2}}}}

आपको समय क्षेत्र को अपने स्थान पर समायोजित करना चाहिए। यदि आपको संदेह है तो आप यूटीसी/जीएमटी से ऑफसेट प्राप्त करने के लिए वेबसाइट https://www.timeanddate.com/ का उपयोग कर सकते हैं। जर्मनी गर्मियों के लिए "2" सही है।

आप https://homeding.github.io/index.htm#page=/savemo… पर दस्तावेज़ में सेव मोड के बारे में निर्देशों को पढ़ने के बाद ओटा पासवर्ड को भी समायोजित कर सकते हैं।

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

चरण 8: कुछ लॉगिंग जोड़ना

बस वास्तविक मान पर्याप्त नहीं दे सकते हैं इसलिए कुछ और तत्वों का उपयोग किया जा सकता है।

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

निम्नलिखित विन्यास गैस और कणों के लिए 2 लॉग तत्व बनाता है:

{

"लॉग": { "pm": { "विवरण": "pm25 का लॉग", "फ़ाइल नाम": "/pmlog.txt", "filesize": "10000"}, "aq": { "विवरण": " गैस की गुणवत्ता का लॉग", "फ़ाइल नाम": "/aqlog.txt", "filesize": "10000" } } }

चरण 9: क्रियाएँ

कार्रवाई
कार्रवाई

अब हमें क्रियाओं का उपयोग करके वास्तविक मानों को लॉग तत्वों में स्थानांतरित करने की आवश्यकता है। लक्ष्य तत्व को kay और मान पास करने के लिए क्रियाएँ URL संकेतन का उपयोग कर रही हैं। कई तत्व कुछ घटनाओं पर उत्सर्जन क्रियाओं का समर्थन करते हैं जो एक नए सेंसर मूल्य को कैप्चर करने जैसी होती हैं।

क्रियाओं को उस तत्व पर कॉन्फ़िगर किया गया है जो क्रियाओं को उत्सर्जित करता है 2 प्रविष्टियों की आवश्यकता होती है:

  • पीएमएस/पी25 ऑनवैल्यू इवेंट वैल्यू एक्शन का उपयोग करके लॉग/पीएम एलिमेंट को वास्तविक मान भेजता है।
  • bme680/bd ऑनगैस इवेंट एक वैल्यू एक्शन का उपयोग करके लॉग/पीएम एलिमेंट को वास्तविक मान भेजता है।

{

"pms": { "pm25": {… "onvalue": "log/pm?value=$v" }}, "bme680": { "bd": {… "ongas": "log/aq?value= $v" } } }

अब सभी तत्व कॉन्फ़िगर किए गए हैं।

चरण 10: चित्र और कॉन्फ़िगरेशन फ़ाइलें

चित्र और कॉन्फ़िगरेशन फ़ाइलें
चित्र और कॉन्फ़िगरेशन फ़ाइलें
चित्र और कॉन्फ़िगरेशन फ़ाइलें
चित्र और कॉन्फ़िगरेशन फ़ाइलें
चित्र और कॉन्फ़िगरेशन फ़ाइलें
चित्र और कॉन्फ़िगरेशन फ़ाइलें

यहाँ मेरे अंतिम IoT वायु गुणवत्ता सेंसर की कुछ तस्वीरें हैं।

डाउनलोड करने के लिए कॉन्फ़िगरेशन फ़ाइलों को अपलोड करने से पहले इसका नाम बदलकर *.json (no.txt) करना होगा।

लिंक और संदर्भ

  • होमडिंग सोर्स कोड रिपोजिटरी:
  • दस्तावेज़ीकरण:
  • मानक उदाहरण:
  • बीएमई६८० तत्व:
  • पीएमएस तत्व:
  • लॉग तत्व:
  • NtpTime तत्व:

सिफारिश की: