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

Raspberry Pi - MPL3115A2 חיישן מד גובה מדויק Java הדרכה: 4 שלבים
Raspberry Pi - MPL3115A2 חיישן מד גובה מדויק Java הדרכה: 4 שלבים

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

וִידֵאוֹ: Raspberry Pi - MPL3115A2 חיישן מד גובה מדויק Java הדרכה: 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: קוד:

קוד
קוד

ניתן להוריד את קוד ה- java עבור MPL3115A2 ממאגר github שלנו- חנות DCUBE.

להלן הקישור לאותו דבר:

github.com/DcubeTechVentures/MPL3115A2/tree/master/Java

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

pi4j.com/install.html

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

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

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

// MPL3115A2

// קוד זה נועד לעבודה עם מודול מיני MPL3115A2_I2CS I2C הזמין מ-

ייבא com.pi4j.io.i2c. I2CBus;

ייבא com.pi4j.io.i2c. I2CDevice;

יבוא com.pi4j.io.i2c. I2CFactory;

יבוא java.io. IOException;

מעמד ציבורי MPL3115A2

{

פוסט סטטי ציבורי ריק (String args ) זורק חריגה

{

// צור אוטובוס I2C

אוטובוס I2CBus = I2CFactory.getInstance (I2CBus. BUS_1);

// קבל מכשיר I2C, כתובת I2C MPL3115A2 היא 0x60 (96)

מכשיר I2CDevice = Bus.getDevice (0x60);

// בחר רשום בקרה

// מצב פעיל, OSR = 128, מצב מד גובה

device.write (0x26, (בייט) 0xB9);

// בחר את רשימת תצורת הנתונים

// אירוע מוכן לנתונים מופעל לגובה, לחץ, טמפרטורה

device.write (0x13, (בייט) 0x07);

// בחר רשום בקרה

// מצב פעיל, OSR = 128, מצב מד גובה

device.write (0x26, (בייט) 0xB9);

Thread.sleep (1000);

// קרא 6 בתים של נתונים מהכתובת 0x00 (00)

// סטטוס, tHeight msb1, tHeight msb, tHeight lsb, temp msb, temp lsb

בייט נתונים = בייט חדש [6];

device.read (0x00, data, 0, 6);

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

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

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

גובה כפול = גובה / 16.0;

cTemp כפול = (טמפ ' / 16.0);

כפול fTemp = cTemp * 1.8 + 32;

// בחר רשום בקרה

// מצב פעיל, OSR = 128, מצב ברומטר

device.write (0x26, (בייט) 0x39);

Thread.sleep (1000);

// קרא 4 בתים של נתונים מהכתובת 0x00 (00)

// status, pres msb1, pres msb, pres lsb

device.read (0x00, data, 0, 4);

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

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

לחץ כפול = (pres / 4.0) / 1000.0;

// נתוני פלט למסך

System.out.printf ("לחץ: %.2f kPa %n", לחץ);

System.out.printf ("גובה: %.2f מ %n", גובה);

System.out.printf ("טמפרטורה בצלזיוס: %.2f C %n", cTemp);

System.out.printf ("טמפרטורה בפרנהייט: %.2f F %n", fTemp);

}

}

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

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

מוּמלָץ: