विषयसूची:

MQTT का उपयोग करके वायरलेस प्रेशर सेंसर डेटा प्रकाशित करना: 7 कदम
MQTT का उपयोग करके वायरलेस प्रेशर सेंसर डेटा प्रकाशित करना: 7 कदम

वीडियो: MQTT का उपयोग करके वायरलेस प्रेशर सेंसर डेटा प्रकाशित करना: 7 कदम

वीडियो: MQTT का उपयोग करके वायरलेस प्रेशर सेंसर डेटा प्रकाशित करना: 7 कदम
वीडियो: MQTT वेब डैशबोर्ड | HTML, CSS और Java Script का उपयोग करके MQTT वेब ऐप 2024, जुलाई
Anonim
MQTT का उपयोग करके वायरलेस प्रेशर सेंसर डेटा प्रकाशित करना
MQTT का उपयोग करके वायरलेस प्रेशर सेंसर डेटा प्रकाशित करना

आईओटी के क्षेत्र में ईएसपी 32 और ईएसपी 8266 बहुत परिचित एसओसी हैं। ये IoT प्रोजेक्ट्स के लिए एक तरह के वरदान हैं। ESP 32 इंटीग्रेटेड वाईफाई और BLE वाला डिवाइस है। बस अपना SSID, पासवर्ड और IP कॉन्फ़िगरेशन दें और चीजों को क्लाउड में एकीकृत करें। यहाँ इस निर्देश में, हम IoT की कुछ बुनियादी शर्तों जैसे IoT प्लेटफॉर्म, MQTT, कैप्टिव पोर्टल्स आदि पर विचार करेंगे। तो चलिए इसके माध्यम से चलते हैं

  • बहुत ही सरल शब्दों में IoT आर्किटेक्चर में डिवाइस को क्लाउड में रखने के लिए एक एम्बेडेड डिवाइस और IoT प्लेटफॉर्म होता है। यहां हम सेंसर डेटा की कल्पना करने के लिए UbiDots IoT प्लेटफॉर्म का उपयोग कर रहे हैं।
  • आईपी सेटिंग्स और उपयोगकर्ता क्रेडेंशियल्स को प्रबंधित करना उपयोगकर्ता के लिए सिरदर्द हो सकता है। क्या होगा यदि उपयोगकर्ता वाईफाई क्रेडेंशियल बदलना चाहता है? क्या होगा यदि उपयोगकर्ता डीएचसीपी/स्टेटिक आईपी सेटिंग्स को स्विच करना चाहता है? ESP32 को हर बार फ्लैश करना विश्वसनीय नहीं है और इन समस्याओं का समाधान भी नहीं है। इसलिए हम वाईफाई क्रेडेंशियल और अन्य कॉन्फ़िगरेशन को बचाने के लिए कैप्टिव पोर्टल से गुजरेंगे।
  • MQTT अब IoT की दुनिया में एक बहुत ही सामान्य शब्द बनता जा रहा है। यह तेज, मजबूत और दुबला वास्तुकला के कारण प्रकाशित और सदस्यता द्वारा अनुरोध और प्रतिक्रियाओं (HTTP) को पार कर गया है।

यहाँ इस निर्देश में, हम प्रदर्शन करने जा रहे हैं।

  • कैप्टिव पोर्टल का उपयोग करके वाईफाई और एमक्यूटीटी क्रेडेंशियल देना।
  • UbiDots में एकाधिक सेंसर डेटा का प्रकाशन और सदस्यता लेना।
  • वायरलेस दबाव और तापमान सेंसर से सेंसर डेटा पढ़ना
  • ESP32 से वेब फॉर्म होस्ट करना।
  • SPIFFS ESP32 से पढ़ना और लिखना।

चरण 1: हार्डवेयर और सॉफ्टवेयर विशिष्टता

हार्डवेयर विशिष्टता

  • ESP32 वाईफाई/बीएलई
  • वायरलेस दबाव और तापमान सेंसर

सॉफ्टवेयर विशिष्टता

  • अरुडिनो आईडीई
  • एक्ससीटीयू
  • लैबव्यू उपयोगिता

चरण 2: वायरलेस दबाव और तापमान सेंसर

वायरलेस दबाव और तापमान सेंसर
वायरलेस दबाव और तापमान सेंसर
वायरलेस दबाव और तापमान सेंसर
वायरलेस दबाव और तापमान सेंसर
वायरलेस दबाव और तापमान सेंसर
वायरलेस दबाव और तापमान सेंसर

