ዝርዝር ሁኔታ:
ቪዲዮ: (IOT ፕሮጀክት) ESP8266 ን እና Openweather API ን በመጠቀም - 5 ደረጃዎች በመጠቀም የአየር ሁኔታ መረጃን ያግኙ
2024 ደራሲ ደራሲ: John Day | [email protected]. ለመጨረሻ ጊዜ የተሻሻለው: 2024-01-30 07:29
በዚህ መመሪያ ውስጥ የከተማችንን የአየር ሁኔታ መረጃ ከ openweather.com/api አምጥቶ ፕሮሰሲንግ ሶፍትዌርን በመጠቀም የምናሳይበት ቀላል የ IOT ፕሮጀክት እንገነባለን።
አቅርቦቶች
- አርዱinoኖ
- ESP8266 ወይም ሌላ ማንኛውም esp ሞዱል
- አርዱዲኖ አይዲኢ
- ሶፍትዌርን በማስኬድ ላይ
- የዳቦ ሰሌዳ
- ጃምፐርወርስ ወንድ ከወንድ ወንድ ከሴት
ደረጃ 1 ከ Openweather.org የኤፒአይ ቁልፍ እና ዩአርኤል ያግኙ
- በ https://openweathermap.org ውስጥ መለያ ይፍጠሩ (ምስል 1)
- ከገቡ በኋላ ወደ ኤፒአይ ቁልፎች ይሂዱ እና በምስል ላይ እንደሚታየው የኤፒአይ ቁልፍን ያገኛሉ። (ምስል 2)
- የኤፒአይ ቁልፍን ይቅዱ እና በማስታወሻ ደብተር ፋይል ውስጥ ያስቀምጡት። (ምስል 3)
- ወደ ኤፒአይ አማራጭ ይሂዱ (ምስል 4)
- በምስል ላይ እንደሚታየው ወደ ኤፒአይ ሰነድ አማራጭ ይሂዱ (ምስል 5)
- ዩአርኤሉን ከእሱ ይቅዱ እና ይታዩ እና በማስታወሻ ደብተር ፋይል ውስጥ ያስቀምጡት (ምስል 6)
ደረጃ 2 የግንኙነት ንድፍ
ደረጃ 3: የአርዲኖ ኮድ
ይህንን ኮድ ወደ አርዱዲኖ ከመገልበጥዎ በፊት የቦርድ አስተዳዳሪን በመጠቀም የ ESP8266 ሰሌዳውን ወደ አርዱዲኖ ide ማውረዱን ያረጋግጡ።
#ያካትቱ
#ያካትቱ #ያካትቱ #ያካትቱ const char* ssid = "የእርስዎ SSID"; const char* password = "የእርስዎ SSID PASSWORD"; // የጎራዎ ስም በዩአርኤል ዱካ ወይም የአይፒ አድራሻ ከመንገድ ጋር ሕብረቁምፊ openWeatherMapApiKey = "የኤፒአይ ቁልፍዎን እዚህ ይለጥፉ" ፤ // በአገርዎ ኮድ እና በከተማ ስትሪንግ ከተማ = “ሙምባይ” ይተኩ። ሕብረቁምፊ countryCode = "IN"; ሕብረቁምፊ ውሂብ [16]; // የ DEFAULT ሰዓት ቆጣሪ ለሙከራ ዓላማዎች 10 ሰከንዶች ተዘጋጅቷል // ለመጨረሻ ትግበራ ፣ እንዳይታገድ/እንዳይታገድ የተፈረመበት ረጅም የመጨረሻ ጊዜ = 0; // ሰዓት ቆጣሪ ወደ 10 ደቂቃዎች (600000) ተቀናብሯል // ያልተፈረመ ረጅም ሰዓት ቆጣሪ መዘግየት = 600000; // ሰዓት ቆጣሪን ወደ 10 ሰከንዶች (10000) ያልተፈረመ ረጅም ሰዓት ቆጣሪ ያዘጋጁ - መዘግየት = 10000; ሕብረቁምፊ jsonBuffer; ባዶነት ማዋቀር () {Serial.begin (115200); WiFi.begin (ssid ፣ የይለፍ ቃል); //Serial.println (“ማገናኘት”); ሳለ (WiFi.status ()! = WL_CONNECTED) {መዘግየት (500); // Serial.print ("."); } // Serial.println (""); // Serial.print ("ከአይፒ አድራሻ ጋር ከ WiFi አውታረ መረብ ጋር ተገናኝቷል"); // Serial.println (WiFi.localIP ()); // // Serial.println ("ሰዓት ቆጣሪ ወደ 10 ሰከንዶች ተቀናብሯል (የጊዜ ቆጣሪ ተለዋዋጭ) ፣ የመጀመሪያውን ንባብ ከማተም 10 ሰከንዶች ይወስዳል።"); } ባዶነት loop () {// የኤች ቲ ቲ ፒ GET ጥያቄ ይላኩ ((ሚሊስ () - lastTime)> timerDelay) {// የ WiFi ግንኙነት ሁኔታን ያረጋግጡ (WiFi.status () == WL_CONNECTED) {String serverPath =”https://api.openweathermap.org/data/2.5/weather?q= " + city +", " + countryCode +" & APPID = " +" d5b56fd07988143ae141503ed9d81742 " +" & units = metric "; jsonBuffer = httpGETRequest (serverPath.c_str ()); //Serial.println(jsonBuffer); JSONVar myObject = JSON.parse (jsonBuffer); // JSON.typeof (jsonVar) (JSON.typeof (myObject) == "ያልተገለፀ") {//Serial.println(" ግቤን ማስገባት አልተሳካም! ») ከሆነ የ var ዓይነትን ለማግኘት ሊያገለግል ይችላል ፤ መመለስ; } // Serial.print ("JSON object ="); // Serial.println (myObject); // Serial.print ("ሙቀት:"); // Serial.println (myObject ["ዋና"] ["temp"]); // Serial.print ("ግፊት:"); // Serial.println (myObject [“ዋና”] [“ግፊት”]); // Serial.print ("እርጥበት:"); // Serial.println (myObject [“ዋና”] [“እርጥበት”]); // Serial.print ("የንፋስ ፍጥነት:"); // Serial.println (myObject ["ነፋስ"] ["ፍጥነት"]); int temp = myObject ["ዋና"] ["temp"]; long pres = myObject ["ዋና"] ["ግፊት"]; int humid = myObject ["ዋና"] ["እርጥበት"]; int wind = 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] = "/"; ውሂብ [10] = city1; ውሂብ [11] = "/"; ውሂብ [12] = የአየር ሁኔታ; ውሂብ [13] = "/"; ውሂብ [14] = አዶ; ውሂብ [15] = "\ n"; ለ (int i = 0; i0) {// Serial.print ("የኤች ቲ ቲ ፒ ምላሽ ኮድ"); // Serial.println (httpResponseCode); የክፍያ ጭነት = http.getString (); } ሌላ {Serial.print ("የስህተት ኮድ:"); Serial.println (httpResponseCode); } // ነፃ ሀብቶች http.end (); የክፍያ ጭነት መመለስ; }
ደረጃ 4: ኮድ ማስኬድ
ይህንን ኮድ ከማሄድዎ በፊት የአየር ሁኔታን ለማሳየት የሚያገለግሉትን የተሰጡ አዶ ምስሎችን ያውርዱ። እና ምስሎችን እና ኮዱን በተመሳሳይ አቃፊ ውስጥ ያስቀምጡ።
የማስመጣት ሂደት።
ተከታታይ myPort; ምስል img; ምስል img2; ምስል img3; ምስል img4; ምስል img5; ምስል img6; ምስል ምስል img7; ምስል img8; ምስል img9; ምስል img10; ምስል img11; ምስል img12; ምስል img13; ምስል img14; ምስል ምስል img15; ምስል ምስል img16; ምስል img17; ምስል ምስል img18; int temp; int pres; እርጥብ እርጥበት; int ነፋስ; ሕብረቁምፊ ከተማ = ""; ሕብረቁምፊ ሀገር = ""; ሕብረቁምፊ የአየር ሁኔታ = ""; የገመድ አዶ = ""; ባዶነት ማዋቀር () {መጠን (500 ፣ 500); myPort = አዲስ ተከታታይ (ይህ ፣ “COM3” ፣ 115200); img = loadImage ("01d.png"); img2 = loadImage ("01n.png"); img3 = loadImage ("02d.png"); img4 = loadImage ("02n.png"); img5 = loadImage ("03d.png"); img6 = loadImage ("03n.png"); img7 = loadImage ("04d.png"); img8 = loadImage ("04n.png"); img9 = loadImage ("09d.png"); img10 = loadImage ("09n.png"); img11 = loadImage ("10d.png"); img12 = loadImage ("10n.png"); img13 = loadImage ("11d.png"); img14 = loadImage ("11n.png"); img15 = loadImage ("13d.png"); img16 = loadImage ("13n.png"); img17 = loadImage ("50d.png"); img18 = loadImage ("50n.png"); } ባዶ ስዕል () {ዳራ (72 ፣ 209 ፣ 204) ፤ textSize (22); ሙላ (54 ፣ 69 ፣ 79); ጽሑፍ (“የሙቀት መጠን” ፣ 25 ፣ 100); ጽሑፍ (የሙቀት መጠን +“° ሴ” ፣ 200 ፣ 100); ጽሑፍ ("ግፊት:", 25, 150); ጽሑፍ (pres + “hpa” ፣ 200 ፣ 150); ጽሑፍ ("እርጥበት:", 25, 200); ጽሑፍ (እርጥበት+“%” ፣ 200 ፣ 200); ጽሑፍ ("ነፋስ:", 25, 250); ጽሑፍ (ነፋስ+“ሜ/ሰ” ፣ 200 ፣ 250); ጽሑፍ (“ሀገር/ከተማ” ፣ 25 ፣ 300); ጽሑፍ (ሀገር + "-" + ከተማ ፣ 200 ፣ 300); ጽሑፍ (“የአየር ሁኔታ” ፣ 25 ፣ 350); ጽሑፍ (የአየር ሁኔታ ፣ 200 ፣ 350); ከሆነ (icon.contains ("01d")) {ምስል (img, 380, 15); } ሌላ ከሆነ (icon.contains ("01n")) {ምስል (img2, 380, 15); } ሌላ ከሆነ (icon.contains ("02d")) {ምስል (img3, 380, 15); } ሌላ ከሆነ (icon.contains ("02n")) {ምስል (img4, 380, 15); } ሌላ ከሆነ (icon.contains ("03d")) {ምስል (img5, 380, 15); } ሌላ ከሆነ (icon.contains ("03n")) {ምስል (img6, 380, 15); } ሌላ ከሆነ (icon.contains ("04d")) {ምስል (img7, 380, 15); } ሌላ ከሆነ (icon.contains ("04n")) {ምስል (img8, 380, 15); } ሌላ ከሆነ (icon.contains ("09d")) {ምስል (img9, 380, 15); } ሌላ ከሆነ (icon.contains ("09n")) {ምስል (img10, 380, 15); } ሌላ ከሆነ (icon.contains ("10d")) {ምስል (img11, 380, 15); } ሌላ ከሆነ (icon.contains ("10n")) {ምስል (img12, 380, 15); } ሌላ ከሆነ (icon.contains ("11d")) {ምስል (img13, 380, 15); } ሌላ ከሆነ (icon.contains ("11n")) {ምስል (img14, 380, 15); } ሌላ ከሆነ (icon == "13d") {ምስል (img15, 380, 15); } ሌላ ከሆነ (icon.contains ("13n")) {ምስል (img16, 380, 15); } ሌላ ከሆነ (icon.contains ("50d")) {ምስል (img17, 380, 15); } ሌላ ከሆነ (icon.contains ("50n")) {ምስል (img18, 380, 15); }} ባዶነት serialEvent (ተከታታይ myPort) {ከሆነ (myPort.available ()> 0) {ሕብረቁምፊ ውሂብ = myPort.readStringUntil ('\ n'); ከሆነ (ውሂብ! = ባዶ) {data = trim (data); ሕብረቁምፊ ንጥሎች = ስንጥቅ (ውሂብ ፣ '/') ፤ ከሆነ (ንጥሎች። ርዝመት> 1) {temp = int (ንጥሎች [0]); pres = int (ንጥሎች [1]); እርጥበት = int (ንጥሎች [2]); ንፋስ = int (ንጥሎች [3]); ከተማ = ንጥሎች [4].ተተኩ ("\" "፣" ") ፤ ሀገር = ንጥሎች [5].ተተኩ (" / "" ፣ "") ፤ የአየር ሁኔታ = ንጥሎች [6].ተተካ ("\" "," ") ፤ አዶ = ንጥሎች [7].ተተኩ (" / "" ፣ "") ፤ }}}}
የሚመከር:
የ NaTaLia የአየር ሁኔታ ጣቢያ - አርዱዲኖ ሶላር ኃይል ያለው የአየር ሁኔታ ጣቢያ በትክክለኛው መንገድ ተከናውኗል - 8 ደረጃዎች (ከስዕሎች ጋር)
የ NaTaLia የአየር ሁኔታ ጣቢያ - አርዱዲኖ ሶላር የተጎላበተው የአየር ሁኔታ ጣቢያ በትክክለኛው መንገድ ተከናውኗል - በ 1 የተለያዩ ቦታዎች ላይ ከ 1 ዓመት ስኬታማ ክወና በኋላ በፀሐይ ኃይል የሚሰራ የአየር ሁኔታ ጣቢያ ፕሮጀክት ዕቅዶቼን እያካፈልኩ እና በእውነቱ ከረዥም ጊዜ በኋላ በሕይወት ሊቆይ ወደሚችል ስርዓት እንዴት እንደተለወጠ እገልጻለሁ። ወቅቶች ከፀሐይ ኃይል። እርስዎ ከተከተሉ
ESP32 የአየር ሁኔታ የአየር ሁኔታ ጣቢያ 16 ደረጃዎች (ከስዕሎች ጋር)
ESP32 Weathercloud Weather ጣቢያ - ባለፈው ዓመት አርዱinoኖ የአየር ሁኔታ ደመና የአየር ሁኔታ ጣቢያ የተባለውን ትልቁን አስተማሪዬን አሳትሜያለሁ። እላለሁ በጣም ተወዳጅ ነበር። በመምህራን መነሻ ገጽ ፣ በአርዱዲኖ ብሎግ ፣ በዊዝኔት ሙዚየም ፣ በኢንስታግራም ኢንስታግራም ፣ በአርዱዲኖ Instagr ላይ ተለይቶ ቀርቧል
አርዱዲኖ የአየር ሁኔታ ደመና የአየር ሁኔታ ጣቢያ 16 ደረጃዎች (ከስዕሎች ጋር)
አርዱዲኖ የአየር ሁኔታ ደመና የአየር ሁኔታ ጣቢያ - ከበይነመረቡ ጋር የተገናኘ የአየር ሁኔታ ጣቢያ ሠራሁ። እሱ የሙቀት መጠንን ፣ እርጥበትን ፣ ግፊትን ፣ ዝናብ ፣ የንፋስ ፍጥነትን ፣ የአልትራቫዮሌት መረጃ ጠቋሚውን ይለካል እና ጥቂት ተጨማሪ አስፈላጊ የሜትሮሎጂ እሴቶችን ያሰላል። ከዚያ ይህንን ውሂብ ወደ ጥሩው ግራፍ ወዳለው ወደ weathercloud.net ይልካል
IoT ቀላል ሆኗል - የርቀት የአየር ሁኔታ መረጃን መያዝ - UV እና የአየር ሙቀት እና እርጥበት - 7 ደረጃዎች
IoT ቀላል ሆኗል-የርቀት የአየር ሁኔታ መረጃን መያዝ-UV እና የአየር ሙቀት እና እርጥበት-በዚህ መማሪያ ላይ የርቀት መረጃን እንደ UV (አልትራቫዮሌት ጨረር) ፣ የአየር ሙቀት እና እርጥበት እንይዛለን። እነዚያ መረጃዎች በጣም አስፈላጊ ይሆናሉ እና ለወደፊቱ በተጠናቀቀ የአየር ሁኔታ ጣቢያ ውስጥ ያገለግላሉ። የማገጃ ዲያግራሙ በመጨረሻ ምን እንደምናገኝ ያሳያል።
Acurite 5 በ 1 የአየር ሁኔታ ጣቢያ Raspberry Pi እና Weewx ን በመጠቀም (ሌሎች የአየር ሁኔታ ጣቢያዎች ተኳሃኝ ናቸው) 5 ደረጃዎች (ከስዕሎች ጋር)
Acurite 5 በ 1 የአየር ሁኔታ ጣቢያ Raspberry Pi እና Weewx ን (ሌሎች የአየር ሁኔታ ጣቢያዎች ተኳሃኝ ናቸው) - Acurite 5 ን በ 1 የአየር ሁኔታ ጣቢያ በገዛሁበት ጊዜ እኔ በሌለሁበት ጊዜ በቤቴ ያለውን የአየር ሁኔታ ማረጋገጥ መቻል እፈልግ ነበር። ወደ ቤት ስመለስ እና ሳዋቀር ማሳያውን ከኮምፒዩተር ጋር ማገናኘት ወይም ስማርት ማዕከላቸውን መግዛት እንዳለብኝ ተገነዘብኩ