विषयसूची:

लंबी दूरी के वायरलेस तापमान और कंपन सेंसर के साथ शुरुआत करना: 7 कदम
लंबी दूरी के वायरलेस तापमान और कंपन सेंसर के साथ शुरुआत करना: 7 कदम

वीडियो: लंबी दूरी के वायरलेस तापमान और कंपन सेंसर के साथ शुरुआत करना: 7 कदम

वीडियो: लंबी दूरी के वायरलेस तापमान और कंपन सेंसर के साथ शुरुआत करना: 7 कदम
वीडियो: What is Sensor & Types of Sensor - electrical interview question 2024, जुलाई
Anonim
लंबी दूरी के वायरलेस तापमान और कंपन सेंसर के साथ शुरुआत करना
लंबी दूरी के वायरलेस तापमान और कंपन सेंसर के साथ शुरुआत करना

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

इस निर्देश में, हम IoT लंबी दूरी के वायरलेस कंपन और तापमान सेंसर पर काम करेंगे। ये कई व्यापक अनुप्रयोगों जैसे औद्योगिक ग्रेड सेंसर हैं।

  • धातु
  • विद्युत उत्पादन
  • खुदाई
  • खाद्य और पेय पदार्थ

तो, इस निर्देश में हम निम्नलिखित से गुजरेंगे:

  • XCTU और Labview UI का उपयोग करके वायरलेस सेंसर को कॉन्फ़िगर करना।
  • सेंसर से कंपन के मान प्राप्त करना।
  • xbee डिवाइस और xbee प्रोटोकॉल के कार्य को समझना।
  • कैप्टिव पोर्टल का उपयोग करके वाईफाई क्रेडेंशियल और आईपी कॉन्फ़िगरेशन को कॉन्फ़िगर करना

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

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

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

  • वायरलेस कंपन और तापमान सेंसर
  • ज़िग्मो रिसीवर
  • ESP32 BLE / वाईफाई डिवाइस

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

  • अरुडिनो आईडीई
  • लैब व्यू यूटिलिटी

चरण 2: XCTU का उपयोग करके वायरलेस सेंसर और Zigmo रिसीवर को कॉन्फ़िगर करना

XCTU का उपयोग करके वायरलेस सेंसर और Zigmo रिसीवर को कॉन्फ़िगर करना
XCTU का उपयोग करके वायरलेस सेंसर और Zigmo रिसीवर को कॉन्फ़िगर करना
XCTU का उपयोग करके वायरलेस सेंसर और Zigmo रिसीवर को कॉन्फ़िगर करना
XCTU का उपयोग करके वायरलेस सेंसर और Zigmo रिसीवर को कॉन्फ़िगर करना

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

यहां वायरलेस सेंसर और जिग्मो रिसीवर कम शक्ति और लंबी दूरी के समाधान XBee का उपयोग करते हैं। XBee एक ZigBee प्रोटोकॉल का उपयोग करता है जो 902 से 928 MHz ISM बैंड में ऑपरेशन को निर्दिष्ट करता है।

Xbee को XCTU सॉफ़्टवेयर का उपयोग करके कॉन्फ़िगर किया जा सकता है

  1. Xbee डिवाइस खोजें या ऊपरी बाएँ आइकन पर क्लिक करके एक नया Xbee डिवाइस जोड़ें।
  2. डिवाइस को लेफ्ट-हैंड साइड पैनल पर लिस्ट किया जाएगा।
  3. सेटिंग्स देखने के लिए डिवाइस पर डबल क्लिक करें।
  4. अब ऊपरी दाएं कोने में कंसोल आइकन पर क्लिक करें
  5. आप कंसोल आउटपुट पर आने वाले मान को देख सकते हैं
  6. यहां हमें लंबाई 54 बाइट्स का फ्रेम मिल रहा है
  7. वास्तविक मूल्य प्राप्त करने के लिए इन बाइट्स को और अधिक हेरफेर किया जाएगा। आने वाले चरणों में वास्तविक तापमान और कंपन मान प्राप्त करने की प्रक्रिया का उल्लेख किया गया है।

चरण 3: लैबव्यू यूटिलिटी का उपयोग करके वायरलेस तापमान और कंपन मान विश्लेषण

लैबव्यू यूटिलिटी का उपयोग करके वायरलेस तापमान और कंपन मूल्य विश्लेषण
लैबव्यू यूटिलिटी का उपयोग करके वायरलेस तापमान और कंपन मूल्य विश्लेषण
लैबव्यू यूटिलिटी का उपयोग करके वायरलेस तापमान और कंपन मूल्य विश्लेषण
लैबव्यू यूटिलिटी का उपयोग करके वायरलेस तापमान और कंपन मूल्य विश्लेषण

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

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

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

रन मोड में जाने के लिए लैंडिंग पेज मेनू से रन आइकन पर क्लिक करें।

चरण 4: कैप्टिव पोर्टल का उपयोग करके डीएचसीपी/स्टेटिक आईपी सेटिंग्स को कॉन्फ़िगर करना

कैप्टिव पोर्टल का उपयोग करके डीएचसीपी/स्टेटिक आईपी सेटिंग्स को कॉन्फ़िगर करना
कैप्टिव पोर्टल का उपयोग करके डीएचसीपी/स्टेटिक आईपी सेटिंग्स को कॉन्फ़िगर करना
कैप्टिव पोर्टल का उपयोग करके डीएचसीपी/स्टेटिक आईपी सेटिंग्स को कॉन्फ़िगर करना
कैप्टिव पोर्टल का उपयोग करके डीएचसीपी/स्टेटिक आईपी सेटिंग्स को कॉन्फ़िगर करना
कैप्टिव पोर्टल का उपयोग करके डीएचसीपी/स्टेटिक आईपी सेटिंग्स को कॉन्फ़िगर करना
कैप्टिव पोर्टल का उपयोग करके डीएचसीपी/स्टेटिक आईपी सेटिंग्स को कॉन्फ़िगर करना

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

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

चरण 5: कैप्टिव पोर्टल का उपयोग करके वाईफाई सेटिंग्स को सहेजना

कैप्टिव पोर्टल का उपयोग करके वाईफाई सेटिंग्स को सहेजना
कैप्टिव पोर्टल का उपयोग करके वाईफाई सेटिंग्स को सहेजना

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

चरण 6: सेंसर रीडिंग को यूबीडॉट्स में प्रकाशित करना

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

वायरलेस सेंसर डेटा पढ़ना

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

अगर (सीरियल २.उपलब्ध ()) {डेटा [०] = सीरियल २. रीड (); देरी (के); if(data[0]==0x7E) { Serial.println ("गॉट पैकेट"); जबकि (! Serial2.उपलब्ध ()); के लिए (i = 1; i< ५५; i++) { डेटा = Serial2.read (); देरी(1); } if(data[15]==0x7F) /////// यह जांचने के लिए कि क्या रिसिव डेटा सही है {if(data[22]==0x08) //////// सुनिश्चित करें कि सेंसर टाइप है सही है { rms_x = ((uint16_t)(((डेटा [24])<<16) + ((डेटा [25])<<8) + (डेटा [26]))/100); rms_y = ((uint16_t)(((डेटा[27])<<16) + ((डेटा [28])<<8) + (डेटा [29]))/100); rms_z = ((uint16_t)(((डेटा [30])<<16) + ((डेटा [31])<<8) + (डेटा [32]))/100); max_x = ((uint16_t) (((डेटा [33]) << 16) + ((डेटा [34]) << 8) + (डेटा [35]))/100); max_y = ((uint16_t) (((डेटा [36]) << 16) + ((डेटा [37]) << 8) + (डेटा [38]))/100); max_z = ((uint16_t) (((डेटा [39]) << 16) + ((डेटा [40]) << 8) + (डेटा [41]))/100);

min_x = ((uint16_t) (((डेटा [42]) << 16) + ((डेटा [43]) << 8) + (डेटा [44]))/100); min_y = ((uint16_t) (((डेटा [45]) << 16) + ((डेटा [46]) << 8) + (डेटा [47]))/100); min_z = ((uint16_t) (((डेटा [48]) << 16) + ((डेटा [49]) << 8) + (डेटा [50]))/100);

cTemp = (((((डेटा [५१]) * २५६) + डेटा [५२])); फ्लोट बैटरी = ((डेटा [१८] * २५६) + डेटा [१९]); फ्लोट वोल्टेज = 0.00322 * बैटरी; सीरियल.प्रिंट ("सेंसर नंबर"); Serial.println (डेटा [16]); सीरियल.प्रिंट ("सेंसर टाइप"); Serial.println (डेटा [22]); सीरियल.प्रिंट ("फर्मवेयर संस्करण"); Serial.println (डेटा [17]); Serial.print ("सेल्सियस में तापमान:"); सीरियल.प्रिंट (cTemp); सीरियल.प्रिंट्लन ("सी"); सीरियल.प्रिंट ("एक्स-अक्ष में आरएमएस कंपन:"); सीरियल.प्रिंट (rms_x); Serial.println ("मिलीग्राम"); सीरियल.प्रिंट ("वाई-अक्ष में आरएमएस कंपन:"); सीरियल.प्रिंट (rms_y); Serial.println ("मिलीग्राम"); सीरियल.प्रिंट ("जेड-अक्ष में आरएमएस कंपन:"); सीरियल.प्रिंट (rms_z); Serial.println ("मिलीग्राम");

Serial.print ("एक्स-अक्ष में न्यूनतम कंपन:");

सीरियल.प्रिंट (min_x); Serial.println ("मिलीग्राम"); Serial.print ("Y-अक्ष में न्यूनतम कंपन:"); सीरियल.प्रिंट (min_y); Serial.println ("मिलीग्राम"); Serial.print ("Z-अक्ष में न्यूनतम कंपन:"); सीरियल.प्रिंट (min_z); Serial.println ("मिलीग्राम");

सीरियल.प्रिंट ("एडीसी मान:");

Serial.println (बैटरी); सीरियल.प्रिंट ("बैटरी वोल्टेज:"); सीरियल.प्रिंट (वोल्टेज); सीरियल.प्रिंट्लन ("\ n"); अगर (वोल्टेज <1) { Serial.println ("बैटरी बदलने का समय"); } } } और { के लिए (i = 0; i< ५४; i++) { Serial.print(data); सीरियल.प्रिंट (","); देरी(1); } } } }

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

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

#शामिल "PubSubClient.h"

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

#define MQTT_CLIENT_NAME "ClientVBShightime123"char mqttBroker = "things.ubidots.com"; चार पेलोड [१००]; चार विषय [१५०]; // टोकन आईडी स्टोर करने के लिए वैरिएबल बनाएं स्ट्रिंग टोकन आईडी;

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

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

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

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

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

sprintf(topic1, "%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 में प्रकाशित करता है।

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

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

कुल मिलाकर कोड

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

  1. एनसीडी ईएसपी 32 ब्रेकआउट बोर्ड।
  2. एनसीडी वायरलेस तापमान और आर्द्रता सेंसर।
  3. pubsubclient
  4. यूबीडॉट्स

सिफारिश की: