Talaan ng mga Nilalaman:

Raspberry Pi - MPL3115A2 Precision Altimeter Sensor Java Tutorial: 4 Mga Hakbang
Raspberry Pi - MPL3115A2 Precision Altimeter Sensor Java Tutorial: 4 Mga Hakbang

Video: Raspberry Pi - MPL3115A2 Precision Altimeter Sensor Java Tutorial: 4 Mga Hakbang

Video: Raspberry Pi - MPL3115A2 Precision Altimeter Sensor Java Tutorial: 4 Mga Hakbang
Video: Arduino Nano - MPL3115A2 Precision Altimeter Sensor Tutorial 2024, Hunyo
Anonim
Image
Image

Ang MPL3115A2 ay gumagamit ng isang sensor ng presyon ng MEMS na may isang interface na I2C upang magbigay ng tumpak na data ng Presyon / Altitude at Temperatura. Ang mga output ng sensor ay na-digitize ng isang mataas na resolusyon na 24-bit ADC. Tinatanggal ng panloob na pagproseso ang mga gawain sa pagbabayad mula sa host MCU system. Ito ay may kakayahang makita ang isang pagbabago sa 0.05 kPa lamang na katumbas ng isang 0.3m na pagbabago sa altitude. Narito ang pagpapakita nito sa raspberry pi gamit ang java code.

Hakbang 1: Ano ang Kailangan Mo.. !

Ang iyong kailangan..!!
Ang iyong kailangan..!!

1. Raspberry Pi

2. MPL3115A2

3. I²C Cable

4. I²C Shield para sa Raspberry Pi

5. Ethernet Cable

Hakbang 2: Mga Koneksyon:

Mga koneksyon
Mga koneksyon
Mga koneksyon
Mga koneksyon
Mga koneksyon
Mga koneksyon
Mga koneksyon
Mga koneksyon

Kumuha ng isang kalasag I2C para sa raspberry pi at dahan-dahang itulak ito sa mga gpio pin ng raspberry pi.

Pagkatapos ikonekta ang isang dulo ng I2C cable sa MPL3115A2 sensor at ang iba pang mga dulo sa I2C kalasag.

Ikonekta din ang Ethernet cable sa pi o maaari kang gumamit ng isang module ng WiFi.

Ang mga koneksyon ay ipinapakita sa larawan sa itaas.

Hakbang 3: Code:

Code
Code

Ang java code para sa MPL3115A2 ay maaaring ma-download mula sa aming github repository- DCUBE Store.

Narito ang link para sa pareho:

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

Gumamit kami ng pi4j library para sa java code, ang mga hakbang upang mai-install ang pi4j sa raspberry pi ay inilarawan dito:

pi4j.com/install.html

Maaari mo ring kopyahin ang code mula dito, ibinibigay ito tulad ng sumusunod:

// Ipinamamahagi ng isang lisensyang malaya ang kalooban.

// Gumamit nito sa anumang paraan na nais mo, kumita o libre, naibigay na umaangkop ito sa mga lisensya ng mga nauugnay na gawa nito.

// MPL3115A2

// Ang code na ito ay dinisenyo upang gumana kasama ang MPL3115A2_I2CS I2C Mini Module na magagamit mula sa

import com.pi4j.io.i2c. I2CBus;

import com.pi4j.io.i2c. I2CDevice;

import com.pi4j.io.i2c. I2CFactory;

i-import ang java.io. IOException;

pampublikong klase MPL3115A2

{

public static void main (String args ) nagtatapon ng Exception

{

// Lumikha ng I2C bus

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

// Kumuha ng I2C device, ang MPL3115A2 I2C address ay 0x60 (96)

I2CDevice aparato = Bus.getDevice (0x60);

// Piliin ang rehistro ng kontrol

// Active mode, OSR = 128, altimeter mode

aparato. magsulat (0x26, (byte) 0xB9);

// Piliin ang rehistro ng pagsasaayos ng data

// Pinagana ang kaganapan na handa na sa data para sa altitude, presyon, temperatura

aparato. magsulat (0x13, (byte) 0x07);

// Piliin ang rehistro ng kontrol

// Active mode, OSR = 128, altimeter mode

aparato. magsulat (0x26, (byte) 0xB9);

Thread.tulog (1000);

// Basahin ang 6 bytes ng data mula sa address 0x00 (00)

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

byte data = bagong byte [6];

aparato.read (0x00, data, 0, 6);

// I-convert ang data sa 20-bit

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

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

dobleng altitude = tKataas / 16.0;

doble cTemp = (temp / 16.0);

doble fTemp = cTemp * 1.8 + 32;

// Piliin ang rehistro ng kontrol

// Aktibo mode, OSR = 128, mode ng barometer

aparato. magsulat (0x26, (byte) 0x39);

Thread.tulog (1000);

// Basahin ang 4 bytes ng data mula sa address 0x00 (00)

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

aparato.read (0x00, data, 0, 4);

// I-convert ang data sa 20-bit

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

dobleng presyon = (pres / 4.0) / 1000.0;

// Output data sa screen

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

System.out.printf ("Altitude:%.2f m% n", altitude);

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

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

}

}

Hakbang 4: Mga Aplikasyon:

Ang iba`t ibang mga aplikasyon ng MPL3115A2 ay may kasamang Mataas na Katumpakan Altimetry, Mga Smartphone / Tablet, Personal na Elektronikong Altimetry atbp Maaari din itong isama sa GPS Dead Reckoning, Pagpapahusay ng GPS para sa Mga Serbisyong Pang-emergency, Tulong sa Mapa, Pag-navigate pati na rin Kagamitan ng Weather Station.

Inirerekumendang: