विषयसूची:
- चरण 1: Openweather.org से API कुंजी और URL प्राप्त करें
- चरण 2: कनेक्शन आरेख
- चरण 3: Arduino कोड
- चरण 4: प्रोसेसिंग कोड
वीडियो: (आईओटी परियोजना) ईएसपी8266 और ओपनवेदर एपीआई का उपयोग करके मौसम डेटा प्राप्त करें: 5 कदम
2024 लेखक: John Day | [email protected]. अंतिम बार संशोधित: 2024-01-30 09:18
इस निर्देशयोग्य में हम एक साधारण IOT प्रोजेक्ट बनाने जा रहे हैं, जिसमें openweather.com/api से हमारे शहर का मौसम डेटा प्राप्त होता है और इसे प्रोसेसिंग सॉफ़्टवेयर का उपयोग करके प्रदर्शित किया जाता है।
आपूर्ति:
- अरुडिनो
- ESP8266 या कोई अन्य esp मॉड्यूल
- अरुडिनो आईडीई
- प्रोसेसिंग सॉफ्टवेयर
- ब्रेड बोर्ड
- जम्परवायर पुरुष से पुरुष और पुरुष से महिला
चरण 1: Openweather.org से API कुंजी और URL प्राप्त करें
- https://openweathermap.org में खाता बनाएं (छवि 1)
- लॉगिन करने के बाद एपीआई कीज पर जाएं और आपको एपीआई की मिलेगी जैसा कि इमेज में दिखाया गया है। (इमेज 2)
- एपीआई कुंजी की प्रतिलिपि बनाएँ और इसे नोटपैड फ़ाइल में सहेजें। (छवि 3)
- एपीआई विकल्प पर जाएं (छवि 4)
- छवि में दिखाए अनुसार एपीआई दस्तावेज़ विकल्प पर जाएं (छवि 5)
- यूआरएल को कॉपी करें और दिखाया गया है और इसे नोटपैड फ़ाइल में सहेजें (छवि 6)
चरण 2: कनेक्शन आरेख
चरण 3: Arduino कोड
Arduino में इस कोड को कॉपी करने से पहले सुनिश्चित करें कि आपने बोर्ड मैनेजर का उपयोग करके ESP8266 बोर्ड को arduino ide में डाउनलोड किया है।
#शामिल
#include #include #include const char* ssid = "Your SSID"; const char* पासवर्ड = "आपका SSID PASSWORD";// URL पथ के साथ आपका डोमेन नाम या पथ के साथ IP पता स्ट्रिंग openWeatherMapApiKey = "अपनी API कुंजी यहाँ चिपकाएँ"; // अपने देश कोड और शहर के साथ बदलें स्ट्रिंग शहर = "मुंबई"; स्ट्रिंग कंट्रीकोड = "IN"; स्ट्रिंग डेटा [16]; // परीक्षण के उद्देश्यों के लिए डिफ़ॉल्ट टाइमर 10 सेकंड के लिए सेट किया गया है // अंतिम आवेदन के लिए, अवरुद्ध / प्रतिबंधित अहस्ताक्षरित लंबे समय तक चलने से बचने के लिए प्रति घंटे / मिनट एपीआई कॉल सीमा की जांच करें। // टाइमर 10 मिनट (600000) पर सेट है // अहस्ताक्षरित लंबा टाइमरDelay = 600000; // टाइमर को १० सेकंड (१००००) पर सेट करें अहस्ताक्षरित लंबा टाइमरDelay = १००००; स्ट्रिंग जेसनबफर; शून्य सेटअप () {Serial.begin(११५२००); वाईफाई.बेगिन (एसएसआईडी, पासवर्ड); // सीरियल.प्रिंट्लन ("कनेक्टिंग"); जबकि (वाईफाई। स्थिति ()! = WL_CONNECTED) {देरी (500); // सीरियल.प्रिंट ("।"); } // सीरियल.प्रिंट्लन (""); // Serial.print ("आईपी पते के साथ वाईफाई नेटवर्क से जुड़ा:"); // सीरियल.प्रिंट्लन (वाईफाई.लोकलआईपी ()); // // Serial.println ("टाइमर 10 सेकंड (टाइमरडेले वैरिएबल) पर सेट है, पहली रीडिंग को प्रकाशित करने में 10 सेकंड का समय लगेगा।"); } शून्य लूप () {// एक HTTP GET अनुरोध भेजें अगर ((मिलिस () - लास्टटाइम)> टाइमरडेले) {// वाईफाई कनेक्शन की स्थिति जांचें अगर (वाईफाई। स्थिति () == WL_CONNECTED) {स्ट्रिंग सर्वरपाथ = "https://api.openweathermap.org/data/2.5/weather?q=" + शहर + "," + देश कोड + "&APID=" + "d5b56fd07988143ae141503ed9d81742" + "&units=metric"; jsonBuffer = httpGETRequest (serverPath.c_str ()); // सीरियल.प्रिंट्लन (जेसनबफर); JSONVar myObject = JSON.parse(jsonBuffer); // JSON.typeof(jsonVar) का उपयोग var के प्रकार को प्राप्त करने के लिए किया जा सकता है यदि (JSON.typeof(myObject) == "undefined") {//Serial.println ("पार्सिंग इनपुट विफल!"); वापसी; } // सीरियल.प्रिंट ("JSON ऑब्जेक्ट ="); // सीरियल.प्रिंट्लन (myObject); // सीरियल.प्रिंट ("तापमान:"); // Serial.println (myObject ["मुख्य"] ["अस्थायी"]); // सीरियल.प्रिंट ("दबाव:"); // Serial.println (myObject ["मुख्य"] ["दबाव"]); // सीरियल.प्रिंट ("आर्द्रता:"); // Serial.println (myObject ["मुख्य"] ["आर्द्रता"]); // सीरियल.प्रिंट ("हवा की गति:"); // Serial.println (myObject ["हवा"] ["गति"]); int अस्थायी = myObject ["मुख्य"] ["अस्थायी"]; लंबे अध्यक्ष = myObject ["मुख्य"] ["दबाव"]; int आर्द्र = myObject ["मुख्य"] ["आर्द्रता"]; int हवा = myObject ["हवा"] ["गति"]; स्ट्रिंग देश = JSON.stringify (myObject ["sys"] ["देश"]); स्ट्रिंग शहर 1 = JSON.stringify (myObject ["नाम"]); स्ट्रिंग मौसम = JSON.stringify (myObject ["मौसम"] [0] ["विवरण"]); स्ट्रिंग आइकन = JSON.stringify (myObject ["मौसम"] [0] ["आइकन"]); डेटा [0] = स्ट्रिंग (अस्थायी); डेटा [1] = "/"; डेटा [2] = स्ट्रिंग (अध्यक्ष); डेटा [3] = "/"; डेटा [4] = स्ट्रिंग (आर्द्र); डेटा [5] = "/"; डेटा [6] = स्ट्रिंग (हवा); डेटा [7] = "/"; डेटा [8] = देश; डेटा [9] = "/"; डेटा [१०] = शहर १; डेटा [11] = "/"; डेटा [12] = मौसम; डेटा [13] = "/"; डेटा [14] = आइकन; डेटा [15] = "\ n"; for(int i=0;i0) {// Serial.print("HTTP रिस्पांस कोड:"); // सीरियल.प्रिंट्लन (httpResponseCode); पेलोड = http.getString (); } और { सीरियल.प्रिंट ("त्रुटि कोड:"); Serial.println (httpResponseCode); } // मुफ्त संसाधन http.end(); वापसी पेलोड; }
चरण 4: प्रोसेसिंग कोड
इस कोड को चलाने से पहले दिए गए आइकन इमेज को डाउनलोड करें जिनका उपयोग मौसम दिखाने के लिए किया जाएगा। और इमेज और कोड को एक ही फोल्डर में रखें।
आयात प्रसंस्करण। धारावाहिक। *;
सीरियल मायपोर्ट; पीइमेज आईएमजी; पीआईएममेज img2; पीआईएममेज img3; पिमेज img4; पिमेज img5; पीआईएममेज img6; पिमेज img7; पिमेज img8; पिमेज img9; पिमेज img10; पिमेज img11; पिमेज img12; पिमेज img13; पिमेज img14; पिमेज img15; पिमेज img16; पिमेज img17; पिमेज img18; अंतर अस्थायी; इंट प्रेसिडेंट; int आर्द्र; अंतर हवा; स्ट्रिंग शहर = ""; स्ट्रिंग देश = ""; स्ट्रिंग मौसम = ""; स्ट्रिंग आइकन = ""; शून्य सेटअप () {आकार (500, 500); myPort = नया सीरियल (यह, "COM3", 115200); img = लोडइमेज ("01d.png"); img2 = लोडइमेज ("01n.png"); img3 = लोडइमेज ("02d.png"); img4 = लोडइमेज ("02n.png"); img5 = लोडइमेज ("03d.png"); img6 = लोडइमेज ("03n.png"); img7 = लोडइमेज ("04d.png"); img8 = लोडइमेज ("04n.png"); img9 = लोडइमेज ("09d.png"); img10 = लोडइमेज ("09n.png"); img11 = लोडइमेज ("10d.png"); img12 = लोडइमेज ("10n.png"); img13 = लोडइमेज ("11d.png"); img14 = लोडइमेज ("11n.png"); img15 = लोडइमेज ("13d.png"); img16 = लोडइमेज ("13n.png"); img17 = लोडइमेज ("50d.png"); img18 = लोडइमेज ("50n.png"); } शून्य ड्रा () {पृष्ठभूमि (७२, २०९, २०४); पाठ आकार(22); भरें (54, 69, 79); पाठ ("तापमान:", 25, 100); पाठ (अस्थायी + "डिग्री सेल्सियस", 200, 100); पाठ ("दबाव:", 25, 150); टेक्स्ट (प्रेस + "एचपीए", 200, 150); पाठ ("आर्द्रता:", 25, 200); पाठ (आर्द्र + "%", 200, 200); पाठ ("हवा:", 25, 250); पाठ (पवन + "एम / एस", 200, 250); पाठ ("देश / शहर:", 25, 300); पाठ (देश + "-" + शहर, 200, 300); पाठ ("मौसम:", 25, 350); पाठ (मौसम, २००, ३५०); if(icon.contains("01d")){ image(img, 380, 15); } और अगर (icon.contains("01n")){ image(img2, 380, 15); } और अगर (icon.contains("02d")){ image(img3, 380, 15); } और अगर (icon.contains("02n")){ image(img4, 380, 15); } और अगर (icon.contains("03d")){ image(img5, 380, 15); } और अगर (icon.contains("03n")){ image(img6, 380, 15); } और अगर (icon.contains("04d")){ image(img7, 380, 15); } और अगर (icon.contains("04n")){ image(img8, 380, 15); } और अगर (icon.contains("09d")){ image(img9, 380, 15); } और अगर (icon.contains("09n")){ image(img10, 380, 15); } और अगर (icon.contains("10d")){ image(img11, 380, 15); } और अगर (icon.contains("10n")){ image(img12, 380, 15); } और अगर (icon.contains("11d")){ image(img13, 380, 15); } और अगर (icon.contains("11n")){ image(img14, 380, 15); } और अगर (आइकन == "13 डी") {छवि (img15, 380, 15); } और अगर (icon.contains("13n")){ image(img16, 380, 15); } और अगर (icon.contains("50d")){ image(img17, 380, 15); } और अगर (icon.contains("50n")){ image(img18, 380, 15); } } शून्य सीरियलइवेंट (सीरियल मायपोर्ट) {अगर (myPort.उपलब्ध ()> 0) {स्ट्रिंग डेटा = myPort.readStringUntil ('\ n'); अगर (डेटा! = शून्य) {डेटा = ट्रिम (डेटा); स्ट्रिंग आइटम = विभाजन (डेटा, '/'); अगर (आइटम। लंबाई> 1) {अस्थायी = int (आइटम [0]); अध्यक्ष = इंट (आइटम [1]); आर्द्र = इंट (आइटम [2]); हवा = इंट (आइटम [3]); शहर = आइटम [4]। बदलें ("\"", ""); देश = आइटम [5]। बदलें ("\"", ""); मौसम = आइटम [6]। बदलें ("\"", ""); आइकन = आइटम [7]। बदलें ("\"", ""); } } } }
सिफारिश की:
आईओटी - ESP8266 का उपयोग करके थिंग्सपीक पर डेटा पोस्ट करें: 3 चरण
आईओटी | ESP8266 का उपयोग करके थिंग्सपीक पर डेटा पोस्ट करें: आजकल, IoT चलन में है और बहुत सारी मशीनों में क्लाउड पर अपलोड करने और डेटा का विश्लेषण करने के लिए डेटा है। छोटे सेंसर क्लाउड पर डेटा को अपडेट करते हैं और दूसरे छोर पर एक्चुएटर उस पर कार्य करता है। मैं IoT के उदाहरण में से एक की व्याख्या करने जा रहा हूं। मैं यह लेख और मैं
नोड एमसीयू और Google सहायक का उपयोग करके घरेलू उपकरणों को नियंत्रित करें - आईओटी - ब्लिंक - आईएफटीटीटी: 8 कदम
नोड एमसीयू और Google सहायक का उपयोग करके घरेलू उपकरणों को नियंत्रित करें | आईओटी | ब्लिंक | IFTTT: Google सहायक का उपयोग करने वाले उपकरणों को नियंत्रित करने के लिए एक सरल परियोजना: चेतावनी: मुख्य बिजली को संभालना खतरनाक हो सकता है। अत्यधिक सावधानी से संभालें। ओपन सर्किट के साथ काम करते समय एक पेशेवर इलेक्ट्रीशियन को किराए पर लें। मैं दा के लिए जिम्मेदारियां नहीं लूंगा
डार्क स्काई एपीआई का उपयोग करके एक मौसम डैशबोर्ड बनाएं: 5 कदम (चित्रों के साथ)
डार्क स्काई एपीआई का उपयोग करके एक मौसम डैशबोर्ड बनाएं: डार्क स्काई मौसम की भविष्यवाणी और विज़ुअलाइज़ेशन में माहिर है। डार्क स्काई का सबसे अच्छा पहलू उनका वेदर एपीआई है जिसका उपयोग हम दुनिया में लगभग कहीं से भी मौसम के आंकड़ों को पुनः प्राप्त करने के लिए कर सकते हैं। यह सिर्फ बारिश या धूप का मौसम नहीं है, बल्कि तापमान
एंड्रॉइड एप्लिकेशन को एडब्ल्यूएस आईओटी से कैसे कनेक्ट करें और वॉयस रिकग्निजिंग एपीआई को समझना: 3 कदम
एडब्ल्यूएस आईओटी के साथ एंड्रॉइड एप्लिकेशन को कैसे कनेक्ट करें और वॉयस रिकग्निजिंग एपीआई को समझना: यह ट्यूटोरियल उपयोगकर्ता को सिखाता है कि एंड्रॉइड एप्लिकेशन को एडब्ल्यूएस आईओटी सर्वर से कैसे कनेक्ट किया जाए और वॉयस रिकग्निशन एपीआई को समझना जो कॉफी मशीन को नियंत्रित करता है। एप्लिकेशन एलेक्सा के माध्यम से कॉफी मशीन को नियंत्रित करता है। वॉयस सर्विस, प्रत्येक ऐप की सी
NodeMCU, MySQL, PHP और Chartjs.org का उपयोग करके डेटा लॉग करें और एक ग्राफ़ ऑनलाइन प्लॉट करें: 4 चरण
लॉग डेटा और NodeMCU, MySQL, PHP और Chartjs.org का उपयोग करके एक ग्राफ ऑनलाइन प्लॉट करें: यह निर्देश योग्य वर्णन करता है कि कैसे हम कई सेंसर से डेटा एकत्र करने के लिए नोड MCU बोर्ड का उपयोग कर सकते हैं, इस डेटा को एक होस्टेड PHP फ़ाइल में भेज सकते हैं जो डेटा को जोड़ता है एक MySQL डेटाबेस। फिर डेटा को चार्ट.जेएस.ए का उपयोग करके एक ग्राफ के रूप में ऑनलाइन देखा जा सकता है।