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

Raspberry Pi - MPL3115A2 מד חיישני מד גובה מדריך פייתון הדרכה: 4 שלבים
Raspberry Pi - MPL3115A2 מד חיישני מד גובה מדריך פייתון הדרכה: 4 שלבים

וִידֵאוֹ: Raspberry Pi - MPL3115A2 מד חיישני מד גובה מדריך פייתון הדרכה: 4 שלבים

וִידֵאוֹ: Raspberry Pi - MPL3115A2 מד חיישני מד גובה מדריך פייתון הדרכה: 4 שלבים
וִידֵאוֹ: Elevator Arduino/BME280 Pressure Altimeter Test 2024, יולי
Anonim
Image
Image

ה- MPL3115A2 משתמש בחיישן לחץ MEMS עם ממשק I2C כדי לספק נתוני לחץ/גובה וטמפרטורה מדויקים. יציאות החיישן ממוגנות באמצעות ADC ברזולוציה גבוהה של 24 סיביות. עיבוד פנימי מסיר משימות פיצוי ממערכת ה- MCU המארחת. הוא מסוגל לזהות שינוי ב- 0.05 kPa בלבד שמשווה לשינוי של 0.3 מ 'גובה. להלן ההדגמה שלו עם פטל פאי באמצעות קוד פייתון.

שלב 1: מה שאתה צריך..

מה אתה צריך..!!
מה אתה צריך..!!

1. פטל פטל

2. MPL3115A2

3. כבל I²C

4. מגן I²C עבור פטל פטל

5. כבל אתרנט

שלב 2: חיבורים:

חיבורים
חיבורים
חיבורים
חיבורים
חיבורים
חיבורים
חיבורים
חיבורים

קח מגן I2C לפאי פטל ודחוף אותו בעדינות מעל סיכות ה- gpio של פטל פאי.

לאחר מכן חבר את הקצה האחד של כבל I2C לחיישן MPL3115A2 והקצה השני למגן I2C.

חבר גם את כבל ה- Ethernet ל- pi או שאתה יכול להשתמש במודול WiFi.

חיבורים מוצגים בתמונה למעלה.

שלב 3: קוד:

קוד
קוד

ניתן להוריד את קוד הפיתון ל- MPL3115A2 מקהילת Github שלנו- קהילת חנויות DCUBE.

הנה הקישור

השתמשנו בספריית SMBus לקוד פייתון, השלבים להתקנת SMBus על פטל פאי מתוארים כאן:

pypi.python.org/pypi/smbus-cffi/0.5.1

אתה יכול גם להעתיק את הקוד מכאן, הוא ניתן כדלקמן:

# מופץ ברישיון רצון חופשי.

# השתמש בו בכל דרך שתרצה, ברווח או בחינם, בתנאי שהוא מתאים לרישיונות של העבודות הקשורות בו.

# MPL3115A2

# קוד זה נועד לעבוד עם מודול מיני MPL3115A2_I2CS I2C

יבוא smbus

זמן יבוא

# קבל אוטובוס I2C

אוטובוס = smbus. SMBus (1)

כתובת MPL3115A2, 0x60 (96)

# בחר פקד בקרה, 0x26 (38)

# 0xB9 (185) מצב פעיל, OSR = 128, מצב מד גובה

bus.write_byte_data (0x60, 0x26, 0xB9)

כתובת MPL3115A2, 0x60 (96)

# בחר רשם תצורת נתונים, 0x13 (19)

# 0x07 (07) אירוע מוכן לנתונים מופעל לגובה, לחץ, טמפרטורה

bus.write_byte_data (0x60, 0x13, 0x07)

כתובת MPL3115A2, 0x60 (96)

# בחר פקד בקרה, 0x26 (38)

# 0xB9 (185) מצב פעיל, OSR = 128, מצב מד גובה

bus.write_byte_data (0x60, 0x26, 0xB9)

time.sleep (1)

כתובת MPL3115A2, 0x60 (96)

# קרא את הנתונים בחזרה מ 0x00 (00), 6 בתים

סטטוס #, גובה MSB1, גובה MSB, גובה LSB, טמפ 'MSB, טמפ' LSB

data = bus.read_i2c_block_data (0x60, 0x00, 6)

# המר את הנתונים ל- 20 סיביות

tHeight = ((data [1] * 65536) + (data [2] * 256) + (data [3] & 0xF0)) / 16

temp = ((data [4] * 256) + (data [5] & 0xF0)) / 16

גובה = גובה / 16.0

cTemp = temp / 16.0

fTemp = cTemp * 1.8 + 32

כתובת MPL3115A2, 0x60 (96)

# בחר פקד בקרה, 0x26 (38)

# 0x39 (57) מצב פעיל, OSR = 128, מצב ברומטר

bus.write_byte_data (0x60, 0x26, 0x39)

time.sleep (1)

כתובת MPL3115A2, 0x60 (96)

# קרא את הנתונים בחזרה מ 0x00 (00), 4 בתים

סטטוס #, pres MSB1, pres MSB, pres LSB

data = bus.read_i2c_block_data (0x60, 0x00, 4)

# המר את הנתונים ל- 20 סיביות

pres = ((data [1] * 65536) + (data [2] * 256) + (data [3] & 0xF0)) / 16

לחץ = (pres / 4.0) / 1000.0

# פלט נתונים למסך

- לחץ: "לחץ: %.2f kPa" לחץ

- הדפסת "גובה: %.2f מ" %גובה

- טמפרטורה ב צלזיוס: %.2f C %cTemp

- טמפרטורה בפרנהייט: %.2f F %fTemp

שלב 4: יישומים:

יישומים שונים של MPL3115A2 כוללים מדדי דיוק גבוהים, סמארטפונים/טאבלטים, אלטימטריה של אלקטרוניקה אישית וכו '. ניתן לשלב אותה גם בחישוב מתים GPS, שיפור GPS לשירותי חירום, מפת עזרה, ניווט וכן ציוד תחנת מזג אוויר.

מוּמלָץ: