Inhaltsverzeichnis:

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

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

Video: Raspberry Pi - Präzisions-Höhenmesser-Sensor MPL3115A2 Java Tutorial - Gunook
Video: MS5611 Barometer/Altimeter Tutorial with Arduino || BME280 vs MS5611 Comparison 2024, Juni
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 Java-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 Java-Code für MPL3115A2 kann von unserem Github-Repository – DCUBE Store – heruntergeladen werden.

Hier der Link dazu:

github.com/DcubeTechVentures/MPL3115A2/tree/master/Java

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

pi4j.com/install.html

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

// Wird mit einer frei wählbaren Lizenz vertrieben.

// Verwenden Sie es, wie Sie wollen, 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, das ab erhältlich ist

com.pi4j.io.i2c. I2CBus importieren;

com.pi4j.io.i2c. I2CDevice importieren;

com.pi4j.io.i2c. I2CFactory importieren;

import java.io. IOException;

öffentliche Klasse MPL3115A2

{

public static void main(String args) löst Ausnahme aus

{

// I2C-Bus erstellen

I2CBus-Bus = I2CFactory.getInstance(I2CBus. BUS_1);

// I2C-Gerät abrufen, MPL3115A2 I2C-Adresse ist 0x60(96)

I2CDevice-Gerät = Bus.getDevice(0x60);

// Steuerregister auswählen

// Aktiver Modus, OSR = 128, Höhenmessermodus

device.write(0x26, (Byte)0xB9);

// Datenkonfigurationsregister auswählen

// Datenbereit-Ereignis für Höhe, Druck, Temperatur aktiviert

device.write (0x13, (Byte)0x07);

// Steuerregister auswählen

// Aktiver Modus, OSR = 128, Höhenmessermodus

device.write(0x26, (Byte)0xB9);

Thread.sleep(1000);

// 6 Byte Daten von Adresse 0x00(00) lesen

// status, tHeight msb1, tHeight msb, tHeight lsb, temp msb, temp lsb

Byte Daten = neues Byte[6];

device.read (0x00, Daten, 0, 6);

// Konvertieren Sie die Daten in 20-Bit

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

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

doppelte Höhe = tHeight / 16,0;

doppelter cTemp = (temp / 16,0);

doppeltes fTemp = cTemp * 1,8 + 32;

// Steuerregister auswählen

// Aktiver Modus, OSR = 128, Barometermodus

device.write(0x26, (Byte)0x39);

Thread.sleep(1000);

// 4 Byte Daten von Adresse 0x00(00) lesen

// status, pres msb1, pres msb, pres lsb

device.read (0x00, Daten, 0, 4);

// Konvertieren Sie die Daten in 20-Bit

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

doppelter Druck = (pres / 4,0) / 1000,0;

// Daten auf Bildschirm ausgeben

System.out.printf("Druck: %.2f kPa %n", Druck);

System.out.printf("Höhe: %.2f m %n", Höhe);

System.out.printf("Temperatur in Celsius: %.2f C %n", cTemp);

System.out.printf("Temperatur in Fahrenheit: %.2f F %n", 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: