תוכן עניינים:
וִידֵאוֹ: תחנת מזג האוויר Inky_pHAT: 5 שלבים
2024 מְחַבֵּר: John Day | [email protected]. שונה לאחרונה: 2024-01-30 09:16
אני כאן רוצה לתאר תחנת מזג אוויר מבוססת פטל אפס פשוטה וקומפקטית מאוד, המציגה את הערכים הנמדדים על ידי חיישן טמפרטורה/לחץ/לחות BME280 בתצוגת נייר אלקטרוני/דיו של Pimoroni Inky. כדי לאפשר את חיבור החיישנים ואת ה- pHAT ל- GPIO של ה- Pi הצבתי האקר של Pimorini Pico HAT עם שתי כותרות נקבות מחוברות בין ה- GPIO לתצוגה. המכשיר שימש לחיבור מספר חיישנים, כך שגרסת BME280 המתוארת כאן היא רק דוגמה.
בניגוד למסכי LCD, תצוגות דיו אלקטרוני שומרות על התמונה גם אם החשמל נכבה. לכן הם מהווים פתרון טוב מאוד אם ברצונך להציג מידע המתעדכן מעת לעת, במיוחד לבניית התקנים בעלי אנרגיה נמוכה. היתרון העיקרי של הגרסה המונוכרום/שחור של ה- Inky pHAT הוא שעדכון התצוגה לוקח כשנייה אחת בלבד, במקום עשר עד חמש עשרה שניות הנדרשות על ידי הגרסאות בתלת הצבעים. לראות סרט.
ספריית Blinka של Adafruit מאפשרת להריץ קוד מעגל פייתון ב- Raspberry Pi, ודוגמאות מעגל פייתון למגוון רחב של חיישנים זמינים ב- Adafruit. ניתן למצוא תיאור מפורט כיצד להתקין את Blinka וקודי Circuit Python באתר Adafruit. הספריות שבדקתי עד כה (BMP280, BME280, TSL2591, TCS34785, VEML7065, …) עבדו טוב מאוד, בעוד שהיו בעיות קלות בחלק מהקודים לדוגמה.
BME280 הוא חיישן למדידת טמפרטורה, לחות ולחץ אטמוספרי. התפרצויות BMP280 זמינות מספקים רבים, כולל Adafruit, אבל אני כאן השתמשתי בגרסה סינית זולה. לידיעתך, אלה משתמשים בכתובות i2c שונות (Adafruit: 0x77, אחרות: 0x76).
הפריצה מחוברת ל- Pi על ידי i2c, וקריאת החיישן פשוטה מאוד באמצעות הספרייה והקוד לדוגמה.
שלב 1: חומרים בשימוש
פטל פייס אפס, עם כותרת גברית מצורפת. אבל כל גרסת Raspberry Pi תעשה זאת.
פיאטורוני אינקי pHAT, גרסה שחורה/מונוכרום, 25 € | 22 £ | 20US $, ב- Pimoroni.
האקר Pimoroni Pico HAT, 2.50 € | 2 £, עם שתי כותרות מחוברות, אחת מהן כותרת הגבהה עם סיכות ארוכות יותר. בניתי שתי גרסאות שונות, ראה תיאור להלן.
פריצת BME280, משלוח AZ דרך Amazon.de @ 7.50 €, עם כותרת מצורפת.
כבלי מגשר הארכה
אופציונאלי:
מארז חשמל USB, ליישומים ניידים
דיור לפי או למכשיר (לא מוצג כאן)
שלב 2: הרכבה
- הלחם את הכותרות הנשיות להאקר פיקו HAT. לפני הלחמה, בדוק את הכיוון הנכון. בניתי שתי גרסאות של זה למטרות שונות. אחת עם כותרת הגבהה כלפי מטה ממוקמת בשורה הראשונה וכותרת רגילה כלפי מעלה/פונה בשורה האחורית, וגרסה עם כותרת הגבהה כלפי מטה בשורה האחורית, וכותרת נקבה בזווית ישרה בשורה הראשונה. ראה תמונות. הגרסה הראשונה מאפשרת לחבר ולהחליף חיישנים וכבלים בצורה קלה מאוד, בעוד שהגרסה עם הכותרת הפונה פנימה אכן מאפשרת להקיף את פי, החיישן ו- Inky pHAT לתוך בית. לחלופין תוכל להלחם את הכבלים המחברים בין GPIO וחיישן ישירות להאקר ה- Pico HAT ו/או להלחם את האקר ה- Pico HAT ישירות לסיכות GPIO. בכל מקרה השתמש בכמות הלחמה המינימלית הנדרשת.
- הלחם את הכותרת לחיישן, במידת הצורך.
- ערמו את יחידת ההאקר Pico HAT שהשתנתה בפי, והוסיפו את ה- pHAT Inky. במידת הצורך, הכנס קצת תמיכה, למשל. בלוק קצף או סטנד-אפים, עבור ה- pHAT Inky.
- חבר את הכבלים והחיישן באמצעות יציאות 3V, GND, SDA ו- SCL. לא כל החיישנים ישרדו 5V, לכן אנא בדוק לפני שאתה מחבר אותם ליציאות 5V.
- התקן את ספריית Blinka ולאחר מכן התקן את ספריית ה- Circuit Python BME280 מ- Adafruit.
- התקן את ספריית Inky pHAT מפימורוני.
- התקן את קוד Python לדוגמה המתואר בשלב מאוחר יותר ומצורף להוראה זו.
- הפעל את הקוד.
שלב 3: שימוש במכשיר
ישנן שתי אפשרויות לשימוש במכשיר.
הקוד כפי שמוצג כאן יתחיל באמצעות מסך מצורף, אך לאחר מכן יוכל לפעול ללא.
עם שינויים קלים בקוד תוכל להשתמש ב- crontab לביצוע מדידות בנקודות זמן מוגדרות. זה יאפשר להפחית את צריכת החשמל עוד יותר. ניתן למצוא תיאורים מצוינים כיצד להשתמש ב- crontab במקומות אחרים.
יחד עם מארז חשמל אתה יכול לבנות מכשיר נייד ולהשתמש בו למדידת התנאים בפנים או בחוץ, במקרר, בסאונה, בהומידור שלך, במרתף היין, במטוס,….
שימוש ב- Zero W אינך יכול להציג רק את הערכים בתצוגה, אלא גם לשלוח אותם לשרת או לאתר שלך באמצעות WLAN, כפי שמתואר במקומות אחרים.
שלב 4: הסקריפט BME280
כפי שצוין קודם לכן, עליך להתקין את ספריות Adafruit Blinka ו- Circuit Python BME280 וכן את ספריית ה- pHAT של פימורוני אינקי.
הקוד מאתחל לראשונה את החיישן ואת Inky pHAT, ואז קורא את ערכי הטמפרטורה, הלחץ והלחות מהחיישן ומציג אותם על המסך ותצוגת הדיו האלקטרוני. באמצעות הפקודה time.sleep (), מדידות נלקחות מדי דקה. התאם כנדרש. על ידי הגדרת פרמטר שפה, תוכל לשנות את השפה המשמשת להצגת התוצאות.
באמצעות תצוגת הדיו האלקטרוני Inky pHAT, אתה בונה תחילה את התמונה שתוצג בזיכרון לפני שהיא תועבר לבסוף למסך באמצעות הפקודה inkyphat.show (). ספריית Inky pHAT מפשטת את התהליך, ומציעה פקודות לציור ועיצוב טקסט, קווים, מלבנים, עיגולים או שימוש בתמונות רקע.
בנוסף לערכים הנמדדים, מוצג גם זמן המדידה.
זכור כי התסריט והספריות כתובות ב- Python 3, לכן פתח והפעל באמצעות Py3 IDLE או שווה ערך.
# תסריט לחיישן טמפרטורה/לחץ/לחות bme280 (גרסה שאינה Adafruit) # ו- pHAT הדיו - גרסה שחורה # # גרסה 01 בדצמבר 2018, ד"ר H # # דורש Adafruit Blinka ו- Circuit Python BME280 # ו- Pimoroni Inky זמן ייבוא ספריית pHAT יבוא תאריך לוח יבוא busio מ- adafruit_bme280 יבוא Adafruit_BME280 מ- adafruit_bme280 יבוא Adafruit_BME280_I2C ייבוא sysy יבוא inkyphat מ- PIL import ImageFont inkyphat.set_colour ('שחור') # לתצוגה דו -כיוונית (דקה) 180 ° font1 = ImageFont.truetype (inkyphat.fonts. FredokaOne, 27) # בחר גופן רגיל font2 = ImageFont.truetype (inkyphat.fonts. FredokaOne, 19) # בחר נתוני גופנים סטנדרטיים # lang = "DE" # פרמטר שפה להגדיר, ברירת מחדל ("") -> אנגלית lang = "EN" i2c = busio. I2C (board. SCL, board. SDA) bmp = Adafruit_BME280_I2C (i2c, כתובת = 0x76) # כתובת ברירת מחדל i2c (עבור Adafruit BMP280) 0x77 (ברירת מחדל), 0x76 לפריצה סינית) # לחץ התייחסות מוגדר # נדרש עבור al חישוב כותרת, אנא התאם. ערך סטנדרטי 1013.25 hPa # קלט ידני: #reference_hPa = קלט ("הזן לחץ התייחסות ב- hPa:") # או # הגדר לחץ בזמן ההתחלה כהפניה, למשל. למדידות גובה יחסית זמן. שינה (1) # המתן שנייה לפני המדידה הראשונה j = 0 pres_norm_sum = 0 בעוד j בטווח (5): # קח חמש מדידות כדי להגדיר את ערך ההתייחסות pres_norm_sum = pres_norm_sum + bmp.press j = j + פעם אחת.שינה (1) reference_hPa = (pres_norm_sum/j) # הגדר מדידה פנימית כנקודת התייחסות כדי לאפשר מדידות גובה bmp.sea_level_pressure = float (reference_hPa) print () בעוד True: # פועל לנצח, שנה עבור crontab-version # נמדד ערכים t = bmp.temperature p = bmp.pressure h = bmp.humidity a = bmp.altitude # מחושב על ידי ספריית adafruit מהלחץ #timestamp ts = datetime.datetime.now () # חותמת זמן ts0_EN = '{:%Y-% m-%d} '. פורמט (ts) # חותמת זמן - תאריך, פורמט EN ts0_DE =' {:%d.%m.%Y} '. פורמט (ts) # חותמת זמן - תאריך, פורמט גרמני ts1 =' {: %H:%M:%S} '. Format (ts) # timestamp - time tmp = "{0: 0.1f}". פורמט (t) pre = "{0: 0.1f}". פורמט (p) hyg = "{0: 0.1f}". פורמט (h) alt="{0: 0.1f}". פורמט (א) tText = "Temp.:" pText_EN = "לחץ:" pText_DE = "Luftdruck:" h Text_EN = "לחות:" hText_DE = "יחס. LF: "aText_EN =" Altitude: "aText_DE =" Hühe üNN: " # מדויק: ü. NHN, über Normal Höhen Null if (lang ==" DE "): ts0 = ts0_DE aText = aText_DE pText = pText_DE hText = h: # ברירת מחדל באנגלית ts0 = ts0_EN aText = aText_EN pText = pText_EN hText = hText_EN # ערכי הדפסה להצגת הדפס (ts) הדפסה (tText, tmp, "° C") הדפסה (pText, pre, "hPa") הדפסה (hText, hyg, " %") הדפסה (aText, alt, "m") הדפסה () # ערכי הדפסה ל- Inky pHAT t1 = 5 # tab 1, טור frist, מפשט את אופטימיזציה של פריסה t2 = 110 # tab 2, inkyphat עמודה שנייה. clear () inkyphat.text ((t1, 0), ts0, inkyphat. BLACK, font2) # לכתוב תאריך חותמת תאריך inkyphat.text ((t2, 0), ts1, inkyphat. BLACK, font2) # לכתוב חותמת זמן inkyphat.line ((t1, 25, 207, 25), 1, 3) # צייר קו inkyphat.text ((t1, 30), tText, inkyphat. BLACK, font2) inkyphat.text ((t2, 30), (tmp + "° C"), inkyphat. BLACK, font2) inkyphat.text ((t1, 55), pText, inkyphat. BLACK, font2) inkyphat.text ((t2, 55), (pre + "hPa"), inkyphat. BLACK, font2) inkyphat.text ((t1, 80), hText, inkyphat. BLACK, font2) inkyphat.text ((t2, 80), (hyg + " %"), inkyphat. BLACK, font2) # לחלופין הצג גובה מחושב # inkyphat.text ((t1, 80), aText, inkyphat. BLACK, font2) # inkyphat.text ((t2, 80), (alt + "m"), inkyphat. BLACK, font2) inkyphat.show () time.sleep (51) # המתן מספר שניות לפני המדידות הבאות, +19 שניות למחזור inkyphat.clear () # הליך תצוגת pH של Inky pH, inkyphat.show () # שתיקה לגרסת crontab
שלב 5: הסקריפט BMP280
BMP280 דומה מאוד לחיישן BME280, אך רק מודד טמפרטורה ולחץ. התסריטים דומים מאוד, אבל אתה צריך ספריות שונות של מעגלי פייתון. כאן במקום הלחות מוצג גובה מחושב, המבוסס על לחץ ייחוס.
מצורף אתה מוצא את התסריט.
מוּמלָץ:
שעון תחנת מזג האוויר ESP8266: 4 שלבים
שעון תחנת מזג אוויר ESP8266: פרויקט זה הוא דרך נחמדה להציג את הזמן ומזג האוויר באריזה קטנה ונוחה. אני אסביר את הפרויקט, איך הוא עובד ואציג את הקוד כאן. תוכל ללחוץ על כפתורים שונים כדי להציג את מזג האוויר הנוכחי במיקום מוגדר כמו גם בטמפרטורה
תחנת מזג האוויר של NaTaLia: תחנת מזג אוויר מונעת על ידי סולארית Arduino בוצעה בדרך הנכונה: 8 שלבים (עם תמונות)
תחנת מזג האוויר של NaTaLia: תחנת מזג אוויר המופעלת באמצעות Arduino סולארית בוצעה בדרך הנכונה: לאחר שנה של הפעלה מוצלחת בשני מיקומים שונים אני משתף את תוכניות הפרויקט של תחנת מזג האוויר המונעות על ידי סולארי ומסביר כיצד היא התפתחה למערכת שיכולה לשרוד לאורך זמן. תקופות מכוח השמש. אם אתה עוקב
תחנת מזג האוויר ESP32 Weathercloud: 16 שלבים (עם תמונות)
תחנת מזג האוויר ESP32 Weathercloud: בשנה שעברה פרסמתי את המדריך הגדול ביותר שלי עד כה בשם Arduino Weathercloud Station. זה היה מאוד פופולרי הייתי אומר. הוא הופיע בדף הבית של Instructables, הבלוג של Arduino, מוזיאון Wiznet, Instagram Instructables, Arduino Instagr
תחנת מזג האוויר Iot: 5 שלבים
Iot תחנת מזג אוויר: שלום חבר'ה אני כותב את המדריך הזה כדי להראות לכם איך להכין תחנת מזג אוויר מבוססת Iot אשר משתמשת ב- Wemos D1 Mini Board & משתמש בתצוגת 128 × 68 Oled להצגת פרטי מזג האוויר, טמפרטורה ממפת OpenWeather
תחנת מזג האוויר Arduino Weathercloud: 16 שלבים (עם תמונות)
תחנת מזג האוויר Arduino Weathercloud: יצרתי תחנת מזג אוויר המחוברת לאינטרנט. הוא מודד טמפרטורה, לחות, לחץ, גשמים, מהירות הרוח, מדד UV והוא מחשב עוד כמה ערכים מטאורולוגיים חשובים. לאחר מכן הוא שולח את הנתונים האלה ל- weathercloud.net, עם גרף נחמד