विषयसूची:

ESP32 थिंग और ब्लिंक का उपयोग करते हुए प्लांट मॉनिटर: 5 कदम
ESP32 थिंग और ब्लिंक का उपयोग करते हुए प्लांट मॉनिटर: 5 कदम

वीडियो: ESP32 थिंग और ब्लिंक का उपयोग करते हुए प्लांट मॉनिटर: 5 कदम

वीडियो: ESP32 थिंग और ब्लिंक का उपयोग करते हुए प्लांट मॉनिटर: 5 कदम
वीडियो: Nodemcu | blink external led | Nodemcu programming external led blink | part02 2024, जून
Anonim
ESP32 थिंग और Blynk. का उपयोग करके प्लांट मॉनिटर
ESP32 थिंग और Blynk. का उपयोग करके प्लांट मॉनिटर
ESP32 थिंग और Blynk. का उपयोग करके प्लांट मॉनिटर
ESP32 थिंग और Blynk. का उपयोग करके प्लांट मॉनिटर

अवलोकन

इस परियोजना का लक्ष्य एक हाउसप्लांट की स्थितियों की निगरानी करने में सक्षम एक कॉम्पैक्ट डिवाइस बनाना है। डिवाइस उपयोगकर्ता को Blynk ऐप का उपयोग करके स्मार्टफोन से मिट्टी की नमी के स्तर, आर्द्रता के स्तर, तापमान और "फील-लाइक" तापमान की जांच करने में सक्षम बनाता है। इसके अतिरिक्त, संयंत्र के लिए परिस्थितियां अनुपयुक्त होने पर उपयोगकर्ता को एक ईमेल अलर्ट प्राप्त होगा। उदाहरण के लिए, जब मिट्टी की नमी का स्तर उपयुक्त स्तर से नीचे चला जाता है, तो उपयोगकर्ता को पौधे को पानी देने के लिए एक रिमाइंडर प्राप्त होगा।

चरण 1: आवश्यकताएँ

आवश्यकताएं
आवश्यकताएं
आवश्यकताएं
आवश्यकताएं
आवश्यकताएं
आवश्यकताएं

यह परियोजना एक स्पार्कफुन ईएसपी 32 चीज, एक डीएचटी 22 सेंसर, और एक इलेक्ट्रॉनिक ईंट मिट्टी नमी सेंसर का उपयोग करती है। इसके अतिरिक्त, एक वाईफाई नेटवर्क और Blynk ऐप की आवश्यकता होती है। अधिमानतः, ESP32 चीज़ को समाहित करने के लिए एक जलरोधक संलग्नक बनाया जाना चाहिए। हालांकि यह उदाहरण एक बिजली स्रोत के लिए एक मानक आउटलेट का उपयोग करता है, एक रिचार्जेबल बैटरी, सौर पैनल और चार्ज नियंत्रक के अतिरिक्त डिवाइस को अक्षय ऊर्जा के माध्यम से संचालित करने में सक्षम बनाता है।

चरण 2: ब्लिंक

ब्लिंको
ब्लिंको
ब्लिंको
ब्लिंको
ब्लिंको
ब्लिंको

होने के लिए, Blynk ऐप डाउनलोड करें और एक नया प्रोजेक्ट बनाएं। प्रमाणीकरण टोकन पर ध्यान दें--इसका उपयोग कोड में किया जाएगा। Blynk ऐप में नए डिस्प्ले विजेट बनाएं और कोड में परिभाषित संबंधित वर्चुअल पिन का चयन करें। पुश करने के लिए ताज़ा अंतराल सेट करें। प्रत्येक विजेट को अपना वर्चुअल पिन असाइन किया जाना चाहिए।

चरण 3: Arduino IDE

अरुडिनो आईडीई
अरुडिनो आईडीई

Arduino IDE डाउनलोड करें। वाईफाई कनेक्टिविटी सुनिश्चित करने के लिए ESP32 चीज़ ड्राइवर और डेमो के लिए डाउनलोड निर्देशों का पालन करें। कोड में शामिल Blynk और DHT लाइब्रेरी डाउनलोड करें। अंतिम कोड में प्रमाणीकरण टोकन, वाईफाई पासवर्ड, वाईफाई उपयोगकर्ता नाम और ईमेल भरें। मिट्टी के प्रकार के लिए न्यूनतम और अधिकतम मान खोजने के लिए मिट्टी की नमी सेंसर के लिए डेमो कोड का उपयोग करें। इन मानों को अंतिम कोड में रिकॉर्ड करें और बदलें। अंतिम कोड में तापमान, मिट्टी की नमी और पौधे के लिए नमी के न्यूनतम मूल्यों को बदलें। कोड अपलोड करें।

चरण 4: इसे बनाएं

इसे बनाओ
इसे बनाओ
इसे बनाओ
इसे बनाओ
इसे बनाओ
इसे बनाओ

सबसे पहले, मिट्टी नमी सेंसर को 3.3V, जमीन और इनपुट पिन 34 से कनेक्ट करें। ध्यान दें, यह अभिन्न है कि स्विच ए पर सेट है क्योंकि इस सेंसर के लिए एनालॉग सेटिंग का उपयोग किया जाएगा। इसके बाद, DHT सेंसर को 3.3V, ग्राउंड और इनपुट पिन 27 से कनेक्ट करें। DHT22 सेंसर को VCC और डेटा आउट पिन के बीच 10K ओम रेसिस्टर की आवश्यकता होती है। यह सुनिश्चित करने के लिए कि यह ठीक से वायर्ड है, डीएचटी आरेख की जांच करना सुनिश्चित करें। ESP32 को मिट्टी में नमी सेंसर और सतह के ऊपर DHT सेंसर के साथ वाटरप्रूफ बाड़े के अंदर कॉन्फ़िगर करें। एक शक्ति स्रोत से कनेक्ट करें और अपने संयंत्र के पर्यावरण पर डेटा का आनंद लें।

चरण 5: कोड

// शामिल पुस्तकालय

#BLYNK_PRINT सीरियल परिभाषित करें

#शामिल करें #शामिल करें #शामिल करें "डीएचटी.एच" शामिल करें

// डीएचटी सेंसर की जानकारी

#define DHTTYPE DHT22 // DHT 22 (AM2302), AM2321 #define DHTPIN 27 // DHT सेंसर DHT dht (DHTPIN, DHTTYPE) से जुड़ा डिजिटल पिन; // DHT सेंसर को इनिशियलाइज़ करें।

// इनपुट पिन और आउटपुट को परिभाषित करें

इंट मिट्टी_सेंसर = ३४; // नमी सेंसर से जुड़े एनालॉग इनपुट पिन नंबर को परिभाषित करें

int output_value;//आउटपुट के रूप में परिभाषित करें

int नमी स्तर;//आउटपुट के रूप में परिभाषित करें

इंट अधिसूचित = 0; // अधिसूचित को 0. के रूप में परिभाषित करें

इंट टाइमडेले = ६०००० एल; // चलाने के लिए टाइमर सेट करें प्रत्येक मिनट या 60,000 मिलीसेकंड में एक बार डेटा प्राप्त करें

// संयंत्र के लिए न्यूनतम मान निर्धारित करें

int min_moisture =20; int min_temperature =75; int min_humidity =60;

// आपको Blynk ऐप में Auth टोकन मिलना चाहिए।

चार प्रमाणीकरण = "Auth_Token_Here";

// आपका वाईफाई क्रेडेंशियल।

चार एसएसआईडी = "वाईफाई_नेटवर्क_हेयर"; चार पास = "वाईफाई_पासवर्ड_यहां";

ब्लिंक टाइमर टाइमर;

// यह फ़ंक्शन वर्चुअल पिन (5) पर हर सेकंड Arduino का अप टाइम भेजता है।

// ऐप में, विजेट की रीडिंग फ़्रीक्वेंसी को PUSH पर सेट किया जाना चाहिए। इसका मतलब है // कि आप परिभाषित करते हैं कि Blynk ऐप को कितनी बार डेटा भेजना है।

शून्य सेंसर () // सेंसर को पढ़ने और ब्लिंक को धक्का देने के लिए मुख्य कार्य

{output_value = एनालॉग रीड (soil_sensor); // मिट्टी_सेंसर से एनालॉग सिग्नल पढ़ें और आउटपुट_वैल्यू के रूप में परिभाषित करें // न्यूनतम से मैप आउटपुट_वल्यू, अधिकतम मान 100, 0 और 0, 100 के बीच बाधा // न्यूनतम और खोजने के लिए नमूना कोड और सीरियल मॉनिटर का उपयोग करें। बेहतर अंशांकन नमी स्तर के लिए व्यक्तिगत सेंसर और मिट्टी के प्रकार के लिए अधिकतम मान = बाधा (मानचित्र (आउटपुट_वैल्यू, 1000, 4095, 100, 0), 0, 100); फ्लोट एच = dht.readHumidity (); // पढ़ें आर्द्रता फ्लोट टी = dht.readTemperature (); // तापमान को सेल्सियस के रूप में पढ़ें (डिफ़ॉल्ट) फ्लोट f = dht.readTemperature(true); // फ़ारेनहाइट के रूप में तापमान पढ़ें (फ़ारेनहाइट = सत्य) // फ़ारेनहाइट में गर्मी सूचकांक की गणना करें (डिफ़ॉल्ट) फ्लोट hif = dht.computeHeatIndex (f, h); // जांचें कि क्या कोई पठन विफल हुआ है और जल्दी से बाहर निकलें (फिर से प्रयास करने के लिए)। if (isnan(h) || isnan(t) || isnan(f)) { Serial.println(F("DHT sensor से पढ़ने में विफल!")); वापसी; } // यह ब्लिंक ऐप Blynk.virtualWrite (V5, नमीलेवल) में विजेट्स में परिभाषित वर्चुअल पिन से वैल को जोड़ता है; // वर्चुअल पिन को नमी स्तर भेजें 5 Blynk.virtualWrite (V6, f); // वर्चुअल को तापमान भेजें पिन 6 Blynk.virtualWrite(V7, h);// वर्चुअल पिन 7 को नमी भेजें Blynk.virtualWrite(V8, hif);// वर्चुअल पिन 8 को हीट इंडेक्स भेजें

अगर (अधिसूचित == 0)

{ अगर (नमी स्तर <= min_moisture) // यदि नमी का स्तर न्यूनतम मान के बराबर या उससे कम है { Blynk.email ("Email_Here", "प्लांट मॉनिटर", "वाटर प्लांट!"); // वाटर प्लांट को ईमेल भेजें } देरी (15000); // Blynk ईमेल 15 सेकंड अलग होने चाहिए। विलंब १५००० मिलीसेकंड अगर (f <= min_temperature) // यदि तापमान न्यूनतम मान के बराबर या उससे कम है {Blynk.email("Email_Here", "प्लांट मॉनिटर", "तापमान कम!"); // ईमेल भेजें कि तापमान कम है

}

देरी (15000); // Blynk ईमेल 15 सेकंड अलग होने चाहिए। विलंब १५००० मिलीसेकंड अगर (h <= min_humidity) // यदि आर्द्रता न्यूनतम मान के बराबर या उससे कम है {Blynk.email("Emial_Here", "प्लांट मॉनिटर", "आर्द्रता कम!"); // ईमेल भेजें कि आर्द्रता कम है } अधिसूचित = 1; timer.setTimeout(timedelay *5, resetNotified); // बार-बार चेतावनी ईमेल के बीच वांछित मिनटों की संख्या से समय की देरी को गुणा करें}}

शून्य रीसेट अधिसूचित () // ईमेल आवृत्ति रीसेट करने के लिए कॉल किया गया फ़ंक्शन

{अधिसूचित = 0; }

व्यर्थ व्यवस्था()

{ सीरियल.बेगिन (९६००); // डीबग कंसोल Blynk.begin (auth, ssid, पास); // blynk टाइमर से कनेक्ट करें। सेटइंटरवल (समय की देरी, सेंसर); // प्रत्येक मिनट में कॉल करने के लिए एक फ़ंक्शन सेट करें या dht.begin() पर किस समय विलंब को सेट किया गया है; // डीएचटी सेंसर चलाएं}

// शून्य लूप में केवल blynk.run और टाइमर होना चाहिए

शून्य लूप () {Blynk.run (); // blynk टाइमर चलाएँ। रन (); // BlynkTimer आरंभ करता है }

सिफारिश की: