2025 Müəllif: John Day | [email protected]. Son dəyişdirildi: 2025-01-13 06:56
MPL3115A2, dəqiq təzyiq/yüksəklik və temperatur məlumatlarını təmin etmək üçün I2C interfeysi olan bir MEMS təzyiq sensoru istifadə edir. Sensor çıxışları yüksək keyfiyyətli 24 bitlik ADC ilə rəqəmsallaşdırılır. Daxili emal, kompensasiya vəzifələrini ana MCU sistemindən çıxarır. Hündürlükdə 0.3m dəyişikliyə bərabər olan yalnız 0.05 kPa dəyişikliyi aşkar edə bilir. Java kodundan istifadə edərək moruq pi ilə nümayişidir.
Addım 1: Nə Lazımdır..
1. Moruq Pi
2. MPL3115A2
3. I²C Kabel
4. Raspberry Pi üçün I²C Qalxanı
5. Ethernet Kabeli
Addım 2: Bağlantılar:
Moruq pi üçün bir I2C qalxanı götürün və moruq pi gpio sancaqlarının üzərinə yumşaq bir şəkildə itələyin.
Sonra I2C kabelinin bir ucunu MPL3115A2 sensoruna, digər ucunu isə I2C ekranına bağlayın.
Ayrıca Ethernet kabelini pi -yə qoşun və ya WiFi modulundan istifadə edə bilərsiniz.
Bağlantılar yuxarıdakı şəkildə göstərilmişdir.
Addım 3: Kod:
MPL3115A2 üçün java kodunu github depomuzdan yükləyə bilərsiniz- DCUBE Mağazası.
İşdə bunun üçün bağlantı:
github.com/DcubeTechVentures/MPL3115A2/tree/master/Java
Java kodu üçün pi4j kitabxanasından istifadə etdik, moruq pi üzərində pi4j quraşdırma addımları burada təsvir edilmişdir:
pi4j.com/install.html
Kodu buradan da kopyalaya bilərsiniz, belə verilir:
// Azad iradə lisenziyası ilə paylanmışdır.
// İstənilən şəkildə, mənfəət və ya pulsuz istifadə edin, əlaqəli əsərlərinin lisenziyalarına uyğun gəlir.
// MPL3115A2
// Bu kod MPL3115A2_I2CS I2C Mini Modulu ilə işləmək üçün hazırlanmışdır.
com.pi4j.io.i2c. I2CBus idxal edin;
com.pi4j.io.i2c. I2CDevice idxal edin;
com.pi4j.io.i2c. I2CFactory idxal edin;
java.io. IOException idxal edin;
ictimai sinif MPL3115A2
{
public static void main (String args ) İstisna atır
{
// I2C avtobusu yaradın
I2CBus Avtobus = I2CFactory.getInstance (I2CBus. BUS_1);
// I2C cihazı alın, MPL3115A2 I2C ünvanı 0x60 (96)
I2CDevice cihazı = Bus.getDevice (0x60);
// Nəzarət reyestrini seçin
// Aktiv rejim, OSR = 128, altimetr rejimi
device.write (0x26, (bayt) 0xB9);
// Məlumat konfiqurasiya qeydini seçin
// Hündürlük, təzyiq, temperatur üçün məlumatlara hazır hadisə aktivdir
device.write (0x13, (bayt) 0x07);
// Nəzarət reyestrini seçin
// Aktiv rejim, OSR = 128, altimetr rejimi
device.write (0x26, (bayt) 0xB9);
Thread.sleep (1000);
// 0x00 (00) ünvanından 6 bayt məlumat oxuyun
// status, tHeight msb1, tHeight msb, tHeight lsb, temp msb, temp lsb
bayt məlumat = yeni bayt [6];
device.read (0x00, data, 0, 6);
// Məlumatı 20 bitə çevirin
int tHeight = ((((data [1] & 0xFF) * 65536) + ((data [2] & 0xFF) * 256) + (data [3] & 0xF0)) / 16);
int temp = ((data [4] * 256) + (data [5] & 0xF0)) / 16;
ikiqat hündürlük = tHeight / 16.0;
ikiqat cTemp = (temp / 16.0);
ikiqat fTemp = cTemp * 1.8 + 32;
// Nəzarət reyestrini seçin
// Aktiv rejim, OSR = 128, barometr rejimi
device.write (0x26, (bayt) 0x39);
Thread.sleep (1000);
// 0x00 (00) ünvanından 4 bayt məlumat oxuyun
// status, pres msb1, pres msb, pres lsb
device.read (0x00, data, 0, 4);
// Məlumatı 20 bitə çevirin
int pres = (((data [1] & 0xFF) * 65536) + ((data [2] & 0xFF) * 256) + (data [3] & 0xF0)) / 16;
ikiqat təzyiq = (pres / 4.0) / 1000.0;
// Ekrana məlumat çıxarın
System.out.printf ("Təzyiq: %.2f kPa %n", təzyiq);
System.out.printf ("Hündürlük: %.2f m %n", yüksəklik);
System.out.printf ("Selsi İstiliyi: %.2f C %n", cTemp);
System.out.printf ("Fahrenheitdəki temperatur: %.2f F %n", fTemp);
}
}
Addım 4: Tətbiqlər:
MPL3115A2 -nin müxtəlif tətbiqlərinə Yüksək Dəqiqlik Altimetriyası, Smartfonlar/Tabletlər, Fərdi Elektronik Altimetriya və s. Daxildir. O, həmçinin GPS Ölü Hesablama, Təcili Xidmətlər üçün GPS Artırması, Xəritə Köməkçisi, Naviqasiya və Hava İstismarı Avadanlıqlarına daxil edilə bilər.