विषयसूची:
- चरण 1: हार्डवेयर और सॉफ्टवेयर विशिष्टता
- चरण 2: एक कैप्टिव पोर्टल बनाना
- चरण 3: वाईफाई और यूबीडॉट्स क्रेडेंशियल प्रदान करना
- चरण 4: सेंसर रीडिंग को यूबीडॉट्स में प्रकाशित करना
- चरण 5: डेटा की कल्पना करना
- चरण 6: कुल मिलाकर कोड
वीडियो: UbiDots- एक ESP32 कनेक्ट करना और एकाधिक सेंसर डेटा प्रकाशित करना: 6 चरण
2024 लेखक: John Day | [email protected]. अंतिम बार संशोधित: 2024-01-30 09:21
आईओटी के क्षेत्र में ईएसपी 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: एक कैप्टिव पोर्टल बनाना
कैप्टिव पोर्टल एक वेब पेज है जो नए जुड़े हुए उपयोगकर्ताओं को नेटवर्क संसाधनों तक व्यापक पहुंच प्रदान करने से पहले प्रदर्शित किया जाता है। यहां हम डीएचसीपी और स्टेटिक आईपी सेटिंग्स के बीच चयन करने के लिए तीन वेब पेज पेश कर रहे हैं। हम आईपी पते को ईएसपी में दो तरह से परिभाषित कर सकते हैं।
- डीएचसीपी आईपी एड्रेस- यह डिवाइस को आईपी एड्रेस को डायनेमिक रूप से असाइन करने का एक तरीका है। ESP का डिफ़ॉल्ट IP पता 192.168.4.1. है
- स्टेटिक आईपी एड्रेस- हमारे नेटवर्क डिवाइस को एक स्थायी आईपी एड्रेस असाइन करना। डिवाइस को स्थिर आईपी प्रदान करने के लिए हमें आईपी एड्रेस, गेटवे एड्रेस और सबनेट मास्क को परिभाषित करने की आवश्यकता होती है।
पहला वेबपेज 192.168.1.77 पर होस्ट किया जा रहा है। यहां उपयोगकर्ता को डीएचसीपी और स्टेटिक आईपी सेटिंग्स के बीच चयन करने के लिए रेडियो बटन दिए गए हैं। अगले वेबपेज में, हमें आगे बढ़ने के लिए आईपी से संबंधित जानकारी प्रदान करनी होगी।
HTML कोड
वेब पेजों के लिए HTML कोड इस Github रिपॉजिटरी में पाया जा सकता है। HTML वेब पेज बनाने के लिए आप किसी भी IDE या टेक्स्ट एडिटर जैसे Sublime या Notepad++ का उपयोग कर सकते हैं।
- पहले डीएचसीपी और स्टेटिक आईपी सेटिंग्स के बीच चयन करने के लिए दो रेडियो बटन युक्त एक HTML वेबपेज बनाएं।
- अब अपनी प्रतिक्रिया सबमिट करने के लिए बटन बनाएं
- रेडियो बटन को कुछ नाम दें।
- ईएसपी वेब सर्वर वर्ग इन नामों को तर्क के रूप में लेगा और इन तर्कों का उपयोग करके रेडियो बटन की प्रतिक्रिया प्राप्त करेगा
- अब डिवाइस को प्रतिक्रिया भेजने के लिए 'सबमिट' बटन डालें। अन्य वेब पेजों में, हमारे पास टेक्स्ट बॉक्स हैं।
- टेक्स्ट बॉक्स में नाम मान और इनपुट प्रकार दें और प्रतिक्रिया सबमिट करने के लिए 'सबमिट' करने के लिए सबमिट बटन जोड़ें।
- टेक्स्ट फ़ील्ड की सामग्री को रीसेट करने के लिए 'रीसेट' बटन बनाएं।
चरण 3: वाईफाई और यूबीडॉट्स क्रेडेंशियल प्रदान करना
वाईफाई क्रेडेंशियल्स को मैनेज करते समय मुख्य समस्या होती है। भले ही हमारे पास वाईफाई मल्टी लाइब्रेरी है जहां हम डिवाइस को कई एसएसआईडी और पासवर्ड दे सकते हैं और डिवाइस उपलब्ध नेटवर्क से कनेक्ट हो जाएगा। लेकिन, क्या होगा अगर उपलब्ध नेटवर्क वाईफाई मल्टी लिस्ट में नहीं है। ESP32 डिवाइस को हर समय फ्लैश करना एक विश्वसनीय समाधान नहीं है।
इस समस्या को हल करने के लिए, हम एक वेबपेज की मेजबानी कर रहे हैं जहां उपयोगकर्ता उपलब्ध नेटवर्क का एसएसआईडी और पासवर्ड जमा कर सकता है। यह निम्नानुसार काम करता है।
- वेबपेज को स्थिर आईपी या डीएचसीपी आईपी पर होस्ट किया जाता है जैसा कि उपयोगकर्ता द्वारा कैप्टिव पोर्टल से चुना जाता है
- इस वेबपेज में यूबीआईडॉट्स से डिवाइस को जोड़ने के लिए एसएसआईडी, पासवर्ड और यूबीआईडीओटीएस टोकन आईडी दर्ज करने के लिए टेक्स्ट फ़ील्ड हैं।
- इनपुट फ़ील्ड में अपने स्थानीय वाईफाई का एसएसआईडी और पासवर्ड दर्ज करें, यूबीडॉट का टोकन आईडी दर्ज करें और सबमिट दर्ज करें
- ये क्रेडेंशियल ESP32 के EEPROM में सहेजे जाते हैं
- 60-सेकंड के बाद डिवाइस स्वचालित रूप से एपी से डिस्कनेक्ट हो जाएगा
- अगली बार जब आप डिवाइस चालू करते हैं, तो उपयोगकर्ता को इस प्रक्रिया का पालन करने की आवश्यकता नहीं होती है, डिवाइस स्वचालित रूप से EEPROM से उपयोगकर्ता क्रेडेंशियल प्राप्त करेगा और सेंसर रीडिंग को UbiDots पर प्रकाशित करना जारी रखेगा।
चरण 4: सेंसर रीडिंग को यूबीडॉट्स में प्रकाशित करना
यहां हम तापमान और आर्द्रता डेटा प्राप्त करने के लिए ईएसपी 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-बाइट का फ्रेम मिल रहा है। वास्तविक तापमान और आर्द्रता डेटा प्राप्त करने के लिए इस फ्रेम में हेरफेर किया जाता है।
uint8_t डेटा [29];
डेटा [0] = सीरियल 1. पढ़ें (); देरी (के); // स्टार्ट बाइट के लिए chck अगर (डेटा [0] == 0x7E) {जबकि (! Serial1.उपलब्ध ()); के लिए (i = 1; i< 29; i++) {डेटा = Serial1.read (); देरी(1); } if(data[15]==0x7F) /////// यह जांचने के लिए कि क्या रिसिव डेटा सही है {if(data[22]==1) /////// सुनिश्चित करें कि सेंसर टाइप है सही है {
आर्द्रता = ((((डेटा [24]) * 256) + डेटा [25]) / 100.0); आर्द्रता / = 10.0; cTempint = (((uint16_t) (डेटा [26]) << 8) | डेटा [27]); cTemp = (फ्लोट) cTempint /100.0; cTemp / = 10.0; fTemp = cTemp * १.८ + ३२; fTemp / = 10.0; बैटरी = यादृच्छिक (१००, ३२७); वोल्टेज = बैटरी/100; नोडआईडी = डेटा [16];}
UbiDots MQTT API से कनेक्ट करना
MQTT प्रक्रिया के लिए हेडर फ़ाइल शामिल करें।
#शामिल
MQTT के लिए अन्य चरों को परिभाषित करें जैसे क्लाइंट का नाम, ब्रोकर का पता, टोकन आईडी (हम EEPROM से टोकन आईडी प्राप्त कर रहे हैं)
#define MQTT_CLIENT_NAME "ClientVBShightime123"
चार mqttBroker = "things.ubidots.com";
चार पेलोड [१००]; चार विषय [१५०];
// टोकन आईडी स्टोर करने के लिए वैरिएबल बनाएं
स्ट्रिंग टोकन आईडी;
विभिन्न सेंसर डेटा संग्रहीत करने के लिए चर बनाएं और विषय को संग्रहीत करने के लिए चार चर बनाएं
#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 में प्रकाशित करता है।
चरण 5: डेटा की कल्पना करना
- Ubidots पर जाएं और अपने अकाउंट में लॉग इन करें।
- शीर्ष पर सूचीबद्ध डेटा टैब से डैशबोर्ड पर नेविगेट करें।
- अब नए विजेट जोड़ने के लिए "+" आइकन पर क्लिक करें।
- सूची से एक विजेट चुनें और एक चर और डिवाइस जोड़ें।
- सेंसर डेटा को विभिन्न विजेट्स का उपयोग करके डैशबोर्ड पर देखा जा सकता है।
चरण 6: कुल मिलाकर कोड
HTML और ESP32 के लिए ओवर कोड इस GitHub रिपॉजिटरी में पाया जा सकता है।
क्रेडिट
- एनसीडी ईएसपी 32 ब्रेकआउट बोर्ड।
- एनसीडी वायरलेस तापमान और आर्द्रता सेंसर।
- pubsubclient
- यूबीडॉट्स
- कार्य अनुसूचक
सिफारिश की:
Arduino एकाधिक सर्वो मोटर्स को कैसे कनेक्ट करें - PCA9685 ट्यूटोरियल: 6 चरण
Arduino मल्टीपल सर्वो मोटर्स को कैसे कनेक्ट करें - PCA9685 ट्यूटोरियल: इस ट्यूटोरियल में हम सीखेंगे कि PCA9685 मॉड्यूल और arduino का उपयोग करके कई सर्वो मोटर्स को कैसे कनेक्ट किया जाए। PCA9685 मॉड्यूल बहुत अच्छा है जब आपको कई मोटर्स कनेक्ट करने की आवश्यकता होती है, आप इसके बारे में अधिक पढ़ सकते हैं https ://www.adafruit.com/product/815Vi देखें
एकाधिक PZEM 004T को Nodemcu मॉड्यूल से कनेक्ट करें: 3 चरण
Nodemcu मॉड्यूल के साथ कई PZEM 004T कनेक्ट करें: कुछ परियोजनाओं जैसे बिजली चोरी का पता लगाने प्रणाली या ऊर्जा निगरानी प्रणाली में कई PZEM 004T मॉड्यूल की आवश्यकता आवश्यक है, इसलिए यहां मैंने Nodemcu कोड और Nodemcu के साथ 3 PZEM 004T मॉड्यूल का कनेक्शन प्रदान किया है। यदि आपके पास कोई प्रश्न है फिर कश्मीर
4 से अधिक मोटर्स का उपयोग करना - एकाधिक मोटरशील्ड को ढेर करना: 3 चरण
4 से अधिक मोटर्स का उपयोग करना - एकाधिक मोटरशील्ड को स्टैक करना: निर्देश योग्य वाइब्रोटैक्टाइल सेंसरी सबस्टीट्यूशन और ऑग्मेंटेशन डिवाइस (https://www.instructables.com/id/Vibrotactile-Sens…) एक डिवाइस बनाने का एक तरीका दिखाता है जो एक संवेदी का अनुवाद करता है थरथानेवाला उत्तेजनाओं में इनपुट। वे स्पंदनात्मक उद्दीपन हैं p
IoT क्लाउड पर NTP टाइमस्टैम्प के साथ ESP32 डेटा कैसे प्रकाशित करें: 5 कदम
IoT क्लाउड पर NTP टाइमस्टैम्प के साथ ESP32 डेटा कैसे प्रकाशित करें: कई अनुप्रयोगों में, उपयोगकर्ताओं को अपने डेटा को पेलोड में भेजे जाने वाले मानों के स्थानीय टाइमस्टैम्प के साथ AskSensors IoT क्लाउड पर भेजने की आवश्यकता होती है। टाइमस्टैम्प प्रारूप यूनिक्स युग का समय है: जानू के बाद से मिलीसेकंड की संख्या
MQTT का उपयोग करके वायरलेस प्रेशर सेंसर डेटा प्रकाशित करना: 7 कदम
MQTT का उपयोग करके वायरलेस प्रेशर सेंसर डेटा का प्रकाशन: ESP32 और ESP 8266 IoT के क्षेत्र में बहुत परिचित SoC हैं। ये IoT प्रोजेक्ट्स के लिए एक तरह के वरदान हैं। ESP 32 इंटीग्रेटेड वाईफाई और BLE वाला डिवाइस है। बस अपना एसएसआईडी, पासवर्ड और आईपी कॉन्फ़िगरेशन दें और चीजों को