Taula de continguts:

Raspberry Pi - Sensor d’altímetre de precisió MPL3115A2 Tutorial de Java: 4 passos
Raspberry Pi - Sensor d’altímetre de precisió MPL3115A2 Tutorial de Java: 4 passos

Vídeo: Raspberry Pi - Sensor d’altímetre de precisió MPL3115A2 Tutorial de Java: 4 passos

Vídeo: Raspberry Pi - Sensor d’altímetre de precisió MPL3115A2 Tutorial de Java: 4 passos
Vídeo: Учебное пособие по Python для прецизионного барометра и датчика высотомера Raspberry Pi HP203B 2024, Juny
Anonim
Image
Image

El MPL3115A2 utilitza un sensor de pressió MEMS amb una interfície I2C per proporcionar dades de pressió / altitud i temperatura precises. Les sortides del sensor es digitalitzen mitjançant un ADC de 24 bits d'alta resolució. El processament intern elimina les tasques de compensació del sistema MCU amfitrió. És capaç de detectar un canvi de només 0,05 kPa que equival a un canvi d’altitud de 0,3 m. Aquí teniu la demostració amb raspberry pi mitjançant codi Java.

Pas 1: el que necessiteu..

Què necessites..!!
Què necessites..!!

1. Raspberry Pi

2. MPL3115A2

3. Cable I²C

4. Escut I²C per a Raspberry Pi

5. Cable Ethernet

Pas 2: connexions:

Connexions
Connexions
Connexions
Connexions
Connexions
Connexions
Connexions
Connexions

Agafeu un escut I2C per a raspberry pi i passeu-lo suaument per sobre dels pins gpio de raspberry pi.

A continuació, connecteu l'extrem del cable I2C al sensor MPL3115A2 i l'altre extrem a l'escut I2C.

Connecteu també el cable Ethernet al pi o podeu utilitzar un mòdul WiFi.

Les connexions es mostren a la imatge superior.

Pas 3: Codi:

Codi
Codi

El codi java per a MPL3115A2 es pot descarregar des del nostre dipòsit github- DCUBE Store.

Aquí teniu l’enllaç per al mateix:

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

Hem utilitzat la biblioteca pi4j per al codi Java; aquí es descriuen els passos per instal·lar pi4j al raspberry pi:

pi4j.com/install.html

També podeu copiar el codi des d’aquí, es dóna de la següent manera:

// Distribuïda amb llicència de lliure voluntat.

// Utilitzeu-lo de la manera que vulgueu, sense ànim de lucre o de franc, sempre que encaixi en les llicències de les obres associades.

// MPL3115A2

// Aquest codi està dissenyat per funcionar amb el mini mòdul MPL3115A2_I2CS I2C disponible a

import com.pi4j.io.i2c. I2CBus;

import com.pi4j.io.i2c. I2CDevice;

import com.pi4j.io.i2c. I2CFactory;

importació java.io. IOException;

classe pública MPL3115A2

{

public static void main (String args ) llança Excepció

{

// Crea un bus I2C

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

// Obteniu un dispositiu I2C, l'adreça I2C MPL3115A2 és 0x60 (96)

I2CDevice device = Bus.getDevice (0x60);

// Seleccioneu el registre de control

// Mode actiu, OSR = 128, mode altímetre

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

// Seleccioneu el registre de configuració de dades

// Esdeveniment preparat per a dades habilitat per a altitud, pressió i temperatura

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

// Seleccioneu el registre de control

// Mode actiu, OSR = 128, mode altímetre

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

Thread.sleep (1000);

// Llegir 6 bytes de dades de l'adreça 0x00 (00)

// estat, tHeight msb1, tHeight msb, tHight lsb, temp msb, temp lsb

byte dades = byte nou [6];

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

// Converteix les dades a 20 bits

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

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

doble altitud = tAlçada / 16,0;

doble cTemp = (temp / 16.0);

doble fTemp = cTemp * 1,8 + 32;

// Seleccioneu el registre de control

// Mode actiu, OSR = 128, mode baròmetre

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

Thread.sleep (1000);

// Llegir 4 bytes de dades de l'adreça 0x00 (00)

// estat, pres msb1, pres msb, pres lsb

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

// Converteix les dades a 20 bits

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

doble pressió = (pres / 4.0) / 1000.0;

// Sortiu les dades a la pantalla

System.out.printf ("Pressió:%.2f kPa% n", pressió);

System.out.printf ("Altitud:%.2f m% n", altitud);

System.out.printf ("Temperatura en centígrads:%.2f C% n", cTemp);

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

}

}

Pas 4: aplicacions:

Diverses aplicacions de MPL3115A2 inclouen altimetria d’alta precisió, telèfons intel·ligents / tauletes, altimetria electrònica personal, etc. També es pot incorporar a GPS Dead Reckoning, millora GPS per a serveis d’emergència, assistència de mapes, navegació i equips d’estacions meteorològiques.

Recomanat: