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. Python kodu 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 python kodu Github depomuzdan yükləyə bilərsiniz- DCUBE Mağaza Birliyi.
İşdə link
Python kodu üçün SMBus kitabxanasından istifadə etmişik, moruq pi üzərində SMBus quraşdırma addımları burada təsvir edilmişdir:
pypi.python.org/pypi/smbus-cffi/0.5.1
Kodu buradan da kopyalaya bilərsiniz, belə verilir:
# Sərbəst iradə lisenziyası ilə paylandı.
# Əlaqədar əsərlərinin lisenziyalarına uyğun olması şərtilə, mənfəət və ya pulsuz olaraq istədiyiniz şəkildə istifadə edin.
# MPL3115A2
# Bu kod MPL3115A2_I2CS I2C Mini Modulu ilə işləmək üçün hazırlanmışdır
smbus idxal edin
idxal vaxtı
# I2C avtobusu alın
avtobus = smbus. SMBus (1)
# MPL3115A2 ünvanı, 0x60 (96)
# Nəzarət reyestrini seçin, 0x26 (38)
# 0xB9 (185) Aktiv rejim, OSR = 128, Altimetr rejimi
bus.write_byte_data (0x60, 0x26, 0xB9)
# MPL3115A2 ünvanı, 0x60 (96)
# Məlumat konfiqurasiya qeydini seçin, 0x13 (19)
# 0x07 (07) Hündürlük, təzyiq, temperatur üçün məlumat hazırlığı hadisəsi aktivdir
bus.write_byte_data (0x60, 0x13, 0x07)
# MPL3115A2 ünvanı, 0x60 (96)
# Nəzarət reyestrini seçin, 0x26 (38)
# 0xB9 (185) Aktiv rejim, OSR = 128, Altimetr rejimi
bus.write_byte_data (0x60, 0x26, 0xB9)
vaxt.yuxu (1)
# MPL3115A2 ünvanı, 0x60 (96)
# 0x00 (00), 6 baytdan məlumatları geri oxuyun
# status, tHeight MSB1, tHeight MSB, tHeight LSB, temp MSB, temp LSB
data = bus.read_i2c_block_data (0x60, 0x00, 6)
# Məlumatı 20 bitə çevirin
tHeight = ((data [1] * 65536) + (data [2] * 256) + (data [3] & 0xF0)) / 16
temp = ((data [4] * 256) + (data [5] & 0xF0)) / 16
hündürlük = tHeight / 16.0
cTemp = temp / 16.0
fTemp = cTemp * 1.8 + 32
# MPL3115A2 ünvanı, 0x60 (96)
# Nəzarət reyestrini seçin, 0x26 (38)
# 0x39 (57) Aktiv rejim, OSR = 128, Barometr rejimi
bus.write_byte_data (0x60, 0x26, 0x39)
vaxt.yuxu (1)
# MPL3115A2 ünvanı, 0x60 (96)
# 0x00 (00), 4 baytdan məlumatları geri oxuyun
# status, MSB1, MSB, Pres LSB
data = bus.read_i2c_block_data (0x60, 0x00, 4)
# Məlumatı 20 bitə çevirin
pres = ((məlumat [1] * 65536) + (məlumat [2] * 256) + (məlumat [3] & 0xF0)) / 16
təzyiq = (pres / 4.0) / 1000.0
# Ekrana məlumat çıxarın
çap "Təzyiq: %.2f kPa" %təzyiq
çap "Yüksəklik: %.2f m" %yüksəklik
çap "Selsi İstiliyi: %.2f C" %cTemp
çap "Fahrenheitdəki temperatur: %.2f F" %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.