Inhaltsverzeichnis:

Raspberry Pi - MPL3115A2 Präzisions-Höhenmesser-Python-Tutorial - Gunook
Raspberry Pi - MPL3115A2 Präzisions-Höhenmesser-Python-Tutorial - Gunook

Video: Raspberry Pi - MPL3115A2 Präzisions-Höhenmesser-Python-Tutorial - Gunook

Video: Raspberry Pi - MPL3115A2 Präzisions-Höhenmesser-Python-Tutorial - Gunook
Video: Raspberry Pi MPL3115A2 Precision Altimeter Sensor Python Tutorial 2024, Juli
Anonim
Image
Image

Der MPL3115A2 verwendet einen MEMS-Drucksensor mit einer I2C-Schnittstelle, um genaue Druck-/Höhen- und Temperaturdaten bereitzustellen. Die Sensorausgänge werden von einem hochauflösenden 24-Bit-ADC digitalisiert. Die interne Verarbeitung entfernt Kompensationsaufgaben vom Host-MCU-System. Es ist in der Lage, eine Änderung in nur 0,05 kPa zu erkennen, was einer Höhenänderung von 0,3 m entspricht. Hier ist die Demonstration mit Himbeer-Pi mit Python-Code.

Schritt 1: Was Sie brauchen.

Was du brauchst..!!
Was du brauchst..!!

1. Himbeer-Pi

2. MPL3115A2

3. I²C-Kabel

4. I²C-Shield für Raspberry Pi

5. Ethernet-Kabel

Schritt 2: Anschlüsse:

Anschlüsse
Anschlüsse
Anschlüsse
Anschlüsse
Anschlüsse
Anschlüsse
Anschlüsse
Anschlüsse

Nehmen Sie ein I2C-Schild für Himbeer-Pi und schieben Sie es vorsichtig über die gpio-Pins von Himbeer-Pi.

Verbinden Sie dann das eine Ende des I2C-Kabels mit dem MPL3115A2-Sensor und das andere Ende mit der I2C-Abschirmung.

Verbinden Sie auch das Ethernet-Kabel mit dem Pi oder verwenden Sie ein WiFi-Modul.

Die Anschlüsse sind im Bild oben dargestellt.

Schritt 3: Code:

Code
Code

Der Python-Code für MPL3115A2 kann von unserem Github-Repository heruntergeladen werden - DCUBE Store Community.

Hier ist der Link

Wir haben die SMBus-Bibliothek für Python-Code verwendet, die Schritte zur Installation von SMBus auf Raspberry Pi sind hier beschrieben:

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

Sie können den Code auch von hier kopieren, er wird wie folgt angegeben:

# Wird mit freier Lizenz verteilt.

# Verwenden Sie es nach Belieben, gewinnbringend oder kostenlos, sofern es in die Lizenzen der zugehörigen Werke passt.

# MPL3115A2

# Dieser Code wurde entwickelt, um mit dem MPL3115A2_I2CS I2C Mini-Modul zu arbeiten

smbus importieren

Importzeit

# Holen Sie sich den I2C-Bus

bus = smbus. SMBus(1)

# MPL3115A2-Adresse, 0x60(96)

# Steuerregister auswählen, 0x26(38)

# 0xB9(185) Aktiver Modus, OSR = 128, Höhenmesser-Modus

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

# MPL3115A2 Adresse, 0x60(96)

# Datenkonfigurationsregister auswählen, 0x13(19)

# 0x07(07) Datenbereit-Ereignis für Höhe, Druck, Temperatur aktiviert

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

# MPL3115A2 Adresse, 0x60(96)

# Steuerregister auswählen, 0x26(38)

# 0xB9(185) Aktiver Modus, OSR = 128, Höhenmesser-Modus

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

Zeit. Schlaf(1)

# MPL3115A2 Adresse, 0x60(96)

# Daten von 0x00(00) zurücklesen, 6 Byte

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

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

# Konvertieren Sie die Daten in 20-Bit

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

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

Höhe = tHeight / 16.0

cTemp = Temperatur / 16.0

fTemp = cTemp * 1,8 + 32

# MPL3115A2 Adresse, 0x60(96)

# Steuerregister auswählen, 0x26(38)

# 0x39(57) Aktiver Modus, OSR = 128, Barometer-Modus

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

Zeit. Schlaf(1)

# MPL3115A2 Adresse, 0x60(96)

# Daten von 0x00(00) zurücklesen, 4 Byte

# Status, Drücken Sie MSB1, Drücken Sie MSB, Drücken Sie LSB

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

# Konvertieren Sie die Daten in 20-Bit

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

Druck = (pres / 4.0) / 1000.0

# Daten auf den Bildschirm ausgeben

print "Druck: %.2f kPa" %Druck

print "Höhe: %.2f m" %altitude

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

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

Schritt 4: Anwendungen:

Zu den verschiedenen Anwendungen des MPL3115A2 gehören hochgenaue Höhenmessung, Smartphones/Tablets, persönliche elektronische Höhenmessung usw. Es kann auch in GPS-Dead Reckoning, GPS-Erweiterung für Rettungsdienste, Kartenassistent, Navigation sowie Wetterstationsausrüstung integriert werden.

Empfohlen: