תוכן עניינים:
- שלב 1: השגת מפתח API וכתובת אתר מאת Openweather.org
- שלב 2: תרשים חיבור
- שלב 3: קוד ארדואינו
- שלב 4: עיבוד קוד
וִידֵאוֹ: (פרויקט IOT) קבל נתוני מזג אוויר באמצעות ESP8266 ו- Openweather API: 5 שלבים
2024 מְחַבֵּר: John Day | [email protected]. שונה לאחרונה: 2024-01-30 09:11
במדריך זה אנו הולכים לבנות פרויקט IOT פשוט בו ניתן להביא את נתוני מזג האוויר של העיר שלנו מ- openweather.com/api ולהציג אותם באמצעות תוכנת עיבוד.
אספקה:
- ארדואינו
- ESP8266 או כל מודול esp אחר
- Arduino IDE
- תוכנת עיבוד
- לוח לחם
- Jumperwires זכר לזכר וזכר לנקבה
שלב 1: השגת מפתח API וכתובת אתר מאת Openweather.org
- צור חשבון ב- https://openweathermap.org (תמונה 1)
- לאחר הכניסה עבור למפתחות API ותקבל את מפתח ה- API כפי שמוצג בתמונה. (תמונה 2)
- העתק את מפתח ה- API ושמור אותו בקובץ פנקס רשימות. (תמונה 3)
- עבור לאפשרות API (תמונה 4)
- עבור לאפשרות API doc כפי שמוצג בתמונה (תמונה 5)
- העתק את כתובת האתר מהמוצג ושמור אותו בקובץ פנקס רשימות (תמונה 6)
שלב 2: תרשים חיבור
שלב 3: קוד ארדואינו
לפני העתקת קוד זה ל- Arduino וודא שהורדת לוח ESP8266 לתוך arduino ide באמצעות מנהל Boards.
#לִכלוֹל
#include #include #include const char* ssid = "ה- SSID שלך"; const char* password = "סיסמת ה- SSID שלך"; // שם הדומיין שלך עם נתיב URL או כתובת IP עם נתיב String openWeatherMapApiKey = "הדבק את מפתח ה- API שלך כאן"; // החלף בקוד המדינה והעיר שלך מחרוזת עיר = "מומבאי"; String countryCode = "IN"; נתוני מחרוזת [16]; // טיימר ברירת המחדל מוגדר ל -10 שניות למטרות בדיקה // ליישום סופי, בדוק את מגבלות קריאת ה- API לשעה/דקה כדי להימנע מחסימה/החסימה של LongTime = 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 עם כתובת IP:"); // Serial.println (WiFi.localIP ()); // // Serial.println ("טיימר מוגדר ל -10 שניות (משתנה timerDelay), ייקח 10 שניות לפני פרסום הקריאה הראשונה."); } לולאת void () {// שלח בקשת GET GTP אם ((millis () - 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) כדי לקבל את סוג ה- var אם (JSON.typeof (myObject) == "undefined") {//Serial.println("קלט הניתוח נכשל! "); לַחֲזוֹר; } // Serial.print ("JSON object ="); // Serial.println (myObject); // Serial.print ("טמפרטורה:"); // Serial.println (myObject ["main"] ["temp"]); // Serial.print ("לחץ:"); // Serial.println (myObject ["main"] ["לחץ"]); // Serial.print ("לחות:"); // Serial.println (myObject ["main"] ["לחות"]); // Serial.print ("מהירות הרוח:"); // Serial.println (myObject ["רוח"] ["מהירות"]); int temp = myObject ["main"] ["temp"]; long pres = myObject ["main"] ["לחץ"]; int humid = myObject ["main"] ["לחות"]; int wind = myObject ["wind"] ["speed"]; מדינה מחרוזת = JSON.stringify (myObject ["sys"] ["country"]); String city1 = JSON.stringify (myObject ["שם"]); מזג אוויר מחרוזת = JSON.stringify (myObject ["מזג אוויר"] [0] ["תיאור"]); סמל מחרוזת = JSON.stringify (myObject ["weather"] [0] ["icon"]); data [0] = מחרוזת (טמפ '); data [1] = "/"; data [2] = מחרוזת (pres); data [3] = "/"; data [4] = מחרוזת (לחה); data [5] = "/"; data [6] = מחרוזת (רוח); data [7] = "/"; נתונים [8] = מדינה; data [9] = "/"; נתונים [10] = city1; data [11] = "/"; נתונים [12] = מזג אוויר; data [13] = "/"; data [14] = אייקון; data [15] = "\ n"; for (int i = 0; i0) {// Serial.print ("קוד תגובה HTTP:"); // Serial.println (httpResponseCode); מטען = http.getString (); } else {Serial.print ("קוד שגיאה:"); Serial.println (httpResponseCode); } // משאבים בחינם http.end (); מטען החזרה; }
שלב 4: עיבוד קוד
לפני הפעלת קוד זה הורד את תמונות הסמל הנתונות שישמשו להצגת מזג אוויר. ושמור את התמונות והקוד באותה תיקייה.
ייבוא עיבוד. סדרה.*;
MyPort סידורי; PImage img; PImage img2; PImage img3; PImage img4; PImage img5; PImage img6; PImage img7; PImage img8; PImage img9; PImage img10; PImage img11; PImage img12; PImage img13; PImage img14; PImage img15; PImage img16; PImage img17; PImage img18; int temp; int pres; int לח; int wind; עיר מחרוזת = ""; מדינה מחרוזת = ""; מזג אוויר מחרוזת = ""; סמל מחרוזת = ""; הגדרת חלל () {גודל (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); טקסט (טמפ ' +"° C", 200, 100); טקסט ("לחץ:", 25, 150); טקסט (pres + "hpa", 200, 150); טקסט ("לחות:", 25, 200); טקסט (לח+" %", 200, 200); טקסט ("רוח:", 25, 250); טקסט (רוח+"מ/ש", 200, 250); טקסט ("מדינה/עיר:", 25, 300); טקסט (מדינה + "-" + עיר, 200, 300); טקסט ("מזג אוויר:", 25, 350); טקסט (מזג אוויר, 200, 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); } אחרת if (icon == "13d") {image (img15, 380, 15); } אחר אם (icon.contains ("13n")) {image (img16, 380, 15); } אחר אם (icon.contains ("50d")) {image (img17, 380, 15); } אחר אם (icon.contains ("50n")) {image (img18, 380, 15); }} void serialEvent (Serial myPort) {if (myPort.available ()> 0) {String data = myPort.readStringUntil ('\ n'); if (data! = null) {data = trim (data); פריטי מחרוזת = פיצול (נתונים, '/'); אם (items.length> 1) {temp = int (פריטים [0]); pres = int (פריטים [1]); humid = int (פריטים [2]); wind = int (פריטים [3]); city = items [4].replace ("\" "," "); country = items [5].replace (" / "", ""); מזג אוויר = פריטים [6].replace ("\" "," "); סמל = פריטים [7].replace (" / "", ""); }}}}
מוּמלָץ:
נתוני מזג אוויר באמצעות Google Sheets ו- Google Script: 7 שלבים
נתוני מזג אוויר באמצעות Google Sheets ו- Google Script: ב- Blogtut זה, אנו הולכים לשלוח את הקריאות של חיישן SHT25 לגיליונות Google באמצעות Adafruit huzzah ESP8266 שעוזר לשלוח את הנתונים לאינטרנט. שליחת נתונים לתא גליונות של Google מועילה הרבה ודרך בסיסית ששומרת את הנתונים ב
נר מזג אוויר - מזג אוויר וטמפרטורה במבט חטוף: 8 שלבים
נר מזג אוויר - מזג אוויר וטמפרטורה במבט חטוף: בעזרת נר קסם זה תוכל לספר את הטמפרטורה והתנאים הנוכחיים בחוץ באופן מיידי
IoT קל: לכידת נתוני מזג אוויר מרוחקים: טמפרטורת UV וטמפרטורת אוויר ולחות: 7 שלבים
IoT קל: לכידת נתוני מזג אוויר מרוחקים: UV וטמפרטורת אוויר ולחות: במדריך זה נלכוד נתונים מרוחקים כ- UV (קרינה אולטרה סגולה), טמפרטורת אוויר ולחות. נתונים אלה יהיו חשובים מאוד וישמשו אותם בתחנת מזג אוויר מלאה בעתיד. תרשים החסימה מראה מה נקבל בסוף
תחנת מזג אוויר Acurite 5 in 1 באמצעות פיי פטל ו- Weewx (תחנות מזג אוויר אחרות תואמות): 5 שלבים (עם תמונות)
תחנת מזג אוויר Acurite 5 in 1 באמצעות פי פטל ו- Weewx (תחנות מזג אוויר אחרות תואמות): כשקניתי את תחנת מזג האוויר Acurite 5 in 1 רציתי להיות מסוגל לבדוק את מזג האוויר בבית שלי בזמן שהייתי בחוץ. כשהגעתי הביתה והגדרתי אותו הבנתי שאני חייב לחבר את המסך למחשב או לקנות את הרכזת החכמה שלהם
תיקון קבל - קבל משתנה אוויר קטן במשדר: 11 שלבים
תיקון קבל - קבל משתנה אוויר קטן במשדר: כיצד לתקן קבל משתנה אוויר קרמי ומתכת קטן כמו אלה המצויים בציוד רדיו ישן. זה חל כאשר הציר השתחרר מהאגוז המשושה או ה"כפתור "הנלחץ. במקרה זה האום המהווה התאמת מברג