विषयसूची:
- आपूर्ति
- चरण 1: तापमान और आर्द्रता मापें
- चरण 2: प्रोजेक्ट बनाएं और कॉन्फ़िगर करें
- चरण 3: पुस्तकालय स्थापित करें
- चरण 4: एक DHT11 सेंसर कनेक्ट करें
- चरण 5: क्लाउड पर डेटा भेजना
- चरण 6: निदान
- चरण 7: प्रोजेक्ट प्रारंभ करें और डीबग करें
- चरण 8: डैशबोर्ड कॉन्फ़िगरेशन
- चरण 9: निष्कर्ष
वीडियो: एक ESP8266-आधारित बोर्ड के साथ DHT11/DHT22 सेंसर को क्लाउड से कनेक्ट करना: 9 चरण
2024 लेखक: John Day | [email protected]. अंतिम बार संशोधित: 2024-01-30 09:21
पिछले लेख में, मैंने अपने ESP8266-आधारित NodeMCU बोर्ड को Cloud4RPi सेवा से जोड़ा था। अब, यह एक वास्तविक परियोजना का समय है!
आपूर्ति
हार्डवेयर आवश्यकताएँ:
- ESP8266 चिप पर आधारित कोई भी बोर्ड (उदाहरण के लिए, NodeMCU)
- एक DHT11 या DHT22 सेंसर
सॉफ्टवेयर और सेवाएं:
- एडफ्रूट द्वारा डीएचटी सेंसर लाइब्रेरी - v1.3.7
- एडफ्रूट यूनिफाइड सेंसर - v1.0.3
- Cloud4rpi-esp-arduino - v0.1.0
- Cloud4RPI - IoT उपकरणों के लिए क्लाउड कंट्रोल पैनल
- VSCode के लिए PlatformIO IDE
चरण 1: तापमान और आर्द्रता मापें
मेरे पास पहले से ही एक DHT11 सेंसर था, इसलिए मैंने इसे तापमान और आर्द्रता माप के लिए उपयोग करने का निर्णय लिया। आइए सेंसर डेटा पढ़ने के लिए एक Arduino लाइब्रेरी चुनें।
Arduino रजिस्ट्री में कई पुस्तकालय हैं, जिनमें से मैंने सबसे लोकप्रिय का चयन किया है।
उनके GitHub रिपॉजिटरी के अनुसार, हमें Adafruit Unified Sensor पैकेज जोड़ने की भी आवश्यकता है।
चरण 2: प्रोजेक्ट बनाएं और कॉन्फ़िगर करें
मैंने पहले ही वर्णन किया है कि कैसे एक PlatformIO प्रोजेक्ट बनाया जाए और पहले भाग में लाइब्रेरी स्थापित की जाए। मेरी परियोजना को "MyNodeMCU" कहा जाता है। संरचना ऊपर दिखाई गई है।
यह प्रोजेक्ट थोड़ा संशोधित Cloud4RPi उदाहरण है। मैंने कोड के बजाय कॉन्फ़िगरेशन फ़ाइल में डिवाइस टोकन और वाई-फाई क्रेडेंशियल्स को संग्रहीत करने का निर्णय लिया।
Platform.io फ़ाइल इस प्रकार दिखती है:
[प्लेटफॉर्मियो] default_envs = nodemcuv2 [env: nodemcuv2] प्लेटफॉर्म = एस्प्रेसिफ8266 फ्रेमवर्क = arduino बोर्ड = nodemcuv2
चरण 3: पुस्तकालय स्थापित करें
पुस्तकालयों की स्थापना काफी सरल है। आप इसे IDE के ग्राफिकल इंटरफ़ेस से, या platform.io फ़ाइल के lib_deps अनुभाग में आवश्यक लाइब्रेरी नाम जोड़कर कर सकते हैं:
; …lib_deps = cloud4rpi-esp-arduino एडफ्रूट यूनिफाइड सेंसर DHT सेंसर लाइब्रेरी बिल्ड_फ्लैग्स = -D MQTT_MAX_PACKET_SIZE=1024 -D MQTT_MAX_TRANSFER_SIZE=128 -D CLOUD4RPI_DEBUG=0 -D SSID_NAME=\_W डी CLOUD4RPI_TOKEN=\"_Your_DEVICE_TOKEN_\"
जोड़े गए पुस्तकालय स्वचालित रूप से प्रोजेक्ट के सबफ़ोल्डर में स्थापित हो जाएंगे।
main.cpp शीर्षलेख इस प्रकार दिखता है:
#शामिल करें #शामिल करें #शामिल करें "डीएचटी.एच" शामिल करें
चरण 4: एक DHT11 सेंसर कनेक्ट करें
Adafruit एक सेंसर कनेक्शन का DHTtester.ino उदाहरण प्रदान करता है।
यह कोड एक सेंसर को इनिशियलाइज़ करता है और माप परिणाम को संग्रहीत करने के लिए एक संरचना को परिभाषित करता है (यदि यह सफल रहा हो):
#define DHTPIN 2 // DHT सेंसर से जुड़ा डिजिटल पिन#DHTTYPE DHT11 // DHT 11 //… DHT dht (DHTPIN, DHTTYPE) को परिभाषित करें; dht.begin (); //… संरचना DHT_Result {फ्लोट एच; फ्लोट टी; }; DHT_परिणाम dhtResult;
अगला फ़ंक्शन दिखाता है कि सेंसर डेटा को कैसे पढ़ा जाए और इसे ऊपर वर्णित डेटा संरचना में संग्रहीत किया जाए
शून्य रीड सेंसर () {फ्लोट एच = dht.readHumidity (); // तापमान को सेल्सियस के रूप में पढ़ें (डिफ़ॉल्ट) फ्लोट टी = dht.readTemperature ();
// जांचें कि क्या कोई पठन विफल हुआ है और बाहर निकलें
if (isnan(h) || isnan(t)) { Serial.println(F("DHT sensor से पढ़ने में विफल!")); वापसी; } dhtResult.h = ज; dhtResult.t = टी; }
चरण 5: क्लाउड पर डेटा भेजना
एक बार हमारे पास वह डेटा हो जाने के बाद, अगला कदम इसे Cloud4RPi सेवा को भेजना है।
Arduino पृष्ठ के लिए Cloud4RPi लाइब्रेरी API का वर्णन करता है, जो निम्न के लिए उपयोग की जाने वाली विधियों का एक सेट है:
- वैरिएबल बनाएं, पढ़ें और अपडेट करें,
- MQTT प्रोटोकॉल का उपयोग करके वेरिएबल मान को क्लाउड में भेजें।
पुस्तकालय तीन चर प्रकारों का समर्थन करता है: बूल, न्यूमेरिक और स्ट्रिंग।
लायब्रेरी वर्कफ़्लो की शुरुआत क्लाउड4rpi.io वेबसाइट से डिवाइस टोकन का उपयोग करके एक एपीआई इंस्टेंस बनाने से होती है (विवरण के लिए लेख का भाग 1 देखें)।
#if परिभाषित (CLOUD4RPI_TOKEN) Cloud4RPi c4r (CLOUD4RPI_TOKEN); #else Cloud4RPi c4r ("!!!_NO_DEVICE_TOKEN_!!!"); #अगर अंत
फिर, DHT11 रीडिंग के लिए वेरिएबल घोषित करें:
c4r.declareNumericVariable("DHT11_Temp");c4r.declareNumericVariable("DHT11_Hum");
फिर, सेंसर से डेटा प्राप्त करें, उन्हें वेरिएबल में सहेजें और डेटा को Cloud4RPi पर प्रकाशित करें:
c4r.setVariable("DHT11_Temp", dhtResult.t);c4r.setVariable("DHT11_Hum", dhtResult.h); c4r.publishData ();
तापमान और आर्द्रता जल्दी नहीं बदलते हैं, इसलिए प्रति 5 मिनट में एक से अधिक मान भेजने की आवश्यकता नहीं है।
चरण 6: निदान
Cloud4RPi वैरिएबल वैल्यू के साथ डायग्नोस्टिक डेटा को सपोर्ट करता है। मैंने डायग्नोस्टिक डेटा के रूप में अपटाइम, वाई-फाई सिग्नल स्ट्रेंथ और आईपी एड्रेस का इस्तेमाल किया:
c4r.declareDiagVariable("IP_Address");c4r.declareDiagVariable("RSSI"); // वाईफाई सिग्नल की ताकत c4r.declareDiagVariable ("अपटाइम");
नोट: मिलिस फ़ंक्शन जिसका उपयोग मैं अपटाइम रीसेट को हर ~ ५० दिनों में शून्य पर प्राप्त करने के लिए करता हूं। जो मेरे प्रोजेक्ट के लिए पर्याप्त से अधिक है।
निम्न कोड नैदानिक चर मान सेट करता है:
c4r.setDiagVariable("RSSI", (स्ट्रिंग)WiFi. RSSI() + "dBm");c4r.setDiagVariable("IP_Address", WiFi.localIP().toString()); c4r.setDiagVariable("अपटाइम", uptimeHumanReadable(currentMillis)); c4r.publishDiag ();
uptimeHumanReadable फ़ंक्शन मिलीसेकंड को सुविधाजनक रूप में परिवर्तित करता है:
स्ट्रिंग अपटाइमHumanReadable(अहस्ताक्षरित लंबी मिलीसेकंड) {स्थैतिक चार uptimeStr [32]; अहस्ताक्षरित लंबे सेकंड = मिलीसेकंड / 1000; अहस्ताक्षरित लंबे मिनट = सेकंड / ६०; अहस्ताक्षरित इंट घंटे = मिनट / 60; अहस्ताक्षरित इंट दिन = घंटे / 24; सेकंड - = मिनट * ६०; मिनट - = घंटे * 60; घंटे -= दिन * 24; sprintf (uptimeStr, "%d दिन% 2.2d:% 2.2d:% 2.2d", (बाइट) दिन, (बाइट) घंटे, (बाइट) मिनट, (बाइट) सेकंड); वापसी स्ट्रिंग (uptimeStr); }
फ़ंक्शन एक अजीब बड़ी संख्या के बजाय 5 दिन 10:23:14 की तरह एक स्ट्रिंग आउटपुट करता है।
चरण 7: प्रोजेक्ट प्रारंभ करें और डीबग करें
बनाए गए कोड को संकलित करने और इसे NodeMCU में फ्लैश करने के बाद, डिवाइस क्लाउड सेवा से जुड़ जाता है और डेटा भेजना शुरू कर देता है।
आप CLOUD4RPI_DEBUG प्रीप्रोसेसर वैरिएबल को 1 पर सेट करके लॉगिंग वर्बोसिटी बढ़ा सकते हैं (प्लेटफ़ॉर्म.io फ़ाइल में build_flags सेक्शन में -D CLOUD4RPI_DEBUG=1 जोड़ें)।
इसके बाद, Cloud4rpi.io साइट खोलें और नए डिवाइस को ऑनलाइन देखें। डिवाइस से प्राप्त सभी चर मान देखने के लिए इसे खोलें: सेंसर और डायग्नोस्टिक्स।
चरण 8: डैशबोर्ड कॉन्फ़िगरेशन
इस चरण में, क्लाउड से डेटा कनेक्शन चालू है। अब, डेटा के दृश्य प्रतिनिधित्व को कॉन्फ़िगर करते हैं।
मैंने निम्नलिखित डैशबोर्ड बनाने के लिए डैशबोर्ड कॉन्फ़िगरेशन UI का उपयोग किया है।
डैशबोर्ड साझा करने योग्य है, इसलिए मैं इसे तुरंत अपने मित्र के साथ साझा करता हूं।
चरण 9: निष्कर्ष
संपूर्ण परियोजना का कोड सार में उपलब्ध है।
अभी के लिए इतना ही!
टिप्पणियों में प्रश्नों और सुझावों का स्वागत है।
सिफारिश की:
ESP8266 का उपयोग करके Arduino WiFi को क्लाउड से कनेक्ट करना: 7 चरण
ESP8266 का उपयोग करके Arduino WiFi को क्लाउड से कनेक्ट करना: इस ट्यूटोरियल में हम आपको बताएंगे कि वाईफाई के माध्यम से अपने Arduino को IoT क्लाउड से कैसे कनेक्ट किया जाए। हम एक Arduino और एक ESP8266 WiFi मॉड्यूल से बने सेटअप को IoT थिंग के रूप में कॉन्फ़िगर करेंगे और इसे तैयार करेंगे। AskSensors क्लाउड के साथ संचार करने के लिए।L
IoT मूल बातें: Mongoose OS का उपयोग करके अपने IoT को क्लाउड से कनेक्ट करना: 5 चरण
IoT मूल बातें: Mongoose OS का उपयोग करके अपने IoT को क्लाउड से कनेक्ट करना: यदि आप एक ऐसे व्यक्ति हैं जो टिंकरिंग और इलेक्ट्रॉनिक्स में है, तो अधिक बार नहीं, आप इंटरनेट ऑफ़ थिंग्स शब्द से परिचित होंगे, जिसे आमतौर पर IoT के रूप में संक्षिप्त किया जाता है, और यह कि यह उपकरणों के एक सेट को संदर्भित करता है जो इंटरनेट से जुड़ सकता है! ऐसा व्यक्ति होना
Arduino IDE के साथ Esp 8266 Esp-01 के साथ शुरुआत करना - Arduino Ide और Programming Esp में Esp बोर्ड स्थापित करना: 4 चरण
Arduino IDE के साथ Esp 8266 Esp-01 के साथ शुरुआत करना | Arduino Ide और प्रोग्रामिंग Esp में Esp बोर्ड स्थापित करना: इस निर्देश में हम सीखेंगे कि Arduino IDE में esp8266 बोर्ड कैसे स्थापित करें और esp-01 कैसे प्रोग्राम करें और उसमें कोड कैसे अपलोड करें। चूंकि esp बोर्ड इतने लोकप्रिय हैं इसलिए मैंने एक इंस्ट्रक्शंस को सही करने के बारे में सोचा यह और अधिकांश लोगों को समस्या का सामना करना पड़ता है
UbiDots- एक ESP32 कनेक्ट करना और एकाधिक सेंसर डेटा प्रकाशित करना: 6 चरण
UbiDots- एक ESP32 को जोड़ना और एकाधिक सेंसर डेटा प्रकाशित करना: ESP32 और ESP 8266 IoT के क्षेत्र में बहुत परिचित SoC हैं। ये IoT प्रोजेक्ट्स के लिए एक तरह के वरदान हैं। ईएसपी 32 एकीकृत वाईफाई और बीएलई वाला एक उपकरण है। बस अपना एसएसआईडी, पासवर्ड और आईपी कॉन्फ़िगरेशन दें और चीजों को इसमें एकीकृत करें
मृदा नमी सेंसर और ESP8266 को AskSensors IoT क्लाउड से कैसे कनेक्ट करें: 10 कदम
मृदा नमी सेंसर और ESP8266 को AskSensors IoT क्लाउड से कैसे कनेक्ट करें: यह निर्देश आपको दिखाता है कि अपने मिट्टी नमी सेंसर और ESP8266 को IoT क्लाउड से कैसे जोड़ा जाए। इस परियोजना के लिए हम एक नोड MCU ESP8266 वाईफाई मॉड्यूल और एक मिट्टी नमी सेंसर का उपयोग करेंगे। जो अंदर पानी की मात्रा को मापता है