अधिकांश किसान खेती की भूमि के बड़े हिस्से का उपयोग करते हैं और बड़ी भूमि के प्रत्येक कोने तक पहुंचना और उन्हें ट्रैक करना बहुत मुश्किल हो जाता है। कभी-कभी असमान पानी छिड़कने की संभावना होती है। इसके परिणामस्वरूप खराब गुणवत्ता वाली फसलें पैदा होती हैं जो आगे चलकर वित्तीय नुकसान का कारण बनती हैं। इस परिदृश्य में नवीनतम आईओटी तकनीक का उपयोग कर स्मार्ट सिंचाई प्रणाली सहायक है और इससे खेती में आसानी होती है।
स्मार्ट सिंचाई प्रणाली व्यापक गुंजाइश पूरा सिंचाई प्रणाली को स्वचालित करने के है। यहां हम ESP8266 NodeMCU मॉड्यूल और DHT11 सेंसर का उपयोग करके एक IoT आधारित सिंचाई प्रणाली का निर्माण कर रहे हैं । यह न केवल मिट्टी में नमी के स्तर के आधार पर स्वचालित रूप से पानी की सिंचाई करेगा, बल्कि भूमि की स्थिति का ट्रैक रखने के लिए डेटा को थिंगस्पीक सर्वर पर भी भेजेगा। सिस्टम में एक पानी पंप शामिल होगा जो भूमि पर पानी छिड़कने के लिए उपयोग किया जाएगा जो कि भूमि की पर्यावरणीय स्थिति जैसे कि नमी, तापमान और आर्द्रता पर निर्भर करता है।
हम पहले भी इसी तरह के स्वचालित संयंत्र सिंचाई प्रणाली का निर्माण करते हैं जो मोबाइल पर अलर्ट भेजती है लेकिन IoT क्लाउड पर नहीं। इसके अलावा, रेन अलार्म और मृदा नमी डिटेक्टर सर्किट भी स्मार्ट सिंचाई प्रणाली के निर्माण में सहायक हो सकते हैं।
शुरू करने से पहले, यह ध्यान रखना महत्वपूर्ण है कि विभिन्न फसलों को अलग-अलग मिट्टी की नमी, तापमान और आर्द्रता की स्थिति की आवश्यकता होती है। इसलिए इस ट्यूटोरियल में हम ऐसी फसल का उपयोग कर रहे हैं जिसमें लगभग 50-55% मिट्टी की नमी की आवश्यकता होगी। इसलिए जब मिट्टी अपनी नमी 50% से कम खो देती है तो मोटर पंप पानी छिड़कने के लिए स्वचालित रूप से चालू हो जाएगा और जब तक नमी 55% तक नहीं हो जाती तब तक वह पानी का छिड़काव करता रहेगा और उसके बाद पंप बंद हो जाएगा। सेंसर डेटा को समय के परिभाषित अंतराल में थिंगस्पीक सर्वर पर भेजा जाएगा ताकि दुनिया में कहीं से भी इसकी निगरानी की जा सके।
अवयव आवश्यक
- NodeMCU ESP8266
- मृदा नमी सेंसर मॉड्यूल
- पानी पंप मॉड्यूल
- रिले मॉड्यूल
- DHT11
- तारों को जोड़ना
आप इस परियोजना के लिए आवश्यक सभी घटकों को खरीद सकते हैं।
सर्किट आरेख
इस IoT स्मार्ट सिंचाई प्रणाली के लिए सर्किट आरेख नीचे दिया गया है:
स्वचालित सिंचाई प्रणाली के लिए ESP8266 NodeMCU प्रोग्रामिंग
ESP8266 NodeMCU मॉड्यूल की प्रोग्रामिंग के लिए, केवल DHT11 सेंसर लाइब्रेरी को बाहरी लाइब्रेरी के रूप में उपयोग किया जाता है। नमी सेंसर एनालॉग आउटपुट देता है जिसे ESP8266 NodeMCU एनालॉग पिन A0 के माध्यम से पढ़ा जा सकता है। चूंकि NodeMCU अपने GPIO से 3.3V से अधिक आउटपुट वोल्टेज नहीं दे सकता है, इसलिए हम 5V मोटर पंप को चलाने के लिए रिले मॉड्यूल का उपयोग कर रहे हैं। इसके अलावा नमी सेंसर और DHT11 सेंसर बाहरी 5V बिजली की आपूर्ति से संचालित है।
एक कार्यशील वीडियो के साथ पूरा कोड इस ट्यूटोरियल के अंत में दिया गया है, यहां हम प्रोजेक्ट के काम के प्रवाह को समझने के लिए कार्यक्रम की व्याख्या कर रहे हैं।
आवश्यक पुस्तकालय सहित शुरू करें।
#शामिल
चूंकि हम थिंगस्पीक सर्वर का उपयोग कर रहे हैं, सर्वर के साथ संवाद करने के लिए एपीआई कुंजी आवश्यक है। यह जानने के लिए कि हम थिंगस्पीक से एपीआई कुंजी कैसे प्राप्त कर सकते हैं, आप थिंगस्पीक पर लाइव तापमान और आर्द्रता निगरानी पर पिछले लेख पर जा सकते हैं।
स्ट्रिंग apiKey = "X5AQ445IKMBYW31H const char * server =" api.thingspeak.com ";
अगला चरण एसएसआईडी और पासवर्ड जैसे वाई-फाई क्रेडेंशियल लिखना है।
const char * ssid = "सर्किटडिगेस्ट"; const char * पास = "xxxxxxxxxxx";
DHT सेंसर पिन को परिभाषित करें जहां DHT जुड़ा हुआ है और DHT प्रकार चुनें।
# डेफ़िन डीएचटीपीआईएन डी 3 डीएचटी डीटीएच (डीएचटीपीआईएन, डीएचटी 11);
नमी सेंसर आउटपुट ESP8266 NodeMCU के पिन A0 से जुड़ा है। और मोटर पिन को NodeMCU के D0 से जोड़ा जाता है।
const int moistPin = A0; const int motorPin = D0;
हम डेटा को भेजने के लिए मिलिस () फ़ंक्शन का उपयोग समय के प्रत्येक परिभाषित अंतराल के बाद करेंगे यह 10 सेकंड है। देरी () से बचा क्योंकि यह एक परिभाषित देरी जहां माइक्रोकंट्रोलर अन्य कार्य नहीं कर सकते के लिए कार्यक्रम बंद हो जाता है है। विलंब () और मिली () के बीच अंतर के बारे में अधिक जानें।
अहस्ताक्षरित लंबा अंतराल = 10000; अहस्ताक्षरित लंबे समय तक चली मिली = 0;
आउटपुट के रूप में मोटर पिन सेट करें, और शुरू में मोटर बंद करें। DHT11 सेंसर रीडिंग शुरू करें।
पिनमोड (मोटरपिन, आउटपूट); digitalWrite (मोटरपिन, LOW); // initally dht.begin () को मोटर बंद रखें ;
दिए गए SSID और पासवर्ड के साथ वाई-फाई को जोड़ने का प्रयास करें और वाई-फाई के कनेक्ट होने की प्रतीक्षा करें और यदि कनेक्ट हो तो अगले चरणों पर जाएं।
WiFi.begin (ssid, पास); जबकि (WiFi.status ()! = WL_CONNECTED) { विलंब (500); सीरियल.प्रिंट ("।"); } Serial.println (""); Serial.println ("वाईफाई कनेक्ट"); }
कार्यक्रम शुरू करने के वर्तमान समय को परिभाषित करें और इसे बीते हुए समय के साथ तुलना करने के लिए एक चर में सहेजें।
अहस्ताक्षरित लंबी currentMillis = मिली ();
तापमान और आर्द्रता डेटा पढ़ें और उन्हें चर में सहेजें।
float h = dht.readHumidity (); फ्लोट टी = dht.readTENS ();
यदि DHT जुड़ा हुआ है और ESP8266 NodeMCU रीडिंग पढ़ने में सक्षम है, तो फिर से जाँच करने के लिए अगले चरण पर जाएँ या यहाँ से वापस जाएँ।
if (isnan (h) - isnan (t)) { Serial.println ("DHT सेंसर को पढ़ने में विफल!"); वापसी; }
सेंसर से नमी पढ़ने को पढ़ें और रीडिंग प्रिंट करें।
नमीपेरेंटेज = (100.00 - ((एनालॉगराइड) (1023.00) * 100.00); सीरीयलप्रिंट ("मिट्टी नमी है ="); सिरियल.प्रिंट (नमीप्रकरण); सिरियल.प्रिंट ("%");
यदि नमी पढ़ना आवश्यक मिट्टी की नमी सीमा के बीच है, तो पंप को बंद रखें या यदि यह आवश्यक नमी से परे चला जाता है तो पंप को चालू करें।
अगर ( नमीप्रकरण <50) { डिजिटलवाइट (मोटरपिन, हाई); } यदि ( नमीप्रकरण > 50 && नमीप्रकरण <55) { डिजिटलविराइट (मोटरपिन, हाई); } अगर ( नमीप्रकरण > 56) { digitalWrite (motorPin, LOW); }
अब हर 10 सेकंड के बाद SendThingspeak () फ़ंक्शन को थिंगस्पीक सर्वर को नमी, तापमान और आर्द्रता डेटा भेजने के लिए कॉल करें।
अगर ((अहस्ताक्षरित लंबी) (currentMillis - lastMillis)> = अंतराल) { sendThingspeak (); पिछलामिलिस = मिलिस (); client.stop (); }
में sendThingspeak () समारोह हम अगर प्रणाली सर्वर से कनेक्ट है और अगर हां तो हम एक स्ट्रिंग जहां नमी, तापमान, नमी पढ़ने लिखा है तैयार करने और इस स्ट्रिंग API कुंजी और सर्वर पते के साथ ThingSpeak सर्वर पर भेज दिया जाएगा की जाँच करें।
if (client.connect (सर्वर, 80)) { स्ट्रिंग postStr = apiKey; postStr + = "& field1 ="; postStr + = स्ट्रिंग (नमीप्रकरण); postStr + = "& field2 ="; postStr + = स्ट्रिंग (टी); postStr + = "& field3 ="; postStr + = स्ट्रिंग (एच); postStr + = "\ r \ n \ r \ n";
अंत में डेटा को क्लाइंट.प्रिंट () फ़ंक्शन का उपयोग करके थिंगस्पीक सर्वर पर भेजा जाता है जिसमें एपीआई कुंजी, सर्वर पता और स्ट्रिंग होती है जिसे पिछले चरण में तैयार किया जाता है।
client.print ("POST / अपडेट HTTP / 1.1 \ n"); client.print ("Host: api.thingspeak.com \ n"); client.print ("कनेक्शन: करीब \ n"); client.print ("X-THINGSPEAKAPIKEY:" + apiKey + "\ n"); client.print ("सामग्री-प्रकार: एप्लिकेशन / x-www-form-urlencoded \ n"); क्लाइंट.प्रिंट ("सामग्री-लंबाई:"); client.print (postStr.length ()); क्लाइंट.प्रिंट ("\ n \ n"); client.print (postStr);
अंत में यह कैसे डेटा ThingSpeak डैशबोर्ड पर दिखता है
यह अंतिम चरण IoT आधारित स्मार्ट सिंचाई प्रणाली पर संपूर्ण ट्यूटोरियल को पूरा करता है । ध्यान दें कि पानी छिड़कने के बाद जब मिट्टी की नमी आवश्यक स्तर तक पहुंच गई हो, तो मोटर को बंद करना महत्वपूर्ण है। आप अधिक स्मार्ट सिस्टम बना सकते हैं जिसमें विभिन्न फसलों के लिए अलग नियंत्रण हो सकता है।
यदि आप इस परियोजना को करते समय किसी भी समस्या का सामना करते हैं तो नीचे टिप्पणी करें या अधिक प्रासंगिक प्रश्नों और उनके उत्तरों के लिए हमारे मंचों पर पहुंचें।
पता लगाएं पूरा कार्यक्रम और प्रदर्शन वीडियो नीचे इस परियोजना के लिए।