विशेषताएं

  • औद्योगिक ग्रेड सेंसर लंबी दूरी के वायरलेस दबाव तापमान सेंसर
  • ऑपरेटिंग रेंज 0 से 14000 एमबार -40 डिग्री से + 85 डिग्री सेल्सियस (-40 डिग्री से 185 डिग्री फारेनहाइट)
  • विन्यास योग्य आंतरिक गणना दबाव संकल्प 0.012 से 0.065 एमबार
  • विन्यास योग्य आंतरिक गणना तापमान संकल्प 0.002 से 0.012 डिग्री सेल्सियस
  • शुद्धता ±2.5 एमबार, ±2 डिग्री सेल्सियस
  • निरपेक्ष दबाव, सापेक्ष दबाव और सापेक्ष ऊंचाई परिवर्तन आउटपुट
  • ऑन-बोर्ड एंटीना के साथ 2 माइल लाइन-ऑफ-विज़न रेंज
  • हाई-गेन एंटेना के साथ 28 मील तक की सुपीरियर एलओएस रेंज
  • रास्पबेरी पाई, Microsoft® Azure®, Arduino और अधिक के लिए इंटरफ़ेस
  • DigiMesh®. का उपयोग करके वायरलेस मेश नेटवर्किंग

लैबव्यू यूटिलिटी और एक्ससीटीयू का उपयोग करके वायरलेस दबाव और तापमान सेंसर को कॉन्फ़िगर करना

सेंसर दो मोड में चलता है

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

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

चरण 3: वाईफाई से कनेक्ट करना

वाईफाई से जुड़ना
वाईफाई से जुड़ना
वाईफाई से जुड़ना
वाईफाई से जुड़ना

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

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

एक वेबपेज होस्ट किया जा रहा है जहां एक सूची उपलब्ध वाईफाई नेटवर्क और वहां आरएसएसआई दिखा रही है। वाईफाई नेटवर्क और पासवर्ड का चयन करें और सबमिट दर्ज करें। क्रेडेंशियल्स को EEPROM में सेव किया जाएगा और IP सेटिंग को SPIFFS में सेव किया जाएगा। इस पर और अधिक इस निर्देश में पाया जा सकता है।

चरण 4: ESP32 पर UbiDots सेट करना

ESP32 पर UbiDots की स्थापना
ESP32 पर UbiDots की स्थापना

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

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

#परिभाषित करें _TASK_TIMEOUT#शेड्यूलर टीएस शामिल करें; // ------------- कार्य -------------// टास्क tSensor(4 * TASK_SECOND, TASK_FOREVER, &taskSensorCallback, &ts, false, NULL, &taskSensorDisable); टास्क tWiFi(10* TASK_SECOND, TASK_FOREVER, &taskWiFiCallback, &ts, false, NULL, &taskWiFiDisable);

  • टास्क 1 सेंसर वैल्यू को पढ़ने के लिए है यह टास्क 1 सेकंड तक चलता है जब तक कि यह 10 सेकंड के टाइमआउट तक नहीं पहुंच जाता।
  • जब टास्क 1 का समय समाप्त हो जाता है तो हम स्थानीय वाईफाई और एमक्यूटीटी ब्रोकर से जुड़ रहे हैं।
  • अब टास्क 2 सक्षम है और हम टास्क 1 को अक्षम कर रहे हैं
  • टास्क 2 UbiDots MQTT ब्रोकर को सेंसर डेटा प्रकाशित करने के लिए है, यह कार्य 20 सेकंड के समय समाप्त होने तक 20 सेकंड तक चलता है
  • जब टास्क 2 अपने समय समाप्त हो जाता है तो टास्क 1 फिर से सक्षम हो जाता है और टास्क 2 अक्षम हो जाता है। यहां फिर से, हमें अद्यतन मूल्य मिल रहा है और प्रक्रिया जारी है।

I2C सेंसर डेटा पढ़ना

हमें वायरलेस टेम्परेचर और ह्यूमिडिटी सेंसर्स से 29-बाइट का फ्रेम मिल रहा है। वास्तविक तापमान और आर्द्रता डेटा प्राप्त करने के लिए इस फ्रेम में हेरफेर किया जाता है।

अगर (सीरियल 1.उपलब्ध ())

