Sommario:

Raspberry Pi - Tutorial Java per sensore altimetro di precisione MPL3115A2: 4 passaggi
Raspberry Pi - Tutorial Java per sensore altimetro di precisione MPL3115A2: 4 passaggi

Video: Raspberry Pi - Tutorial Java per sensore altimetro di precisione MPL3115A2: 4 passaggi

Video: Raspberry Pi - Tutorial Java per sensore altimetro di precisione MPL3115A2: 4 passaggi
Video: Raspberry Pi HP203B Precision Barometer & Altimeter Sensor Java Tutorial 2024, Novembre
Anonim
Image
Image

L'MPL3115A2 utilizza un sensore di pressione MEMS con un'interfaccia I2C per fornire dati precisi su pressione/altitudine e temperatura. Le uscite del sensore sono digitalizzate da un ADC a 24 bit ad alta risoluzione. L'elaborazione interna rimuove le attività di compensazione dal sistema MCU host. È in grado di rilevare un cambiamento di soli 0,05 kPa, che equivale a un cambiamento di altitudine di 0,3 m. Ecco la sua dimostrazione con raspberry pi usando il codice java.

Passaggio 1: ciò di cui hai bisogno.

Quello di cui hai bisogno..!!
Quello di cui hai bisogno..!!

1. Lampone Pi

2. MPL3115A2

3. Cavo I²C

4. Scudo I²C per Raspberry Pi

5. Cavo Ethernet

Passaggio 2: connessioni:

Connessioni
Connessioni
Connessioni
Connessioni
Connessioni
Connessioni
Connessioni
Connessioni

Prendi uno scudo I2C per lampone pi e spingilo delicatamente sui pin gpio di lampone pi.

Quindi collegare un'estremità del cavo I2C al sensore MPL3115A2 e l'altra estremità allo schermo I2C.

Collega anche il cavo Ethernet al pi oppure puoi utilizzare un modulo WiFi.

I collegamenti sono mostrati nell'immagine sopra.

Passaggio 3: codice:

Codice
Codice

Il codice java per MPL3115A2 può essere scaricato dal nostro repository github - DCUBE Store.

Ecco il link per lo stesso:

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

Abbiamo usato la libreria pi4j per il codice java, i passaggi per installare pi4j su raspberry pi sono descritti qui:

pi4j.com/install.html

Puoi anche copiare il codice da qui, è fornito come segue:

// Distribuito con una licenza libera.

// Usalo come vuoi, a scopo di lucro o gratuito, a condizione che rientri nelle licenze delle opere associate.

//MPL3115A2

// Questo codice è progettato per funzionare con il Mini Modulo MPL3115A2_I2CS I2C disponibile da

import com.pi4j.io.i2c. I2CBus;

import com.pi4j.io.i2c. I2CDevice;

import com.pi4j.io.i2c. I2CFactory;

import java.io. IOException;

classe pubblica MPL3115A2

{

public static void main(String args) genera un'eccezione

{

// Crea bus I2C

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

// Ottieni il dispositivo I2C, l'indirizzo I2C MPL3115A2 è 0x60(96)

I2CDevice device = Bus.getDevice(0x60);

// Seleziona il registro di controllo

// Modalità attiva, OSR = 128, modalità altimetro

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

// Seleziona il registro di configurazione dei dati

// Evento Data Ready abilitato per altitudine, pressione, temperatura

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

// Seleziona il registro di controllo

// Modalità attiva, OSR = 128, modalità altimetro

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

Thread.sleep(1000);

// Legge 6 byte di dati dall'indirizzo 0x00(00)

// stato, tHeight msb1, tHeight msb, tHeight lsb, temp msb, temp lsb

byte dati = nuovo byte[6];

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

// Converti i dati a 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;

doppia altitudine = tHeight / 16,0;

double cTemp = (temp / 16.0);

doppia fTemp = cTemp * 1,8 + 32;

// Seleziona il registro di controllo

// Modalità attiva, OSR = 128, modalità barometro

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

Thread.sleep(1000);

// Legge 4 byte di dati dall'indirizzo 0x00(00)

// stato, pres msb1, pres msb, pres lsb

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

// Converti i dati a 20 bit

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

doppia pressione = (pres / 4.0) / 1000.0;

// Invia i dati allo schermo

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

System.out.printf("Altitudine: %.2f m %n", altitudine);

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

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

}

}

Passaggio 4: applicazioni:

Varie applicazioni di MPL3115A2 includono altimetria ad alta precisione, smartphone/tablet, altimetria elettronica personale ecc. Può anche essere incorporata in GPS Dead Reckoning, GPS Enhancement per servizi di emergenza, Map Assist, navigazione e apparecchiature per stazioni meteorologiche.

Consigliato: