- अवयव आवश्यक
- सर्किट आरेख
- DHT11 तापमान और आर्द्रता सेंसर
- प्रोग्रामिंग NodeMCU ESP8266 लाइव तापमान और आर्द्रता निगरानी
माइक्रोकंट्रोलर्स के पास छोटी आंतरिक मेमोरी होती है जो लंबे समय के लिए उत्पन्न सेंसर को बचाने के लिए पर्याप्त नहीं है, या तो आपको कुछ बाहरी मेमोरी डिवाइस का उपयोग करना होगा या इंटरनेट का उपयोग करके कुछ क्लाउड पर डेटा को बचा सकता है। इसके अलावा, कभी-कभी यह प्रबंधित करना मुश्किल हो जाता है जब सेंसर को किसी चरम स्थिति साइट पर तैनात किया जाता है, जहां मानव नहीं पहुंच सकता है या वहां अक्सर जाना मुश्किल है। इस तरह की समस्याओं को ठीक करने के लिए हम हमेशा उन तरीकों पर ध्यान देते हैं जहां हम उस स्थान पर बिना भौतिक उपस्थिति के कहीं से भी वास्तविक समय में सेंसर डेटा की निगरानी करना चाहते हैं।
वास्तविक समय डेटाबेस इस परिदृश्य में इस्तेमाल किया जा सकता है कि हम सिर्फ कुछ नियंत्रक इंटरनेट से जोड़ा जा सकता है जो इंटरफेस करने के लिए है और बादल सर्वर के साथ डेटा विनिमय करने में सक्षम हो सकते हैं। सर्वर डेटा वास्तविक समय प्रणाली व्यवहार, डेटाबेस विश्लेषण, सांख्यिकीय विश्लेषण और प्रसंस्करण, और भविष्य के उपयोग के मामले के लिए व्याख्या की निगरानी में उपयोगी हो सकता है। इस उद्देश्य की पूर्ति के लिए बहुत सारे IoT Hardware Platforms और Cloud Platform उपलब्ध हैं। यदि आपको अपने IoT एप्लिकेशन के लिए सही प्लेटफ़ॉर्म खोजने में कठिनाइयाँ आती हैं, तो लिंक का अनुसरण करें।
पहले से हम पहले से ही थिंगस्पीक, एडफ्टर आईओ और कई अन्य आईओटी सॉफ्टवेयर्स को कवर करते थे। आज हम ऐसी ही परियोजना का निर्माण करेंगे, जहाँ हम Google के Firebase डेटाबेस सर्वर पर तापमान और आर्द्रता को वास्तविक समय में लॉग करने के लिए एक तापमान और आर्द्रता सेंसर DHT11 और एक NodeMCU ESP8266 मॉड्यूल का उपयोग करेंगे ।
हम परियोजना को दो खंडों में विभाजित करेंगे। सबसे पहले, हम हार्डवेयर घटकों को इकट्ठा करने और इसमें फर्मवेयर अपलोड करने के साथ शुरू करेंगे। और दूसरी बात हम वास्तविक समय डेटा का आदान-प्रदान करने के लिए NodeMCU के साथ सेटअप करने के लिए Firebase का उपयोग करेंगे। यदि आप ESP8266 के लिए नए हैं या Firebase का उपयोग कर LED को नियंत्रित करने पर हमारे पिछले ट्यूटोरियल का पालन करें।
अवयव आवश्यक
- NodeMCU ESP8266 मॉड्यूल
- DHT11 तापमान और आर्द्रता सेंसर
सर्किट आरेख
DHT11 तापमान और आर्द्रता सेंसर
DHT11 मॉड्यूल एक कैलिब्रेटेड डिजिटल सिग्नल आउटपुट के साथ एक आर्द्रता और तापमान परिसर की सुविधा देता है इसका मतलब है कि DHT11 सेंसर मॉड्यूल आर्द्रता और तापमान को महसूस करने के लिए एक संयुक्त मॉड्यूल है जो एक कैलिब्रेटेड डिजिटल आउटपुट सिग्नल देता है। DHT11 हमें आर्द्रता और तापमान का बहुत सटीक मूल्य देता है और उच्च विश्वसनीयता और दीर्घकालिक स्थिरता सुनिश्चित करता है। इस सेंसर में 8-बिट माइक्रोकंट्रोलर इनबिल्ट के साथ एक प्रतिरोधक प्रकार की आर्द्रता मापक घटक और एनटीसी प्रकार का तापमान मापक घटक है, जिसकी तीव्र प्रतिक्रिया और लागत प्रभावी है और 4-पिन सिंगल रो पैकेज में उपलब्ध है।
हमने पहले वेबसर्वर पर DHT11 रीडिंग को अपडेट करने के लिए ESP12E का उपयोग किया, इसके अलावा आप सभी DHT11 आधारित परियोजनाओं की जांच कर सकते हैं जहां हमने DHT11 का उपयोग कई अन्य माइक्रोकंट्रोलर जैसे Arduino, PIC, Raspberry और इंटरफेस का उपयोग करके किया है।
प्रोग्रामिंग NodeMCU ESP8266 लाइव तापमान और आर्द्रता निगरानी
काम करने वाले वीडियो के साथ पूरा कार्यक्रम अंत में दिया गया है। यहां हम कोड के कुछ महत्वपूर्ण भागों की व्याख्या कर रहे हैं।
सबसे पहले ESP8266 और फायरबेस का उपयोग करने के लिए पुस्तकालय शामिल करें।
#शामिल
नीचे दिए गए लिंक का पालन करके पुस्तकालयों को डाउनलोड और इंस्टॉल करें:
github.com/FirebaseExtended/firebase-arduino/blob/master/src/Firebase.h
github.com/bblanchon/ArduinoJson
संकलन करते समय , यदि आपको त्रुटि मिलती है कि ArduinoJson.h लाइब्रेरी स्थापित नहीं है, तो कृपया ऊपर दिए गए लिंक का उपयोग करके इसे स्थापित करें।
हम DHT11 सेंसर से रीडिंग लेने के लिए NodeMCU प्रोग्राम करेंगे और इसे हर 5 सेकंड के अंतराल पर Firebase पर धकेलेंगे। हम डेटा को आगे बढ़ाने के लिए एक रास्ता तय करेंगे। अभी दो पैरामीटर अर्थात। आर्द्रता और तापमान एक ही मूल मार्ग और विभिन्न बाल पथ में भेजे जाते हैं।
फायरबेस के साथ संचार करने के लिए ये दो पैरामीटर बहुत महत्वपूर्ण हैं। इन मापदंडों को सेट करने से ईएसपी 8266 और फायरबेस के बीच डेटा विनिमय सक्षम हो जाएगा। अपनी परियोजना के लिए इन मापदंडों को खोजने के लिए, फायरबेस सेटअप पर हमारे पिछले ट्यूटोरियल का पालन करें।
#define FIREBASE_HOST "your-project.firebaseio.com" // प्रोजेक्ट नाम पता firebase id से #define FIREBASE_AUTH "Uejx9ROxxxxxxxxxxxxxxxxxxxxxxxxxxxxxQDkhN" // firebase से उत्पन्न गुप्त कुंजी।
क्रेडेंशियल्स को सफलतापूर्वक खोजने के बाद, बस उपरोक्त कोड में बदलें।
अपने नेटवर्क से जुड़ने के लिए अपना वाई-फाई एसएसआईडी और पासवर्ड दर्ज करें।
#define WIFI_SSID "network_name" // अपने घर या सार्वजनिक वाईफाई के नाम पर इनपुट करें #define WIFI_PASSWORD "पासवर्ड" // वाईफाई ssid का पासवर्ड
NHTMCU में DHT डेटा पिन को परिभाषित करें। आप NodeMCU में किसी भी डिजिटल GPIO पिन का उपयोग कर सकते हैं।
#define DHTPIN D4
DHT लाइब्रेरी सभी DHT वेरिएंट के लिए बनाई गई है और यह विकल्प के साथ आता है कि आप DHT सेंसर का उपयोग करना चाहते हैं, जैसे DHT11 या DHT22। बस सही DHT सेंसर चुनें और आगे बढ़ें।
#define DHTTYPE DHT11 // DHT प्रकार को DHT 11 या DHT22 DHT dht (DHTPIN, DHTTYPE) के रूप में चुनें;
चयनित वाई-फाई नेटवर्क से कनेक्ट करें और फायरबेस डेटाबेस सर्वर से भी कनेक्ट करें।
WiFi.begin (WIFI_SSID, WIFI_PASSWORD); Firebase.begin (FIREBASE_HOST, FIREBASE_AUTH);
NodeMCU के पिन D4 पर पढ़ना शुरू करें ।
dht.begin ();
DHT सेंसर से आर्द्रता और तापमान रीडिंग लें और फ्लोट मान के रूप में सहेजें।
float h = dht.readHumidity (); // पढ़ने का तापमान या आर्द्रता लगभग 250 मिलीसेकंड होती है! फ्लोट टी = dht.readTENS (); // तापमान को सेल्सियस के रूप में पढ़ें (डिफ़ॉल्ट)
बस जांचें कि क्या डीएचटी सेंसर सही तरीके से वायर्ड है या यह क्षतिग्रस्त नहीं है और नियंत्रक इससे रीडिंग पढ़ने में सक्षम हो सकता है। यदि रीडिंग दिखाई नहीं दे रही है, तो शायद सेंसर क्षतिग्रस्त हो गया है, बस एक त्रुटि संदेश दिखाएं और आगे की जांच किए बिना फिर से जांच करें।
if (isnan (h) - isnan (t)) {// चेक करें कि क्या कोई रीड विफल हुआ है और जल्दी से बाहर निकलें (फिर से प्रयास करने के लिए)। Serial.println (F ("DHT सेंसर से पढ़ने में विफल!")); वापसी; }
डिबगिंग के लिए सीरियल मॉनिटर में प्रिंट सेंसर डेटा और फायरबेस को भेजने के लिए स्ट्रिंग रूप में तापमान और आर्द्रता के मूल्यों को बचाएं। यह भी ध्यान दें कि DHT11 सेंसर से दो रीडिंग के बीच की न्यूनतम देरी 2 सेकंड है, इसलिए हमेशा 2 सेकंड से अधिक देरी का उपयोग करें। DHT11 के बारे में अधिक जानने के लिए आप आधिकारिक डेटाशीट में देख सकते हैं।
सिरियल.प्रिंट ("आर्द्रता:"); सिरियल.प्रिंट (एच); स्ट्रिंग फायरह्यूमिड = स्ट्रिंग (एच) + स्ट्रिंग ("%"); // पूर्णांक आर्द्रता को स्ट्रिंग आर्द्रता में बदलें Serial.print ("% तापमान:"); सीरियल.प्रिंट (टी); सिरियल.प्रिंट्लन ("° C"); स्ट्रिंग fireTemp = स्ट्रिंग (t) + स्ट्रिंग ("° C"); देरी (4000);
अंत में, पथ पर तापमान और आर्द्रता के डेटा को "your-project.firebaseio.com/DHT11/Humidity/" पर भेजें।
Firebase.pushString ("/ DHT11 / आर्द्रता", फायरह्यूमिड); // सेटअप पथ और रीडिंग भेजें Firebase.pushString ("/ DHT11 / तापमान", फायर टैम्प); // सेटअप पथ और रीडिंग भेजें
आप अपने फायरबेस खाते में सभी डेटा देख सकते हैं। बस " मेरा प्रोजेक्ट " में " मेरा कंसोल " फायरबेस में " डेटाबेस " अनुभाग पर जाएं ।
डेटा भेजने और उसकी निगरानी के लिए फायरबेस को सेटअप करने के लिए आप हमारे पिछले ट्यूटोरियल को देख सकते हैं।
इस IoT आधारित तापमान और आर्द्रता की निगरानी के लिए पूरा कोड और वीडियो नीचे दिया गया है।