{डेटा [0] = सीरियल 1. पढ़ें (); देरी (के); अगर (डेटा [0] == 0x7 ई) { जबकि (! सीरियल 1. उपलब्ध ()); के लिए (i = 1; i< ३६; i++) { डेटा = Serial1.read (); देरी(1); } if(data[15]==0x7F) /////// यह जांचने के लिए कि क्या रिसिव डेटा सही है {if(data[22]==0x06) //////// सुनिश्चित करें कि सेंसर टाइप है सही है {int cTemp = ((((डेटा [24]) * 256) + डेटा [25])); int16_t abs_दबाव = ((((uint16_t) (डेटा [26]) << 8) | डेटा [27]) * 0.001); इंट आरएलटी_प्रेशर = ((((डेटा [२८]) * २५६) + डेटा [२९]) * ०.००१); int16_t delta_alt = ((((uint16_t) (डेटा [30]) << 8) | डेटा [31]) * 0.01); फ्लोट बैटरी = ((डेटा [१८] * २५६) + डेटा [१९]); फ्लोट वोल्टेज = 0.00322 * बैटरी; सीरियल.प्रिंट ("सेंसर नंबर"); Serial.println (डेटा [16]); सीरियल.प्रिंट ("सेंसर टाइप"); Serial.println (डेटा [22]); Serial.print ("फर्मवेयर संस्करण"); Serial.println (डेटा [17]); सीरियल.प्रिंट ("सेल्सियस में तापमान:"); सीरियल.प्रिंट (cTemp); सीरियल.प्रिंट्लन ("सी"); सीरियल.प्रिंट ("पूर्ण दबाव:"); सीरियल.प्रिंट्लन (abs_ दबाव); सीरियल.प्रिंट ("एमबार"); सीरियल.प्रिंट ("सापेक्ष दबाव:"); सीरियल.प्रिंट्लन (आरएलटी_प्रेशर); सीरियल.प्रिंट ("एमबार"); सीरियल.प्रिंट ("डेल्टा एल्टीट्यूड:"); Serial.println (delta_alt); सीरियल.प्रिंट ("मीटर"); सीरियल.प्रिंट ("एडीसी मान:"); Serial.println (बैटरी); सीरियल.प्रिंट ("बैटरी वोल्टेज:"); सीरियल.प्रिंट (वोल्टेज); सीरियल.प्रिंट्लन ("\ n"); अगर (वोल्टेज <1) { Serial.println ("बैटरी बदलने का समय"); } } }else{ के लिए (i = 0; i< ३६; i++) { Serial.print(data); सीरियल.प्रिंट (","); देरी(1); }} } }

UbiDots MQTT API से कनेक्ट करना

MQTT प्रक्रिया के लिए हेडर फ़ाइल शामिल करें।

#शामिल

MQTT के लिए अन्य चर परिभाषित करें जैसे क्लाइंट का नाम, ब्रोकर का पता, टोकन आईडी

#define TOKEN "BBFF-************************************" // आपका Ubidots TOKEN#define MQTT_CLIENT_NAME "******************************"

चार mqttBroker = "things.ubidots.com";

चार पेलोड [१००]; चार विषय [१५०]; // टोकन आईडी टोकन स्टोर करने के लिए वैरिएबल बनाएं

चरण 5: सेंसर रीडिंग को UbiDots में प्रकाशित करना

UbiDots में सेंसर रीडिंग प्रकाशित करना
UbiDots में सेंसर रीडिंग प्रकाशित करना

विभिन्न सेंसर डेटा संग्रहीत करने के लिए चर बनाएं और विषय को संग्रहीत करने के लिए चार चर बनाएं

#define VARIABLE_LABEL_TEMPF "tempF" // वैरिएबल लेबल को परिभाषित करें#VARIABLE_LABEL_TEMPC "tempC" को परिभाषित करें

चार विषय १ [१००];

चार विषय २ [१००]; चार विषय ३ [१००];

उल्लिखित MQTT विषय पर डेटा प्रकाशित करें, पेलोड { "tempc": {value: "tempData"}} जैसा दिखेगा।

स्प्रिंटफ (विषय 1, "% s", ""); sprintf(topic1, "%s%s", "/v1.6/devices/", DEVICE_LABEL); स्प्रिंटफ (पेलोड, "% s", ""); // पेलोड स्प्रिंटफ को साफ करता है (पेलोड, "{"%s\":", VARIABLE_LABEL_TEMPC); // मूल्य जोड़ता है sprintf(पेलोड, "%s{"value\":%s}", पेलोड, str_cTemp); // मूल्य स्प्रिंटफ जोड़ता है (पेलोड, "% s}", पेलोड); // शब्दकोश कोष्ठक को बंद करता है Serial.println (पेलोड); Serial.println(client.publish(topic1, पेलोड) ? "प्रकाशित": "notpublished"); // अन्य विषय के लिए भी ऐसा ही करें

client.publish() डेटा को UbiDots में प्रकाशित करता है।

चरण 6: डेटा की कल्पना करना

डेटा विज़ुअलाइज़ करना
डेटा विज़ुअलाइज़ करना
  • Ubidots पर जाएं और अपने अकाउंट में लॉग इन करें।
  • शीर्ष पर सूचीबद्ध डेटा टैब से डैशबोर्ड पर नेविगेट करें।
  • अब नए विजेट जोड़ने के लिए "+" आइकन पर क्लिक करें।
  • सूची से एक विजेट चुनें और एक चर और डिवाइस जोड़ें।
  • सेंसर डेटा को विभिन्न विजेट्स का उपयोग करके डैशबोर्ड पर देखा जा सकता है।

चरण 7: कुल मिलाकर कोड

HTML और ESP32 के लिए ओवर कोड इस GitHub रिपॉजिटरी में पाया जा सकता है।

क्रेडिट

  • एनसीडी ईएसपी 32 ब्रेकआउट बोर्ड।
  • एनसीडी वायरलेस दबाव और तापमान सेंसर
  • pubsubclient
  • यूबीडॉट्स
  • कार्य अनुसूचक

सिफारिश की: