Inhaltsverzeichnis:
2025 Autor: John Day | [email protected]. Zuletzt bearbeitet: 2025-01-13 06:56
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.
1. Himbeer-Pi
2. MPL3115A2
3. I²C-Kabel
4. I²C-Shield für Raspberry Pi
5. Ethernet-Kabel
Schritt 2: 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:
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.