תוכן עניינים:
- שלב 1: חלקים שנדרשים
- שלב 2: חיווט והרכבה
- שלב 3: העלאת קושחה ל- ESP32
- שלב 4: העלאת קושחה מוכנה
- שלב 5: תצורה
- שלב 6: הפעלה וצריכת חשמל
- שלב 7: כוונון חיישנים
- שלב 8: הוספת התקן לערכת הבית של Apple
- שלב 9: עדכוני OTA: Over the Air
וִידֵאוֹ: תחנת מזג אוויר ESP32 מופעלת על ידי שמש: 9 שלבים
2024 מְחַבֵּר: John Day | [email protected]. שונה לאחרונה: 2024-01-30 09:13
במדריך זה אנו הולכים לבנות פרויקט תחנת מזג אוויר מופעל WiFi.
המטרה היא לעצב תחנת מזג אוויר עם כמעט כל המכות האפשריות:
- הצג את התנאים הנוכחיים, הזמן, הטמפרטורה, הלחות, הלחץ
- הצג תחזית לימים הקרובים
- עדכון באוויר
- אתר אינטרנט מובנה לתצורה ולייצוג נתונים
- העלה נתונים לענן לסטטיסטיקות היסטוריות
- משולב עם Aple Home Kit או MQTT
- Accu ללא תנאי שימוש עם טעינה אפשרית או חיבור לפאנל סולארי
אני לא יכול להוסיף יותר ולא יותר דמיון מה עוד צריך או יכול להיות
שלב 1: חלקים שנדרשים
- ESP32 (השתמשתי במודול dev)
- 2.8 אינץ '240x320 TFT LCD SPI ILI9341
- מארז פלסטיק
- 3 x 18650 Accu
- חיישן מזג אוויר BME280 למדידת טמפרטורה, לחות ולחץ
- מודול מטען ליתיום USB
- שלב DC-DC UP18650
- מחזיק סוללות (3 יח ')
- גלאי תנועה HC-SR505
- נגד אום 220
- נגדי 2x10 kOm
- ניתן להשתמש בטרנזיסטור TIP120 NPN (דרלינגטון) בכל תואם אחר
- כפתור חוטים, מתג, לוח הלחמה….
שלב 2: חיווט והרכבה
השלב הראשון הוא הרכבת סמכויות התחנה.
חילקתי מארז פלסטיק על שני חלקים, אחד מהם משמש לסוללה, מתג, מטען USB וצעד DC-DC החוצה לחלק זה אני שם מחזיק סוללה ויוצר חלונות למתג ומטען USB. שים לב שמודול מטען USB די משתנה ולכן השתמשתי בלוח אלומיניום והנחתי מטען USB על זה באמצעות דבק Star 922.
השלב השני הוא הרכבת חלק הבקרים.
ראה תרשים חיווט כיצד עליו להיות מחובר
השתמשתי בלוח לחם למטרה זו בשלבים הבאים
- הלחמה לוח ESP32 dev
- מגן הלחמה לשמירה על תצוגת TFT
- הלחמה רכיבים אלקטרוניים אחרים: BME280, נגדים, כפתורים
- חיווט הלחמה בין רכיבים על פי תרשים
השלב השלישי הוא הכנת הרכבה של לוח הלחם לחלק השני של מארז הפלסטיק. הדפסתי במדפסת התלת מימד שלי שני סורגים, הרכיב אותם לברבורד באמצעות ברגים ועשיתי חיתוך מלבני למסך התצוגה.
הדבקתי תומכי מוטות פלסטיק לגוף מארז הפלסטיק. כעת, כאשר הדבק יבש, מונית לוח הלחם תהיה ללא הרכבה באמצעות ברגים.
השלב הבא הוא:
- חיווט הלחמה למקור כוח
- חיווט הלחמה למצב מתח הסוללה
- גלאי תנועה והלחמה
צעד אחרון:
- הגדרת ממיר DC-DC על ידי הפעלת מתח יציאה 5v
- חבר שני חלקים של בקר התחנה לחשמל: חוטי חשמל וקריאת מתח
עבור גלאי התנועה והכפתור עשיתי חורים נוספים בצד הפנים.
שלב 3: העלאת קושחה ל- ESP32
לפרויקט זה השתמשתי בתוכנה אוניברסלית שפותחה על ידי עצמי
אנא עיין בדף github ESPHomeController. הוא מכיל הוראות מלאות כיצד להרכיב ולהגדיר.
! אם אינך מכיר אוסף וארדואינו בדוק שלב העלאת קושחה מוכנה
ברגע שאתה מעלה קושחה בפעם הראשונה ה- ESP32 יתחיל במצב תצורה (מצב נקודת גישה)
אתה צריך להגדיר אותם. לשם כך פתח בכל רשימת מכשירים של WiFi זמין. מצא את HomeController והתחבר אליו. הפורטל Captive צריך להתחיל באופן אוטומטי. אם לא הזן את כתובת האתר של הדפדפן שלך: 192.168.4.1 ותראה מסך תצורה
עקוב אחר ההוראות והגדר את אישורי ה- WiFi לרשת ה- WiFi שלך.
ה- ESP יופעל מחדש לאחר מכן כלקוח WiFi ויתחבר ל- Wifi שלך.
כאשר החיבור של sson firts קורה, הוא יעלה אוטומטית את מערכת הקבצים של Spiffs ויוריד את הקבצים הנדרשים לפורטל האינטרנט:
- index.html
- filebrowse.html
- js/bundle.min.js.gz
ההורדה מתבצעת מהתיקייה
כעת תוכל לראות תוכן קבצים באמצעות דפדפן אינטרנט. בשביל זה אתה צריך עכשיו כתובת IP של ה- ESP32 שלך
אתה יכול למצוא אותו באחת מהדרכים הבאות:
- שימוש בצג יציאה טורית כדי לראות יומני ESP32
- שימוש בכל סורק tcp לסריקת התקני הרשת שלך
- לחץ על כפתור בתחנת מזג האוויר ותראה מידע על המערכת
הכנס לעיון https://192.168.0. XX/browse ותראה רשימת קבצים של ה- ESP שלך
(192.168.0. XX היא כתובת ה- IP של המכשיר שלך
לצורך הכוונון הסופי עליך להכין קבצי תצורה.
שלב 4: העלאת קושחה מוכנה
סעיף זה מיועד במיוחד לשמיעה שאינה מתכוונת לייצר קושחה בעצמך. אתה רק צריך להעלות קושחה "מוכנה"
1. הורד כלים להעלאת פלאש מדף זה
2. הורד את הקבצים המצורפים (חלץ מהארכיון) HomeController.bin ו- bootloader_qio_80m.bin לכונן הקשיח שלך
3. הפעל את כלי ההורדה ESP32 והזן ערכים בהתאם לצילום המסך
4. הקש על התחל
שלב 5: תצורה
לפני שתתחיל בהכנת התצורה אתה צריך:
- צור את הערוץ שלך בשיא הדברים והמפתח עבור הערוץ שלך. הכן 4 שדות ושם אותם כראוי טמפרטורה, לחות, לחץ, מתח
- הירשם ב- Weather.com לקבלת מפתח ה- API שלך
יש צורך ב- Thingspeak כדי להעלות את הנתונים שלך ולפקח על מגמות וערכים
מזג האוויר נחוץ כדי לקבל נתוני תחזית.
אוקיי, סוף סוף אתה צריך ליצור קובץ services.json עם התוכן הבא
[{"service": "TimeController", "name": "Time", "enabled": true, "interval": 1000, "timeoffs": 7200, "dayloffs": 3600, "server": "pool.ntp.org "," enableleep ": true," sleeptype ": 1," sleepinterval ": 900000," restartinterval ": 18000000}, {" service ":" BME280Controller "," name ":" BME "," enabled ": true, "interval": 900000, "i2caddr": 118, "uselegacy": true, "temp_corr":-3.0, "hum_corr": 10.0}, {"service": "WeatherClientController", "name": "WeatherForecast", "enabled": true, "interval": 500000, "uri": "https://api.weather.com/v3/wx/forecast/daily/5day?geocode=50.30, 30.70 & format = json & units = m & language = iw -US & apiKey = weatherapi "}, {" service ":" WeatherDisplayController "," name ":" WeatherDisplay "," enabled ": true," interval ": 500}, {" enabled ":" true "," interval ": 600000, "pin": 36, "service": "LDRController", "name": "LDR", "cvalmin": 0.0, "cvalmax": 7.2, "cfmt": "%. 2f V", "acctype": 10}, {"service": "ThingSpeakController", "name": "ThingSpeak", "enabled": true, "interval": 1200000, "value": [1, 1, 1, 1, 0, 0, 0, 0], "apiKey": "דברים של אפונה kapi "}, {" enabled ": true," interval ": 1," pin ":" "," service ":" ButtonController "," name ":" Button "," pins ": [27]}]
! אנא החלף
- Thingspeakapi עם מפתח ה- API של Thingspeak
- weatherapi עם מפתח ה- api של מזג האוויר שלך
- קוד גיאוגרפי עם המיקום שלך שאליו ברצונך לקבל תחזית
מאשר להכין קובץ שני triggers.json
[{"type": "BMEToWeatherDisplay", "source": "BME", "destination": "WeatherDisplay"}, {"type": "TimeToWeatherDisplay", "source": "Time", "destination": "WeatherDisplay "}, {" type ":" WeatherForecastToWeatherDisplay "," source ":" WeatherForecast "," destination ":" WeatherDisplay "}, {" type ":" BMEToThingSpeak "," source ":" BME "," destination ": "ThingSpeak", "t_ch": 1, "h_ch": 2, "p_ch": 3}, {"type": "ButtonToWeatherDisplay", "source": "Button", "destination": "WeatherDisplay"}, { "type": "LDRToThingSpeak", "source": "LDR", "destination": "ThingSpeak", "ch": 4}]
יש להעלות את שני הקבצים לשורש ה- esp.
תוכל לעשות זאת באמצעות הדפדפן https://192.168.0. XX/browse, כאשר https://192.168.0. XX היא כתובת ה- IP של המכשיר שלך
לאחר ההעלאה יש להפעיל מחדש את ה- ESP והכל בוצע כמו שצריך. Esp יציג את המסך המתאים כמו בתמונה ובסרטון למעלה
שלב 6: הפעלה וצריכת חשמל
אני משתמש במכשיר שלי עם החיבור לפאנל סולארי וכדי להיות בטוח שהוא יכול לעבוד "אינסופי"
צריכת החשמל חשובה ולאחר מספר ניסויים השתמשתי בשני טריקים עיקריים
הפחת את צריכת הנורית האחורית של מסך TFT
על פי המדידה הוא אוכל 15-20 מ א (הרבה) ולכן השתמשתי בטקטיקות עם גלאי תנועה. הוא פועל בצורה מושלמת גלאי תנועה המסוגלים לזהות כל גילוי עד 8-10 מטרים ולהעלות מתח על כבל האות. מדובר בפתחים שטרנזיסטור ו LED אחורי מקבלים עוצמה. בדרך כלל גלאי שומר את המצב הזה עד 10 שניות וזה יותר ממספיק לראות צג, אבל אם אתה ממשיך בתנועות האות עדיין גבוה וה- LED הוא תאורה.
גישה כזו נותנת לי כלכלה גדולה, ללא השפעות נוספות, אני לא נתקל בבעיה לראות את המסך שלי כשאני רוצה
2. הפחת את צריכת החשמל באמצעות ESP32
כאשר ESP מחובר ל- WiFi, הוא כל הזמן אוכל 7-10 mA, אני מדבר על זמן קבוע, לא על הפעלה וחיבור ראשון. זה יכול להיות מקובל אם תמיד ראית תאריך ושעה בפועל, גש למערכת שלך מתוך ערכת הבית של אפל
גם מבחינת הכוח הסולארי שלי בחורף הוא היה אמור להתאים לעבודות ללא מקורות כוח נוספים, לכן החלטתי לשים מעת לעת את ESP32 על מצב שינה (אכילה היא פחות מ 1 mA). זה בסדר מבחינתי, למשל ESP ישן 20 דקות, מאשר להתעורר, מסך רענון (נתונים בפועל ותחזית) שולח נתונים לשיא הדברים וחוזר שוב למצב שינה.
המינוסים הם:
- מסך מזג האוויר מציג ערכי זמן מיושנים
- התחנה אינה נגישה מהדפדפן ומערכת הבית של Apple במהלך זמן השינה
זה תלוי בך להחליט מה יותר חשוב, אתה יכול פשוט להגדיר את זה מחדש.
אנא חפש קובץ ושורה services.json
[{"service": "TimeController", "name": "Time", "enabled": true, "interval": 1000, "timeoffs": 7200, "dayloffs": 3600, "server": "pool.ntp.org "," enableleep ": true," sleeptype ": 1," sleepinterval ": 900000," restartinterval ": 18000000}
"מאפשר שינה": אמת מאפשר שינה בכלל, אם יש לשים אותו שקר או להסיר פרמטר (שקר הוא ברירת מחדל) ESP לעולם לא ישן
"מרווח שינה": 900000 זה מילי, או 15 דקות, פירושו שכל 15 דקות ESP יתעורר ויעשה צוות נחוץ
אז עכשיו כולם יכולים לשחק בקלות לפי הצורך
שלב 7: כוונון חיישנים
כדי למזער את השפעת החימום הפנימי על חיישן הטמפרטורה BME280
פירץ עשיתי קצת צינור סביב חיישן וחורים. Hovewer במצב שלי כאשר נורית כבויה בדרך כלל ו- ESP ישן אינו כה חשוב. במקרים אחרים חיישן BME280 צריך לזוז למקום כלשהו כדי לא לכלול השפעה של חימום פנימי. כל כמה שהשפעה קטנה מצאתי ולכן יש שני פרמטרים לפצות
"hum_corr": 10.0
כלומר, ערכים אלה יתווספו לאחר מדידה
השנייה היא כיול מדידת מתח הסוללה, {"enabled": "true", "interval": 600000, "pin": 36, "service": "LDRController", "name": "LDR", "cvalmin": 0.0, "cvalmax": 7.2, " cfmt ":"%. 2f V "," acctype ": 10}, "cvalmin": 0.0
"cvalmax": 7.2
מיועדים למטרות אלה, מכיוון שהמתח נמדד לאחר מחיצות הנגדים ובהשוואה ל -3.3 V, במשחק עם ערך cvalmax אתה יכול להגיע לכוונון מתח מדויק עם ערך המולטימטר שלך.
שלב 8: הוספת התקן לערכת הבית של Apple
לבסוף כאשר המכשיר פועל כראוי ניתן להוסיף אותו ל- Apple Home Kit ותוכל לראות
ערכי חיישנים במסך הבית של אפל.
ראשית אתה צריך התקן הפעלה מחדש, מכיוון שככל שהמכשיר התחיל הוא לא ישן 20 דקות זה יותר מהספיק
פתח את אפליקציית Home Kit במכשיר ה- iOS שלך ובחר או צור Home1 חדש. הקש על הוסף (+)
2. בחר הוסף אביזר.
3. לחץ על אין לי קוד או לא ניתן לסרוק (בהמשך יתווסף סריקה)
4. אם הכל מסתדר אתה צריך לראות את מכשיר ה- esp החדש שלך ברשימה (ראה תמונה)
5. בחר מכשיר ואשר הוספה ללא אישור רשמי
6. הקלד סיסמא 11111111
7. זה הכל! אתה אמור לראות שהמכשיר זווג בהצלחה, אחרת התחל שוב את תהליך ההתאמה..
בהתבסס על ההגדרה הזו, תראה שני מכשירים ב- Apple
1. חיישן טמפ 'וחיישן זמזום, לעומק הוא יציג ערכים על מסך מלא
2. חיישן אור:) למעשה אפל מסוגלת להראות אווירה קלה, אך לא מתח, ולכן מתח הסוללה מופיע בלוקס
שלב 9: עדכוני OTA: Over the Air
לפני תחילת כל עדכון עדיף לאתחל את ESP32, כפי שצוין קודם לכן הוא לא ישן 20 הדקות הראשונות
ישנן שתי אפשרויות לעדכן
- תצורה באמצעות https://192.168.0. XX/browse תוכל לגשת למערכת הקבצים שלך ב- ESP ולשנות קבצי תצורות
- אתה יכול לעדכן לחלוטין את הקושחה. למטרות אלה ראשית עליך ליצור אחד חדש. ניתן לעשות זאת באמצעות Arduino או Visual Studio IDE. לאחר מכן הקלד בדפדפן https://192.168.0. XX/update, בחר את הקושחה שלך ולחץ על עדכן. המתן עד לסיום התהליך ותקבל את התשובה אישור, אחרת חזור על השלב שוב
מוּמלָץ:
תחנת מזג אוויר מקצועית באמצעות ESP8266 ו- ESP32 DIY: 9 שלבים (עם תמונות)
תחנת מזג אוויר מקצועית באמצעות ESP8266 ו- ESP32 DIY: LineaMeteoStazione היא תחנת מזג אוויר שלמה הניתנת לממשק עם חיישנים מקצועיים של Sensirion, כמו גם רכיב של מכשיר דייוויס (מד גשם, מד רוח) הפרויקט מיועד כתחנת מזג אוויר DIY אך רק מחייב
תחנת מזג האוויר של NaTaLia: תחנת מזג אוויר מונעת על ידי סולארית Arduino בוצעה בדרך הנכונה: 8 שלבים (עם תמונות)
תחנת מזג האוויר של NaTaLia: תחנת מזג אוויר המופעלת באמצעות Arduino סולארית בוצעה בדרך הנכונה: לאחר שנה של הפעלה מוצלחת בשני מיקומים שונים אני משתף את תוכניות הפרויקט של תחנת מזג האוויר המונעות על ידי סולארי ומסביר כיצד היא התפתחה למערכת שיכולה לשרוד לאורך זמן. תקופות מכוח השמש. אם אתה עוקב
נר מזג אוויר - מזג אוויר וטמפרטורה במבט חטוף: 8 שלבים
נר מזג אוויר - מזג אוויר וטמפרטורה במבט חטוף: בעזרת נר קסם זה תוכל לספר את הטמפרטורה והתנאים הנוכחיים בחוץ באופן מיידי
תחנת מזג אוויר Acurite 5 in 1 באמצעות פיי פטל ו- Weewx (תחנות מזג אוויר אחרות תואמות): 5 שלבים (עם תמונות)
תחנת מזג אוויר Acurite 5 in 1 באמצעות פי פטל ו- Weewx (תחנות מזג אוויר אחרות תואמות): כשקניתי את תחנת מזג האוויר Acurite 5 in 1 רציתי להיות מסוגל לבדוק את מזג האוויר בבית שלי בזמן שהייתי בחוץ. כשהגעתי הביתה והגדרתי אותו הבנתי שאני חייב לחבר את המסך למחשב או לקנות את הרכזת החכמה שלהם
תחנת מזג אוויר מופעלת ב- WiFi גולמי: 3 שלבים (עם תמונות)
תחנת מזג אוויר מופעלת באמצעות WiFi גולמי: היום תלמד כיצד תוכל לבנות תחנת מזג אוויר פשוטה המאפשרת לך לשלוח לך את נתוני הטמפרטורה והלחות באמצעות IFTTT ישירות לדואר האלקטרוני שלך. ניתן למצוא את החלקים בהם השתמשתי ב- kumantech.com