विषयसूची:

(आईओटी परियोजना) ईएसपी8266 और ओपनवेदर एपीआई का उपयोग करके मौसम डेटा प्राप्त करें: 5 कदम
(आईओटी परियोजना) ईएसपी8266 और ओपनवेदर एपीआई का उपयोग करके मौसम डेटा प्राप्त करें: 5 कदम

वीडियो: (आईओटी परियोजना) ईएसपी8266 और ओपनवेदर एपीआई का उपयोग करके मौसम डेटा प्राप्त करें: 5 कदम

वीडियो: (आईओटी परियोजना) ईएसपी8266 और ओपनवेदर एपीआई का उपयोग करके मौसम डेटा प्राप्त करें: 5 कदम
वीडियो: Log DHT11 sensor Data to Google Sheet using NodeMCU ESP8266, Make your own Weather Station IoT 2024, नवंबर
Anonim
(आईओटी परियोजना) ईएसपी8266 और ओपनवेदर एपीआई का उपयोग करके मौसम डेटा प्राप्त करें
(आईओटी परियोजना) ईएसपी8266 और ओपनवेदर एपीआई का उपयोग करके मौसम डेटा प्राप्त करें

इस निर्देशयोग्य में हम एक साधारण IOT प्रोजेक्ट बनाने जा रहे हैं, जिसमें openweather.com/api से हमारे शहर का मौसम डेटा प्राप्त होता है और इसे प्रोसेसिंग सॉफ़्टवेयर का उपयोग करके प्रदर्शित किया जाता है।

आपूर्ति:

  1. अरुडिनो
  2. ESP8266 या कोई अन्य esp मॉड्यूल
  3. अरुडिनो आईडीई
  4. प्रोसेसिंग सॉफ्टवेयर
  5. ब्रेड बोर्ड
  6. जम्परवायर पुरुष से पुरुष और पुरुष से महिला

चरण 1: Openweather.org से API कुंजी और URL प्राप्त करें

Openweather.org से API कुंजी और URL प्राप्त करें
Openweather.org से API कुंजी और URL प्राप्त करें
Openweather.org से API कुंजी और URL प्राप्त करें
Openweather.org से API कुंजी और URL प्राप्त करें
Openweather.org से API कुंजी और URL प्राप्त करें
Openweather.org से API कुंजी और URL प्राप्त करें
  1. https://openweathermap.org में खाता बनाएं (छवि 1)
  2. लॉगिन करने के बाद एपीआई कीज पर जाएं और आपको एपीआई की मिलेगी जैसा कि इमेज में दिखाया गया है। (इमेज 2)
  3. एपीआई कुंजी की प्रतिलिपि बनाएँ और इसे नोटपैड फ़ाइल में सहेजें। (छवि 3)
  4. एपीआई विकल्प पर जाएं (छवि 4)
  5. छवि में दिखाए अनुसार एपीआई दस्तावेज़ विकल्प पर जाएं (छवि 5)
  6. यूआरएल को कॉपी करें और दिखाया गया है और इसे नोटपैड फ़ाइल में सहेजें (छवि 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]। बदलें ("\"", ""); } } } }

सिफारिश की: