Mündəricat:

Raspberry Pi - MPL3115A2 Həssas Altimetr Sensoru Python Dərsliyi: 4 addım
Raspberry Pi - MPL3115A2 Həssas Altimetr Sensoru Python Dərsliyi: 4 addım

Video: Raspberry Pi - MPL3115A2 Həssas Altimetr Sensoru Python Dərsliyi: 4 addım

Video: Raspberry Pi - MPL3115A2 Həssas Altimetr Sensoru Python Dərsliyi: 4 addım
Video: Raspberry Pi MPL3115A2 Precision Altimeter Sensor Python Tutorial 2024, Iyul
Anonim
Image
Image

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..

Nə Lazımdır.. !!
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:

Əlaqələr
Əlaqələr
Əlaqələr
Əlaqələr
Əlaqələr
Əlaqələr
Əlaqələr
Əlaqələr

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:

Kod
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.

Tövsiyə: