खेत, ग्रीन हाउस, चिकित्सा, उद्योग घर और कार्यालयों जैसे कई स्थानों पर मापने के लिए आर्द्रता और तापमान बहुत ही सामान्य पैरामीटर हैं। हमने पहले से ही Arduino का उपयोग करके आर्द्रता और तापमान माप को कवर किया है और एलसीडी पर डेटा प्रदर्शित किया है।
इस IoT प्रोजेक्ट में हम ThingSpeak का उपयोग करके इंटरनेट पर आर्द्रता और तापमान की निगरानी करने जा रहे हैं, जहाँ हम ThingSpeak सर्वर का उपयोग करके इंटरनेट पर वर्तमान आर्द्रता और तापमान डेटा दिखाएंगे। यह Arduino, DHT11 सेंसर मॉड्यूल, ESP8266 WIFI मॉड्यूल और एलसीडी के बीच डेटा संचार द्वारा पूरा किया गया है । सेल्सियस स्केल थर्मामीटर और प्रतिशत स्केल आर्द्रता मीटर एक एलसीडी डिस्प्ले के माध्यम से परिवेश के तापमान और आर्द्रता को प्रदर्शित करता है और इसे दुनिया में कहीं से भी लाइव निगरानी के लिए थिंगस्पीक सर्वर पर भेजता है ।
कार्य और थिंगस्पीक सेटअप:
यह IoT आधारित परियोजना है जिसमें चार खंड हैं, सबसे पहले आर्द्रता और तापमान सेंसर DHT11 में आर्द्रता और तापमान डेटा की अनुभूति होती है । दूसरे Arduino Uno DHT11 सेंसर के डेटा को प्रतिशत और सेल्सियस पैमाने में उपयुक्त संख्या के रूप में निकालता है, और इसे वाई-फाई मॉड्यूल में भेजता है। तीसरा वाई-फाई मॉड्यूल ESP8266 डेटा को थिंगस्पीक के सीवियर में भेजता है। और अंत में थिंगस्पीक डेटा का विश्लेषण करता है और इसे ग्राफ रूप में दिखाता है। तापमान और आर्द्रता को प्रदर्शित करने के लिए वैकल्पिक एलसीडी का भी उपयोग किया जाता है।
थिंगस्पीक Arduino के लिए IoT आधारित परियोजनाओं के लिए बहुत अच्छा उपकरण प्रदान करता है। ThingSpeak साइट का उपयोग करके, हम कहीं से भी इंटरनेट पर अपने डेटा की निगरानी कर सकते हैं, और हम ThingSpeak द्वारा प्रदान किए गए चैनल और वेबपृष्ठों का उपयोग करके इंटरनेट पर अपने सिस्टम को नियंत्रित कर सकते हैं। थिंगस्पीक सेंसर से डेटा एकत्र करता है, प्रतिक्रिया का ट्रिगर करके डेटा और 'अधिनियम' का विश्लेषण और कल्पना करता है। यहां हम ESP8266 WIFI मॉड्यूल का उपयोग करके डेटा को ThingSpeak सर्वर पर भेजने के तरीके के बारे में बता रहे हैं:
1. सबसे पहले, उपयोगकर्ता को ThingSpeak.com पर एक खाता बनाना होगा, फिर साइन इन करें और Get Started पर क्लिक करें ।
2. अब 'चैनल' मेनू पर जाएं और आगे की प्रक्रिया के लिए उसी पृष्ठ पर नए चैनल विकल्प पर क्लिक करें ।
3. अब आपको चैनल बनाने के लिए एक फॉर्म दिखाई देगा, उसमें अपनी पसंद के अनुसार Name and Description भरें। फिर फ़ील्ड 1 और फ़ील्ड 2 लेबल में 'आर्द्रता' और 'तापमान' भरें, दोनों फ़ील्ड के चेकबॉक्स पर टिक करें। नीचे दिए गए 'मेक पब्लिक' विकल्प के लिए चेक बॉक्स पर टिक करें और अंत में चैनल को सेव करें। अब आपका नया चैनल बन गया है।
4. अब 'API कीज' टैब पर क्लिक करें और राइट एंड रीड एपीआई कीज को सेव करें, यहां हम केवल राइट की का उपयोग कर रहे हैं। कोड में आपको इस कुंजी को char * api_key में कॉपी करना होगा ।
5. इसके बाद, 'डेटा आयात / निर्यात' पर क्लिक करें और अपडेट चैनल फ़ीड प्राप्त करें अनुरोध URL की प्रतिलिपि बनाएँ, जो है:
api.thingspeak.com/update?api_key=SIWOYBX26OXQ1WMS&field1=0
6. अब उपयोगकर्ता खुला करने के लिए "api.thingspeak.com" की जरूरत का उपयोग कर httpGet साथ समारोह postUrl के रूप में "अद्यतन? Api_key = SIWOYBX26OXQ1WMS और फ़ील्ड 1 = 0" और फिर डेटा फीड या अद्यतन अनुरोध पते का उपयोग कर डेटा भेजने।
डेटा भेजने से पहले, उपयोगकर्ता को इस क्वेरी स्ट्रिंग या पोस्टयूआरएल को तापमान और आर्द्रता डेटा फ़ील्ड के साथ संपादित करने की आवश्यकता है, जैसे नीचे दिखाया गया है। यहां हमने स्ट्रिंग में दोनों पैरामीटर जोड़े हैं जिन्हें हमें सर्वर से जीईटी अनुरोध का उपयोग करके भेजने की आवश्यकता है, इसके बाद हमने सर्वर को डेटा भेजने के लिए httpGet का उपयोग किया है। नीचे पूर्ण कोड की जाँच करें।
स्प्रिंटफ (पोस्टUrl, "अपडेट; एपीआई_की =% s & फ़ील्ड 1 =% s & फ़ील्ड 2 =% s", एपीआई_की, आर्द्रस्ट्रीम, टेम्परस्ट्र); httpGet ("api.thingspeak.com", postUrl, 80);
इस अनुच्छेद के अंत में पूरी प्रक्रिया वीडियो अनुभाग में प्रदर्शित की गई है ।
इस परियोजना का कार्य DHT11 से डेटा प्राप्त करने के लिए सिंगल वायर सीरियल संचार पर आधारित है। पहले Arduino DHT मॉड्यूल को एक स्टार्ट सिग्नल भेजता है और फिर DHT डेटा युक्त प्रतिक्रिया प्रतिक्रिया देता है। Arduino दो भागों में डेटा एकत्र करता है और निकालता है पहला आर्द्रता है और दूसरा तापमान है और फिर इसे 16x2 एलसीडी और थिंगस्पीक सर्वर पर भेजें। ThingSpeak नीचे के रूप में ग्राफ़ के रूप में डेटा प्रदर्शित करता है:
आप DHT11 सेंसर और इसके इंटरफैसिंग के बारे में यहाँ Arduino से अधिक जान सकते हैं ।
सर्किट विवरण:
इस ThingSpeak तापमान और आर्द्रता निगरानी परियोजना के लिए कनेक्शन बहुत सरल हैं। यहां तापमान और आर्द्रता प्रदर्शित करने के लिए एक लिक्विड क्रिस्टल डिस्प्ले का उपयोग किया जाता है, जो सीधे 4-बिट मोड में Arduino से जुड़ा होता है। एलसीडी के आरएस, एन, डी 4, डी 5, डी 6 और डी 7 अरुडिनो डिजिटल पिन नंबर 14, 15, 16, 17, 18 और 19 से जुड़े हैं। यह एलसीडी वैकल्पिक है।
DHT11 सेंसर मॉड्यूल Arduino के डिजिटल पिन 12 से जुड़ा है। वाई-फाई मॉड्यूल ESP8266 का Vcc और GND पिन सीधे 3.3V से जुड़ा हुआ है और Arduino का GND और CH_PD भी 3.3V से जुड़ा हुआ है। ESP8266 के Tx और Rx पिन सीधे Arduino के 2 और 3 से जुड़े होते हैं। सॉफ्टवेयर सीरियल लाइब्रेरी का उपयोग यहाँ Arduino के पिन 2 और 3 पर धारावाहिक संचार की अनुमति देने के लिए भी किया जाता है। हमने पहले से ही Arduino के लिए ESP8266 वाई-फाई मॉड्यूल के इंटरफेसिंग को विस्तार से कवर किया है।
प्रोग्रामिंग हिस्सा:
इस परियोजना का प्रोग्रामिंग हिस्सा सभी कार्यों को करने के लिए बहुत महत्वपूर्ण भूमिका निभाता है। सबसे पहले हम आवश्यक पुस्तकालयों को शामिल करते हैं और चर शुरू करते हैं।
#include "dht.h" // dht #include के लिए पुस्तकालय भी शामिल है
इसके बाद अपनी लिखी एपीआई कुंजी दर्ज करें और कुछ तार लें।
char * api_key = "SIWOYBX26OXQ1WMS"; // ThingSpeak static char postUrl से अपनी लिखें एपीआई कुंजी दर्ज करें; इंट हमी, मंदिर; शून्य httpGet (स्ट्रिंग आईपी, स्ट्रिंग पथ, इंट पोर्ट = 80);
में शून्य पाश () समारोह हम तापमान और आर्द्रता पढ़ता है और उसके बाद एलसीडी पर उन रीडिंग दिखा।
void send2server () फ़ंक्शन का उपयोग सर्वर को डेटा भेजने के लिए किया जाता है। Send2server फ़ंक्शन हर 20 सेकंड में कॉल करने के लिए टाइमर इंटरप्ट सर्विस रूटीन है। जब हम अपडेट फ़ंक्शन कहते हैं, तो टाइमर इंटरप्ट सर्विस रूटीन कहा जाता है।
शून्य send2server () {char tempStr; चार ह्यूमिड्रस्ट; dtostrf (मंदिर, 5, 3, tempStr); dtostrf (humi, 5, 3, humidStr); स्प्रिंटफ (पोस्टUrl, "अपडेट; एपीआई_के =% एस एंड फील्ड 1 =% एस एंड फील्ड 2 =% एस", एपीआईआईके, ह्यूमिडस्ट्र, टेम्पस्ट्र); httpGet ("api.thingspeak.com", postUrl, 80); }