Innehållsförteckning:

Raspberry Pi - MPL3115A2 Precision Altimeter Sensor Python Tutorial: 4 Steg
Raspberry Pi - MPL3115A2 Precision Altimeter Sensor Python Tutorial: 4 Steg

Video: Raspberry Pi - MPL3115A2 Precision Altimeter Sensor Python Tutorial: 4 Steg

Video: Raspberry Pi - MPL3115A2 Precision Altimeter Sensor Python Tutorial: 4 Steg
Video: Raspberry Pi HP203B Precision Barometer & Altimeter Sensor Python Tutorial 2024, November
Anonim
Image
Image

MPL3115A2 använder en MEMS -trycksensor med ett I2C -gränssnitt för att ge exakta tryck/höjd- och temperaturdata. Sensorutgångarna digitaliseras med en högupplöst 24-bitars ADC. Intern behandling tar bort kompensationsuppgifter från värd -MCU -systemet. Den kan upptäcka en förändring på endast 0,05 kPa vilket motsvarar en höjdförändring på 0,3 m. Här är dess demonstration med hallon pi med pythonkod.

Steg 1: Vad du behöver.. !

Vad du behöver..!!
Vad du behöver..!!

1. Hallon Pi

2. MPL3115A2

3. I²C -kabel

4. I²C -sköld för Raspberry Pi

5. Ethernet -kabel

Steg 2: Anslutningar:

Anslutningar
Anslutningar
Anslutningar
Anslutningar
Anslutningar
Anslutningar
Anslutningar
Anslutningar

Ta en I2C -sköld för hallonpi och tryck den försiktigt över gpio -stiften på hallonpi.

Anslut sedan den ena änden av I2C -kabeln till MPL3115A2 -sensorn och den andra änden till I2C -skärmen.

Anslut också Ethernet -kabeln till pi eller så kan du använda en WiFi -modul.

Anslutningar visas på bilden ovan.

Steg 3: Kod:

Koda
Koda

Pythonkoden för MPL3115A2 kan laddas ner från vårt Github-arkiv- DCUBE Store Community.

Här är länken

Vi har använt SMBus -biblioteket för pythonkod, stegen för att installera SMBus på hallon pi beskrivs här:

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

Du kan också kopiera koden härifrån, den ges enligt följande:

# Distribueras med en fri vilja licens.

# Använd det hur du vill, vinst eller gratis, förutsatt att det passar i licensen för dess associerade verk.

# MPL3115A2

# Denna kod är utformad för att fungera med MPL3115A2_I2CS I2C Mini Module

importera smbus

importtid

# Skaffa I2C -buss

buss = smbus. SMBus (1)

# MPL3115A2 -adress, 0x60 (96)

# Välj kontrollregister, 0x26 (38)

# 0xB9 (185) Aktivt läge, OSR = 128, höjdmätarläge

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

# MPL3115A2 -adress, 0x60 (96)

# Välj datakonfigurationsregister, 0x13 (19)

# 0x07 (07) Dataklar händelse aktiverad för höjd, tryck, temperatur

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

# MPL3115A2 -adress, 0x60 (96)

# Välj kontrollregister, 0x26 (38)

# 0xB9 (185) Aktivt läge, OSR = 128, höjdmätarläge

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

tid. sover (1)

# MPL3115A2 -adress, 0x60 (96)

# Läs tillbaka data från 0x00 (00), 6 byte

# status, höjd MSB1, höjd MSB, höjd LSB, temp MSB, temp LSB

data = buss.läs_i2c_block_data (0x60, 0x00, 6)

# Konvertera data till 20-bitar

tHöjd = ((data [1] * 65536) + (data [2] * 256) + (data [3] & 0xF0)) / 16

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

höjd = tHöjd / 16,0

cTemp = temp / 16,0

fTemp = cTemp * 1,8 + 32

# MPL3115A2 -adress, 0x60 (96)

# Välj kontrollregister, 0x26 (38)

# 0x39 (57) Aktivt läge, OSR = 128, Barometerläge

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

tid. sover (1)

# MPL3115A2 -adress, 0x60 (96)

# Läs data tillbaka från 0x00 (00), 4 byte

# status, pres MSB1, pres MSB, pres LSB

data = buss.läs_i2c_block_data (0x60, 0x00, 4)

# Konvertera data till 20-bitar

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

tryck = (pres / 4.0) / 1000.0

# Mata ut data till skärmen

tryck "Tryck: %.2f kPa" %tryck

print "Höjd: %.2f m" %höjd

print "Temperatur i Celsius: %.2f C" %cTemp

print "Temperatur i Fahrenheit: %.2f F" %fTemp

Steg 4: Ansökningar:

Olika tillämpningar av MPL3115A2 inkluderar hög noggrannhetsmätning, smartphones/surfplattor, personlig elektronisk höjdmätning etc. Det kan också införlivas med GPS Dead Reckoning, GPS -förbättring för räddningstjänster, kartassistans, navigering samt väderstationsutrustning.

Rekommenderad: