תוכן עניינים:

תחנת מזג אוויר באמצעות פטל פטל עם BME280 בפייתון: 6 שלבים
תחנת מזג אוויר באמצעות פטל פטל עם BME280 בפייתון: 6 שלבים

וִידֵאוֹ: תחנת מזג אוויר באמצעות פטל פטל עם BME280 בפייתון: 6 שלבים

וִידֵאוֹ: תחנת מזג אוויר באמצעות פטל פטל עם BME280 בפייתון: 6 שלבים
וִידֵאוֹ: כיצד לבנות תחנה מטאורולוגיה למדידת כמות מי גשם 2024, נוֹבֶמבֶּר
Anonim
Image
Image
הצעת חוק ציוד חובה
הצעת חוק ציוד חובה

הוא 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. בדוק את זה גם. שיהיה לך כיף לבנות וללמוד! אנא יידע אותנו מה אתה חושב על ההנחיה הזו. נשמח לבצע שיפורים במידת הצורך.

מוּמלָץ: