Inhoudsopgave:

Raspberry Pi - MPL3115A2 Precisiehoogtemetersensor Python-zelfstudie - Ajarnpa
Raspberry Pi - MPL3115A2 Precisiehoogtemetersensor Python-zelfstudie - Ajarnpa

Video: Raspberry Pi - MPL3115A2 Precisiehoogtemetersensor Python-zelfstudie - Ajarnpa

Video: Raspberry Pi - MPL3115A2 Precisiehoogtemetersensor Python-zelfstudie - Ajarnpa
Video: PiicoDev Pressure Sensor MS5637 | Raspberry Pi Guide 2024, November
Anonim
Image
Image

De MPL3115A2 maakt gebruik van een MEMS-druksensor met een I2C-interface om nauwkeurige druk-/hoogte- en temperatuurgegevens te leveren. De sensoruitgangen worden gedigitaliseerd door een 24-bits ADC met hoge resolutie. Interne verwerking verwijdert compensatietaken van het host-MCU-systeem. Het is in staat om een verandering van slechts 0,05 kPa te detecteren, wat overeenkomt met een hoogteverandering van 0,3 m. Hier is de demonstratie met raspberry pi met behulp van python-code.

Stap 1: Wat je nodig hebt.

Wat je nodig hebt..!!
Wat je nodig hebt..!!

1. Raspberry Pi

2. MPL3115A2

3. I²C-kabel

4. I²C-schild voor Raspberry Pi

5. Ethernet-kabel

Stap 2: Aansluitingen:

Aansluitingen
Aansluitingen
Aansluitingen
Aansluitingen
Aansluitingen
Aansluitingen
Aansluitingen
Aansluitingen

Neem een I2C-schild voor Raspberry Pi en duw het voorzichtig over de gpio-pinnen van Raspberry Pi.

Sluit vervolgens het ene uiteinde van de I2C-kabel aan op de MPL3115A2-sensor en het andere uiteinde op de I2C-afscherming.

Sluit ook de Ethernet-kabel aan op de pi of u kunt een WiFi-module gebruiken.

De aansluitingen zijn weergegeven in de afbeelding hierboven.

Stap 3: Coderen:

Code
Code

De python-code voor MPL3115A2 kan worden gedownload van onze Github-repository - DCUBE Store Community.

Hier is de link

We hebben de SMBus-bibliotheek gebruikt voor python-code, de stappen om SMBus op raspberry pi te installeren worden hier beschreven:

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

U kunt de code ook hier kopiëren, deze wordt als volgt gegeven:

# Gedistribueerd met een vrije wilslicentie.

# Gebruik het zoals je wilt, winst of gratis, op voorwaarde dat het past in de licenties van de bijbehorende werken.

# MPL3115A2

# Deze code is ontworpen om te werken met de MPL3115A2_I2CS I2C Mini Module

import smbus

import tijd

# Krijg I2C-bus

bus = smbus. SMBus(1)

# MPL3115A2 adres, 0x60(96)

# Selecteer controleregister, 0x26(38)

# 0xB9 (185) Actieve modus, OSR = 128, Hoogtemetermodus

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

# MPL3115A2 adres, 0x60(96)

# Selecteer dataconfiguratieregister, 0x13(19)

# 0x07(07) Gegevens gereedgebeurtenis ingeschakeld voor hoogte, druk, temperatuur

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

# MPL3115A2 adres, 0x60(96)

# Selecteer controleregister, 0x26(38)

# 0xB9 (185) Actieve modus, OSR = 128, Hoogtemetermodus

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

tijd.slaap(1)

# MPL3115A2 adres, 0x60(96)

# Lees gegevens terug van 0x00(00), 6 bytes

# status, tHeight MSB1, tHeight MSB, tHeight LSB, temp MSB, temp LSB

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

# Converteer de gegevens naar 20-bits

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

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

hoogte = tHoogte / 16.0

cTemp = temperatuur / 16.0

fTemp = cTemp * 1.8 + 32

# MPL3115A2 adres, 0x60(96)

# Selecteer controleregister, 0x26(38)

# 0x39(57) Actieve modus, OSR = 128, Barometermodus

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

tijd.slaap(1)

# MPL3115A2 adres, 0x60(96)

# Lees gegevens terug van 0x00(00), 4 bytes

# status, druk op MSB1, druk op MSB, druk op LSB

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

# Converteer de gegevens naar 20-bits

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

druk = (druk / 4,0) / 1000,0

# Gegevens uitvoeren naar scherm

print "Druk: %.2f kPa" %druk

print "Hoogte: %.2f m" %hoogte

print "Temperatuur in Celsius: %.2f C" %cTemp

print "Temperatuur in Fahrenheit: %.2f F" %fTemp

Stap 4: Toepassingen:

Verschillende toepassingen van de MPL3115A2 omvatten hoogtemeting met hoge nauwkeurigheid, smartphones/tablets, hoogtemeting voor persoonlijke elektronica, enz. Het kan ook worden opgenomen in GPS-geschatte berekeningen, GPS-verbeteringen voor hulpdiensten, kaartassistentie, navigatie en weerstationapparatuur.

Aanbevolen: