Sadržaj:

Raspberry Pi - MPL3115A2 Precizni senzor visinomjera Java Vodič: 4 koraka
Raspberry Pi - MPL3115A2 Precizni senzor visinomjera Java Vodič: 4 koraka

Video: Raspberry Pi - MPL3115A2 Precizni senzor visinomjera Java Vodič: 4 koraka

Video: Raspberry Pi - MPL3115A2 Precizni senzor visinomjera Java Vodič: 4 koraka
Video: Raspberry Pi MPL3115A2 Precision Altimeter Sensor Python Tutorial 2024, Studeni
Anonim
Image
Image

MPL3115A2 koristi MEMS senzor tlaka s I2C sučeljem za pružanje točnih podataka o tlaku/nadmorskoj visini i temperaturi. Izlazi senzora digitalizirani su 24-bitnim ADC-om visoke rezolucije. Interna obrada uklanja zadatke kompenzacije iz host MCU sustava. Sposoban je otkriti promjenu od samo 0,05 kPa, što je jednako promjeni visine 0,3 m. Evo njegove demonstracije s malinom pi pomoću java koda.

Korak 1: Što vam treba..

Što trebaš..!!
Što trebaš..!!

1. Malina Pi

2. MPL3115A2

3. I²C kabel

4. I²C štit za Raspberry Pi

5. Ethernet kabel

Korak 2: Veze:

Priključci
Priključci
Priključci
Priključci
Priključci
Priključci
Priključci
Priključci

Uzmite I2C štit za malinu pi i nježno je gurnite preko gpio igle maline pi.

Zatim spojite jedan kraj I2C kabela na senzor MPL3115A2, a drugi kraj na I2C štit.

Također priključite Ethernet kabel na pi ili možete koristiti WiFi modul.

Priključci su prikazani na gornjoj slici.

Korak 3: Kôd:

Kodirati
Kodirati

Java kôd za MPL3115A2 može se preuzeti s našeg github spremišta- DCUBE Store.

Evo linka za isto:

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

Za java kod koristili smo biblioteku pi4j, koraci za instaliranje pi4j na malinu pi opisani su ovdje:

pi4j.com/install.html

Ovdje možete i kopirati kôd, dat je na sljedeći način:

// Distribuirano s licencom slobodne volje.

// Koristite ga kako god želite, profitno ili besplatno, pod uvjetom da se uklapa u licence povezanih djela.

// MPL3115A2

// Ovaj kôd je dizajniran za rad s MPL3115A2_I2CS I2C mini modulom dostupnim na

uvoz com.pi4j.io.i2c. I2CBus;

uvoz com.pi4j.io.i2c. I2CDevice;

uvoz com.pi4j.io.i2c. I2CFactory;

import java.io. IOException;

javna klasa MPL3115A2

{

public static void main (String args ) baca iznimku

{

// Kreiranje sabirnice I2C

I2CBus sabirnica = I2CFactory.getInstance (I2CBus. BUS_1);

// Nabavite I2C uređaj, MPL3115A2 I2C adresa je 0x60 (96)

I2CDevice uređaj = Bus.getDevice (0x60);

// Odaberite kontrolni registar

// Aktivni način rada, OSR = 128, način rada visinomjera

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

// Odabir registra konfiguracije podataka

// Omogućen događaj spremnosti podataka za nadmorsku visinu, tlak, temperaturu

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

// Odaberite kontrolni registar

// Aktivni način rada, OSR = 128, način rada visinomjera

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

Navoj.spavanje (1000);

// Očitavanje 6 bajtova podataka s adrese 0x00 (00)

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

bajt podatak = novi bajt [6];

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

// Pretvorimo podatke u 20-bitne

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

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

dvostruka nadmorska visina = tHeight / 16,0;

dvostruki cTemp = (temp / 16,0);

dvostruki fTemp = cTemp * 1,8 + 32;

// Odaberite kontrolni registar

// Aktivni način rada, OSR = 128, način rada barometra

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

Navoj.spavanje (1000);

// Očitavanje 4 bajta podataka s adrese 0x00 (00)

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

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

// Pretvorimo podatke u 20-bitne

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

dvostruki tlak = (pres / 4,0) / 1000,0;

// Izlaženje podataka na zaslon

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

System.out.printf ("Nadmorska visina: %.2f m %n", nadmorska visina);

System.out.printf ("Temperatura u Celzijusima: %.2f C %n", cTemp);

System.out.printf ("Temperatura u Fahrenheitu: %.2f F %n", fTemp);

}

}

Korak 4: Aplikacije:

Različite primjene MPL3115A2 uključuju altimetriju visoke točnosti, pametne telefone/tablete, altimetriju osobne elektronike itd. Također se može uključiti u GPS mrtvo računanje, GPS poboljšanje za hitne službe, pomoć pri zemljovidu, navigaciju kao i opremu meteorološke postaje.

Preporučeni: