Satura rādītājs:

Raspberry Pi - MPL3115A2 precīza altimetra sensora Python apmācība: 4 soļi
Raspberry Pi - MPL3115A2 precīza altimetra sensora Python apmācība: 4 soļi

Video: Raspberry Pi - MPL3115A2 precīza altimetra sensora Python apmācība: 4 soļi

Video: Raspberry Pi - MPL3115A2 precīza altimetra sensora Python apmācība: 4 soļi
Video: Raspberry Pi MPL3115A2 Precision Altimeter Sensor Python Tutorial 2024, Jūlijs
Anonim
Image
Image

MPL3115A2 izmanto MEMS spiediena sensoru ar I2C saskarni, lai nodrošinātu precīzus spiediena/augstuma un temperatūras datus. Sensora izejas tiek digitalizētas ar augstas izšķirtspējas 24 bitu ADC. Iekšējā apstrāde noņem kompensācijas uzdevumus no resursdatora MCU sistēmas. Tas spēj noteikt izmaiņas tikai 0,05 kPa, kas atbilst 0,3 m augstuma izmaiņām. Šeit ir tā demonstrācija ar aveņu pi, izmantojot python kodu.

1. solis: kas jums nepieciešams..

Ko tev vajag..!!
Ko tev vajag..!!

1. Aveņu Pi

2. MPL3115A2

3. I²C kabelis

4. I²C vairogs Raspberry Pi

5. Ethernet kabelis

2. darbība. Savienojumi:

Savienojumi
Savienojumi
Savienojumi
Savienojumi
Savienojumi
Savienojumi
Savienojumi
Savienojumi

Paņemiet I2C vairogu aveņu pi un viegli piespiediet to pa aveņu pi gpio tapām.

Pēc tam pievienojiet I2C kabeļa vienu galu MPL3115A2 sensoram un otru galu pie I2C vairoga.

Pievienojiet arī Ethernet kabeli pie pi vai varat izmantot WiFi moduli.

Savienojumi ir parādīti attēlā iepriekš.

3. darbība: kods:

Kods
Kods

MPL3115A2 python kodu var lejupielādēt no mūsu Github repozitorija- DCUBE Store Community.

Šeit ir saite

Mēs esam izmantojuši SMBus bibliotēku python kodam, soļi SMBus instalēšanai aveņu pi ir aprakstīti šeit:

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

Varat arī nokopēt kodu no šejienes, tas ir norādīts šādi:

# Izplatīts ar brīvās gribas licenci.

# Izmantojiet to jebkurā veidā, bez peļņas vai bez maksas, ja vien tas atbilst saistīto darbu licencēm.

# MPL3115A2

# Šis kods ir paredzēts darbam ar MPL3115A2_I2CS I2C mini moduli

importēt smbus

importa laiks

# Iegūstiet I2C autobusu

autobuss = smbus. SMBus (1)

# MPL3115A2 adrese, 0x60 (96)

# Atlasiet vadības reģistru, 0x26 (38)

# 0xB9 (185) Aktīvais režīms, OSR = 128, altimetra režīms

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

# MPL3115A2 adrese, 0x60 (96)

# Atlasiet datu konfigurācijas reģistru, 0x13 (19)

# 0x07 (07) Datu gatavības notikums ir iespējots augstumam, spiedienam, temperatūrai

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

# MPL3115A2 adrese, 0x60 (96)

# Atlasiet vadības reģistru, 0x26 (38)

# 0xB9 (185) Aktīvais režīms, OSR = 128, altimetra režīms

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

laiks. miegs (1)

# MPL3115A2 adrese, 0x60 (96)

# Lasīt datus no 0x00 (00), 6 baiti

# statuss, tHeight MSB1, tHeight MSB, tHeight LSB, temp MSB, temp LSB

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

# Pārvērtiet datus par 20 bitiem

tAugstums = ((dati [1] * 65536) + (dati [2] * 256) + (dati [3] un 0xF0)) / 16

temp = ((dati [4] * 256) + (dati [5] un 0xF0)) / 16

augstums = tAugstums / 16,0

cTemp = temp / 16.0

fTemp = cTemp * 1,8 + 32

# MPL3115A2 adrese, 0x60 (96)

# Atlasiet vadības reģistru, 0x26 (38)

# 0x39 (57) Aktīvais režīms, OSR = 128, barometra režīms

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

laiks. miegs (1)

# MPL3115A2 adrese, 0x60 (96)

# Lasīt datus no 0x00 (00), 4 baiti

# statuss, pirms MSB1, pirms MSB, pirms LSB

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

# Konvertējiet datus uz 20 bitiem

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

spiediens = (pres / 4,0) / 1000,0

# Izvadiet datus ekrānā

drukāt "Spiediens: %.2f kPa" %spiediens

drukāt "Augstums: %.2f m" %augstums

drukāt "Temperatūra pēc Celsija: %.2f C" %cTemp

drukāt "Temperatūra pēc Fārenheita: %.2f F" %fTemp

4. darbība. Lietojumprogrammas:

Dažādi MPL3115A2 pielietojumi ietver augstas precizitātes altimetriju, viedtālruņus/planšetdatorus, personīgās elektronikas altimetriju utt. To var iekļaut arī GPS mirušo aprēķinā, GPS uzlabojumos ārkārtas dienestiem, karšu palīglīdzekļos, navigācijā, kā arī meteoroloģisko staciju aprīkojumā.

Ieteicams: