Innholdsfortegnelse:

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

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

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

MPL3115A2 bruker en MEMS -trykksensor med et I2C -grensesnitt for å gi nøyaktige trykk-/høyde- og temperaturdata. Sensorutgangene digitaliseres med en høyoppløselig 24-biters ADC. Intern behandling fjerner kompensasjonsoppgaver fra verts -MCU -systemet. Den er i stand til å oppdage en endring på bare 0,05 kPa som tilsvarer en endring i høyde på 0,3 m. Her er demonstrasjonen med bringebær pi ved hjelp av python -kode.

Trinn 1: Hva du trenger..

Hva trenger du..!!
Hva trenger du..!!

1. Bringebær Pi

2. MPL3115A2

3. I²C -kabel

4. I²C Shield for Raspberry Pi

5. Ethernet -kabel

Trinn 2: Tilkoblinger:

Tilkoblinger
Tilkoblinger
Tilkoblinger
Tilkoblinger
Tilkoblinger
Tilkoblinger
Tilkoblinger
Tilkoblinger

Ta et I2C -skjold for bringebærpi og skyv det forsiktig over gpio -pinnene til bringebærpi.

Koble deretter den ene enden av I2C -kabelen til MPL3115A2 -sensoren og den andre enden til I2C -skjoldet.

Koble også Ethernet -kabelen til pi eller du kan bruke en WiFi -modul.

Tilkoblinger er vist på bildet ovenfor.

Trinn 3: Kode:

Kode
Kode

Python-koden for MPL3115A2 kan lastes ned fra vårt Github-depot- DCUBE Store Community.

Her er lenken

Vi har brukt SMBus bibliotek for python -kode, trinnene for å installere SMBus på bringebær pi er beskrevet her:

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

Du kan også kopiere koden herfra, den er gitt som følger:

# Distribuert med en fri viljelisens.

# Bruk den slik du vil, profitt eller gratis, forutsatt at den passer inn i lisensene til de tilhørende verkene.

# MPL3115A2

# Denne koden er designet for å fungere med MPL3115A2_I2CS I2C Mini Module

importer smbus

importtid

# Få I2C -buss

buss = smbus. SMBus (1)

# MPL3115A2 adresse, 0x60 (96)

# Velg kontrollregister, 0x26 (38)

# 0xB9 (185) Aktiv modus, OSR = 128, høydemåler modus

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

# MPL3115A2 adresse, 0x60 (96)

# Velg datakonfigurasjonsregister, 0x13 (19)

# 0x07 (07) Dataklar hendelse aktivert for høyde, trykk, temperatur

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

# MPL3115A2 adresse, 0x60 (96)

# Velg kontrollregister, 0x26 (38)

# 0xB9 (185) Aktiv modus, OSR = 128, høydemåler modus

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

time.sleep (1)

# MPL3115A2 adresse, 0x60 (96)

# Les data tilbake fra 0x00 (00), 6 byte

# status, høyde MSB1, høyde MSB, høyde LSB, temp MSB, temp LSB

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

# Konverter dataene til 20-bits

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

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

høyde = tHeight / 16,0

cTemp = temp / 16,0

fTemp = cTemp * 1,8 + 32

# MPL3115A2 adresse, 0x60 (96)

# Velg kontrollregister, 0x26 (38)

# 0x39 (57) Aktiv modus, OSR = 128, Barometer -modus

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

time.sleep (1)

# MPL3115A2 adresse, 0x60 (96)

# Les data tilbake fra 0x00 (00), 4 byte

# status, pres MSB1, pres MSB, pres LSB

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

# Konverter dataene til 20-bits

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

trykk = (pres / 4.0) / 1000.0

# Utdata til skjermen

print "Trykk: %.2f kPa" %trykk

print "Høyde: %.2f m" %høyde

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

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

Trinn 4: Søknader:

Ulike bruksområder for MPL3115A2 inkluderer høy nøyaktighet altimetri, smarttelefoner/nettbrett, personlig elektronikk altimetri osv. Den kan også integreres i GPS Dead Reckoning, GPS Enhancement for Emergency Services, Map Assist, Navigasjon samt værstasjonsutstyr.

Anbefalt: