תוכן עניינים:
- שלב 1: הצעת חוק ציוד חובה
- שלב 2: חיבורי חומרה למעגל
- שלב 3: תכנות פטל פטל ב- Python
- שלב 4: קוד הריצה
- שלב 5: ניצול בעולם המעשי
- שלב 6: מסקנה
וִידֵאוֹ: תחנת מזג אוויר באמצעות פטל פטל עם BME280 בפייתון: 6 שלבים
2024 מְחַבֵּר: John Day | [email protected]. שונה לאחרונה: 2024-01-30 09:14
הוא maith an scéalaí an aimir (מזג האוויר הוא מספר סיפורים טוב)
עם בעיות ההתחממות הגלובלית ושינויי האקלים, דפוס מזג האוויר העולמי הופך להיות לא יציב ברחבי העולם שלנו ומוביל למספר אסונות טבע הקשורים למזג אוויר (בצורות, טמפרטורות קיצוניות, שיטפונות, סערות ושריפות), נראה כי תחנת מזג אוויר נחוצה רע בבית. אתה לומד הרבה על אלקטרוניקה בסיסית מפרויקט תחנת מזג אוויר באמצעות חבורה של חלקים וחיישנים זולים. זה די קל להתקנה ותוך זמן קצר תוכל לקבל את זה.
שלב 1: הצעת חוק ציוד חובה
1. פטל פטל
שים את ידיך על לוח פטל פי. Raspberry Pi הוא מחשב לוח יחיד המופעל על ידי לינוקס. ה- Raspberry Pi הוא ממש זול, זעיר ורב -תכליתי הבנוי ממחשב נגיש ופונקציונלי עבור הלומדים להתאמן ביסודות התכנות ופיתוח התוכנה.
2. מגן I2C עבור פטל פטל
INPI2 (מתאם I2C) מספק את Raspberry Pi 2/3 יציאת I²C לשימוש עם התקני I2C מרובים. הוא זמין בחנות DCUBE.
3. חיישן לחות, לחץ וטמפרטורה דיגיטאליים, BME280
BME280 הוא חיישן לחות, לחץ וטמפרטורה בעל זמן תגובה מהיר ודיוק כולל גבוה. רכשנו חיישן זה מחנות DCUBE.
4. כבל חיבור I2C
השתמשנו בכבל I²C הזמין בחנות DCUBE.
5. כבל מיקרו USB
כבל מיקרו USB ספק הכוח הוא בחירה אידיאלית להפעלת ה- Raspberry Pi.
6. פירוש גישה לאינטרנט באמצעות מתאם EthernetCable/WiFi
ניתן לאפשר גישה לאינטרנט באמצעות כבל אתרנט המחובר לרשת מקומית ואינטרנט. לחלופין, תוכל להתחבר לרשת אלחוטית באמצעות דונגל אלחוטי USB, אשר ידרוש תצורה.
7. כבל HDMI (כבל תצוגה וקישוריות)
כל צג HDMI/DVI וכל טלוויזיה אמורים לעבוד כתצוגה עבור ה- Pi. לחלופין, תוכל לגשת מרחוק ל- Pi באמצעות SSH ולשלול את הצורך במסך (משתמשים מתקדמים בלבד).
שלב 2: חיבורי חומרה למעגל
הפוך את המעגל לפי הסכימה המוצגת. באופן כללי, החיבורים פשוטים מאוד. שמור על רוגע ופעל לפי ההוראות והתמונות שלמעלה, ולא אמורות להיות לך בעיות. במהלך הלמידה, למדנו היטב את היסודות של האלקטרוניקה בנוגע לידע על חומרה ותוכנה. רצינו להכין סכמה אלקטרונית פשוטה לפרויקט זה. סכמות אלקטרוניות הן כמו שרטוטים. שרטוט ועקוב אחר העיצוב בזהירות. כמה מושגי יסוד של אלקטרוניקה עשויים להיות שימושיים כאן!
חיבור ה- Raspberry Pi ו- I2C Shield
ראשית, קח את ה- Raspberry Pi והנח עליו את מגן I²C. לחץ בעדינות על המגן וסיימנו עם שלב זה קל כמו עוגה (ראו את התמונה).
חיבור החיישן ו- Raspberry Pi
קח את החיישן וחבר איתו את כבל I²C. וודא שפלט I²C תמיד מתחבר לקלט I²C. אותו הדבר צריך להיעשות לגבי ה- Raspberry Pi עם מגן I²C המותקן מעליו פיני GPIO. אנו ממליצים להשתמש בכבלי I²C מכיוון שהוא שולל את הצורך בקריאת pinouts, הלחמות וחולשה הנגרמת על ידי ולו החלקה הקטנה ביותר.. בעזרת הכבל הפשוט וההפעלה הפשוט הזה, אתה יכול להתקין, להחליף לוחות או להוסיף לוחות נוספים ליישום בקלות.
הערה: החוט החום צריך תמיד לעקוב אחר חיבור הארקה (GND) בין הפלט של התקן אחד לקלט של התקן אחר
קישוריות לאינטרנט היא המפתח
יש לך כאן שתי אפשרויות. או שתוכל לחבר את ה- Raspberry Pi לרשת באמצעות כבל אתרנט או להשתמש במתאם USB ל- WiFi לצורך קישוריות WIFI. כך או כך, כל עוד הוא מחובר לאינטרנט אתה מכוסה.
הפעלת המעגל
חבר את כבל ה- Micro USB לשקע החשמל של Raspberry Pi. אגרוף וואלה! הקבוצה שלנו היא מידע.
חיבור למסך
אנו יכולים לחבר את כבל ה- HDMI למסך או לטלוויזיה. בנוסף, אנו יכולים לגשת ל- Raspberry Pi מבלי לחבר אותו למסך באמצעות גישה מרחוק. SSH הוא כלי שימושי לגישה מרחוק מאובטחת. אתה יכול גם להשתמש בתוכנת PUTTY לשם כך. אפשרות זו מיועדת למשתמשים מתקדמים, כך שלא נעסוק בה בהרחבה כאן.
זוהי שיטה חסכונית אם אתה לא רוצה להוציא הרבה
שלב 3: תכנות פטל פטל ב- Python
קוד פייתון לחיישן Raspberry Pi ו- BME280. הוא זמין במאגר Github שלנו.
לפני שתמשיך לקוד, הקפד לקרוא את ההוראות המופיעות בקובץ ה- Readme ולהגדיר את ה- Raspberry Pi בהתאם לכך. רק מעט זמן יכין אותך להתקנה. תחנת מזג אוויר היא מתקן, בין אם ביבשה או בים, עם מכשירים וציוד למדידת תנאי האטמוספירה כדי לספק מידע על תחזיות מזג האוויר וללמוד את מזג האוויר והאקלים.
הקוד נמצא בבירור מולך והוא בצורה הפשוטה ביותר שאתה יכול לדמיין ולא אמורות להיות לך בעיות. עדיין שאל אם יש (גם אם אתה יודע אלף דברים, עדיין שאל מישהו שיודע).
תוכל להעתיק גם מכאן את קוד ה- Python שעובד עבור חיישן זה.
# מופץ ברישיון רצון חופשי.# השתמש בו בכל דרך שתרצה, רווח או בחינם, בתנאי שהוא מתאים לרישיונות של העבודות המשויכות אליו. # BME280 # קוד זה נועד לעבודה עם מודול מיני BME280_I2CS I2C הזמין ב- ControlEverything.com. #
יבוא smbus
זמן יבוא
# קבל אוטובוס I2C
אוטובוס = smbus. SMBus (1)
כתובת BME280, 0x76 (118)
# קרא נתונים בחזרה מ 0x88 (136), 24 בתים b1 = bus.read_i2c_block_data (0x76, 0x88, 24)
# המרת הנתונים
# מקדמי טמפ 'dig_T1 = b1 [1] * 256 + b1 [0] dig_T2 = b1 [3] * 256 + b1 [2] אם dig_T2> 32767: dig_T2 -= 65536 dig_T3 = b1 [5] * 256 + b1 [4] אם dig_T3> 32767: dig_T3 -= 65536
# מקדמי לחץ
dig_P1 = b1 [7] * 256 + b1 [6] dig_P2 = b1 [9] * 256 + b1 [8] אם dig_P2> 32767: dig_P2 -= 65536 dig_P3 = b1 [11] * 256 + b1 [10] אם dig_P3 > 32767: dig_P3 -= 65536 dig_P4 = b1 [13] * 256 + b1 [12] אם dig_P4> 32767: dig_P4 -= 65536 dig_P5 = b1 [15] * 256 + b1 [14] אם dig_P5> 32767: dig_P5 -= 65536 dig_P6 = b1 [17] * 256 + b1 [16] אם dig_P6> 32767: dig_P6 -= 65536 dig_P7 = b1 [19] * 256 + b1 [18] אם dig_P7> 32767: dig_P7 -= 65536 dig_P8 = b1 [21] * 256 + b1 [20] אם dig_P8> 32767: dig_P8 -= 65536 dig_P9 = b1 [23] * 256 + b1 [22] אם dig_P9> 32767: dig_P9 -= 65536
כתובת BME280, 0x76 (118)
# קרא נתונים בחזרה מ 0xA1 (161), 1 בתים dig_H1 = bus.read_byte_data (0x76, 0xA1)
כתובת BME280, 0x76 (118)
# קרא נתונים בחזרה מ 0xE1 (225), 7 בתים b1 = bus.read_i2c_block_data (0x76, 0xE1, 7)
# המרת הנתונים
# מקדמי לחות dig_H2 = b1 [1] * 256 + b1 [0] אם dig_H2> 32767: dig_H2 -= 65536 dig_H3 = (b1 [2] & 0xFF) dig_H4 = (b1 [3] * 16) + (b1 [4] & 0xF) אם dig_H4> 32767: dig_H4 -= 65536 dig_H5 = (b1 [4] / 16) + (b1 [5] * 16) אם dig_H5> 32767: dig_H5 -= 65536 dig_H6 = b1 [6] אם dig_H6> 127: dig_H6 -= 256
כתובת BME280, 0x76 (118)
# בחר רשם לחות שליטה, 0xF2 (242) # 0x01 (01) דגימות יתר של לחות = bus.write_byte_data (0x76, 0xF2, 0x01) # כתובת BME280, 0x76 (118) # בחר רשימת מדידות בקרה, 0xF4 (244) # 0x27 (39) לחץ וטמפרטורת דגימת יתר = 1 # אוטובוס מצב רגיל (byx_byte_data (0x76, 0xF4, 0x27) # כתובת BME280, 0x76 (118) # בחר רשם תצורה, 0xF5 (245) # 0xA0 (00) זמן המתנה = 1000 ms אוטובוס.write_byte_data (0x76, 0xF5, 0xA0)
time.sleep (0.5)
כתובת BME280, 0x76 (118)
# קרא נתונים בחזרה מ- 0xF7 (247), 8 בתים # נתוני לחץ MSB, לחץ LSB, לחץ xLSB, טמפרטורה MSB, טמפרטורה LSB # טמפרטורה xLSB, לחות MSB, נתוני LSB לחות = bus.read_i2c_block_data (0x76, 0xF7, 8)
# המרת נתוני לחץ וטמפרטורה ל- 19 סיביות
adc_p = ((נתונים [0] * 65536) + (נתונים [1] * 256) + (נתונים [2] & 0xF0)) / 16 adc_t = ((נתונים [3] * 65536) + (נתונים [4] * 256) + (נתונים [5] & 0xF0)) / 16
# המר את נתוני הלחות
adc_h = data [6] * 256 + נתונים [7]
# חישובי קיזוז טמפרטורה
var1 = ((adc_t) / 16384.0 - (dig_T1) / 1024.0) * (dig_T2) var2 = (((adc_t) / 131072.0 - (dig_T1) / 8192.0) * ((adc_t) /131072.0 - (dig_T1) /8192.0)) * (dig_T3) t_fine = (var1 + var2) cTemp = (var1 + var2) / 5120.0 fTemp = cTemp * 1.8 + 32
# חישובי קיזוז לחץ
var1 = (t_fine / 2.0) - 64000.0 var2 = var1 * var1 * (dig_P6) / 32768.0 var2 = var2 + var1 * (dig_P5) * 2.0 var2 = (var2 / 4.0) + ((dig_P4) * 65536.0) var1 = (((dig_P3) * var1 * var1 / 524288.0 + (dig_P2) * var1) / 524288.0 var1 = (1.0 + var1 / 32768.0) * (dig_P1) p = 1048576.0 - adc_p p = (p - (var2 / 4096.0)) * 6250.0 / var1 var1 = (dig_P9) * p * p / 2147483648.0 var2 = p * (dig_P8) / 32768.0 לחץ = (p + (var1 + var2 + (dig_P7)) / 16.0) / 100
# חישובי קיזוז לחות
var_H = ((t_fine) - 76800.0) var_H = (adc_h - (dig_H4 * 64.0 + dig_H5 / 16384.0 * var_H)) * (dig_H2 / 65536.0 * (1.0 + dig_H6 / 67108864.0 * var_H * (1.0 + dig_H3 / 67108864.0 * var_))) לחות = var_H * (1.0 - dig_H1 * var_H / 524288.0) אם לחות> 100.0: לחות = 100.0 לחות elif <0.0: לחות = 0.0
# פלט נתונים למסך
הדפס "טמפרטורה בסלסיוס: %.2f C" %cTemp הדפס "טמפרטורה בפרנהייט: %.2f F" %fTemp הדפס "לחץ: %.2f hPa" הדפס לחץ "לחות יחסית: %.2f %%" %לחות
שלב 4: קוד הריצה
עכשיו, הורד (או git משוך) את הקוד ופתח אותו ב- Raspberry Pi.
הפעל את הפקודות כדי לאסוף ולהעלות את הקוד במסוף ולראות את הפלט בתצוגה. לאחר מספר שניות, הוא יציג את כל הפרמטרים. לאחר שתוודא שהכל עובד מצוין, תוכל לפתח עוד כמה מעניינים.
שלב 5: ניצול בעולם המעשי
BME280 משיג ביצועים גבוהים בכל היישומים הדורשים מדידת לחות ולחץ. יישומים אלה המתעוררים הם מודעות לקונטקסט, למשל. זיהוי עור, זיהוי שינוי החדר, ניטור כושר / רווחה, אזהרה לגבי יובש או טמפרטורות גבוהות, מדידת נפח וזרימת אוויר, בקרת אוטומציה ביתית, בקרת חימום, אוורור, מיזוג אוויר (HVAC), אינטרנט של דברים (IoT), שיפור GPS (למשל שיפור הזמן עד לתקן הראשון, חישוב מתים, איתור שיפוע), ניווט פנימי (שינוי זיהוי רצפה, זיהוי מעליות), ניווט בחוץ, יישומי פנאי וספורט, תחזית מזג אוויר ואינדיקטיית מהירות אנכית (עלייה/כיור) מְהִירוּת).
שלב 6: מסקנה
מקווה שפרויקט זה מעורר ניסויים נוספים. יצירת תחנת מזג אוויר מתוחכמת יותר יכולה לכלול עוד כמה חיישנים כמו מד גשם, חיישן אור, מד רוח (מהירות רוח) וכו '. ניתן להוסיף אותם ולשנות את הקוד. יש לנו סרטון הדרכה ב- YouTube עם התפקוד הבסיסי של חיישן I²C עם Rasp Pi. זה באמת מדהים לראות את התוצאות והעבודה של התקשורת I²C. בדוק את זה גם. שיהיה לך כיף לבנות וללמוד! אנא יידע אותנו מה אתה חושב על ההנחיה הזו. נשמח לבצע שיפורים במידת הצורך.
מוּמלָץ:
תחנת מזג אוויר אישית באמצעות פטל פטל עם BME280 בג'אווה: 6 שלבים
תחנת מזג אוויר אישית באמצעות Raspberry Pi עם BME280 בג'אווה: מזג אוויר גרוע תמיד נראה גרוע יותר דרך חלון. תמיד היינו מעוניינים לעקוב אחר מזג האוויר המקומי שלנו ומה שאנחנו רואים מהחלון. רצינו גם שליטה טובה יותר על מערכת החימום והמזגן שלנו. בניית תחנת מזג אוויר אישית היא דבר נהדר
תחנת מזג האוויר של NaTaLia: תחנת מזג אוויר מונעת על ידי סולארית Arduino בוצעה בדרך הנכונה: 8 שלבים (עם תמונות)
תחנת מזג האוויר של NaTaLia: תחנת מזג אוויר המופעלת באמצעות Arduino סולארית בוצעה בדרך הנכונה: לאחר שנה של הפעלה מוצלחת בשני מיקומים שונים אני משתף את תוכניות הפרויקט של תחנת מזג האוויר המונעות על ידי סולארי ומסביר כיצד היא התפתחה למערכת שיכולה לשרוד לאורך זמן. תקופות מכוח השמש. אם אתה עוקב
תחנת מזג אוויר בחדר באמצעות Arduino & BME280: 4 שלבים
תחנת מזג אוויר בחדר באמצעות Arduino & BME280: בעבר שיתפתי תחנת מזג אוויר פשוטה שהציגה את הטמפרטורה והלחות של האזור המקומי. הבעיה איתו הייתה שיידרש זמן עדכון והנתונים לא היו מדויקים. במדריך זה נכין צג מזג אוויר פנימי
תחנת מזג אוויר באמצעות Wemos D1 Mini, BME280 ו- Sensate .: 6 שלבים
תחנת מזג אוויר באמצעות Wemos D1 Mini, BME280 ו- Sensate .: בפוסטים קודמים שיתפתי שיטות שונות לבניית תחנת מזג אוויר. אם לא בדקת זאת הנה קישור. במדריך זה אדגים כיצד לבנות תחנת מזג אוויר פשוטה באמצעות Wemos ופלטפורמת IoT בשם Sensate
תחנת מזג אוויר Acurite 5 in 1 באמצעות פיי פטל ו- Weewx (תחנות מזג אוויר אחרות תואמות): 5 שלבים (עם תמונות)
תחנת מזג אוויר Acurite 5 in 1 באמצעות פי פטל ו- Weewx (תחנות מזג אוויר אחרות תואמות): כשקניתי את תחנת מזג האוויר Acurite 5 in 1 רציתי להיות מסוגל לבדוק את מזג האוויר בבית שלי בזמן שהייתי בחוץ. כשהגעתי הביתה והגדרתי אותו הבנתי שאני חייב לחבר את המסך למחשב או לקנות את הרכזת החכמה שלהם