Indholdsfortegnelse:

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

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

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

MPL3115A2 anvender en MEMS -trykføler med en I2C -grænseflade til at levere nøjagtige data om tryk/højde og temperatur. Sensorudgangene digitaliseres med en højopløselig 24-bit ADC. Intern behandling fjerner kompensationsopgaver fra værts -MCU -systemet. Det er i stand til at detektere en ændring på kun 0,05 kPa, hvilket svarer til en højdeændring på 0,3 m. Her er dens demonstration med hindbær pi ved hjælp af python -kode.

Trin 1: Hvad du har brug for..

Hvad du har brug for..!!
Hvad du har brug for..!!

1. Hindbær Pi

2. MPL3115A2

3. I²C -kabel

4. I²C Shield til Raspberry Pi

5. Ethernet -kabel

Trin 2: Forbindelser:

Tilslutninger
Tilslutninger
Tilslutninger
Tilslutninger
Tilslutninger
Tilslutninger
Tilslutninger
Tilslutninger

Tag et I2C -skjold til hindbærpi og skub det forsigtigt hen over gpio -benene på hindbærpi.

Tilslut derefter den ene ende af I2C -kablet til MPL3115A2 -sensoren og den anden ende til I2C -skærmen.

Tilslut også Ethernet -kablet til pi'en, eller du kan bruge et WiFi -modul.

Forbindelser er vist på billedet ovenfor.

Trin 3: Kode:

Kode
Kode

Python-koden til MPL3115A2 kan downloades fra vores Github-depot- DCUBE Store Community.

Her er linket

Vi har brugt SMBus -bibliotek til python -kode, trinene til at installere SMBus på hindbær pi er beskrevet her:

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

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

# Distribueret med en fri vilje-licens.

# Brug den, som du vil, profit eller gratis, forudsat at den passer ind i licenserne til de tilhørende værker.

# MPL3115A2

# Denne kode er designet til at fungere med MPL3115A2_I2CS I2C Mini Module

import smbus

importtid

# Få I2C -bus

bus = smbus. SMBus (1)

# MPL3115A2 adresse, 0x60 (96)

# Vælg kontrolregister, 0x26 (38)

# 0xB9 (185) Aktiv tilstand, OSR = 128, højdemåler -tilstand

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

# MPL3115A2 adresse, 0x60 (96)

# Vælg datakonfigurationsregister, 0x13 (19)

# 0x07 (07) Dataklar hændelse aktiveret for højde, tryk, temperatur

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

# MPL3115A2 adresse, 0x60 (96)

# Vælg kontrolregister, 0x26 (38)

# 0xB9 (185) Aktiv tilstand, OSR = 128, højdemåler -tilstand

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

time.sleep (1)

# MPL3115A2 adresse, 0x60 (96)

# Læs data tilbage fra 0x00 (00), 6 bytes

# status, højde MSB1, højde MSB, højde 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] & 0xF0)) / 16

højde = tHøjde / 16,0

cTemp = temp / 16,0

fTemp = cTemp * 1,8 + 32

# MPL3115A2 adresse, 0x60 (96)

# Vælg kontrolregister, 0x26 (38)

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

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

time.sleep (1)

# MPL3115A2 adresse, 0x60 (96)

# Læs data tilbage fra 0x00 (00), 4 bytes

# 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

tryk = (pres / 4.0) / 1000.0

# Output data til skærmen

print "Tryk: %.2f kPa" %tryk

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

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

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

Trin 4: Ansøgninger:

Forskellige applikationer af MPL3115A2 inkluderer høj nøjagtigheds -altimetri, smartphones/tablets, personlig elektronik -altimetri osv. Det kan også inkorporeres i GPS Dead Reckoning, GPS -forbedring til nødservice, Map Assist, Navigation samt vejrstationsudstyr.

Anbefalede: