Tabla de contenido:

Raspberry Pi - Tutorial de Java con sensor de altímetro de precisión MPL3115A2: 4 pasos
Raspberry Pi - Tutorial de Java con sensor de altímetro de precisión MPL3115A2: 4 pasos

Video: Raspberry Pi - Tutorial de Java con sensor de altímetro de precisión MPL3115A2: 4 pasos

Video: Raspberry Pi - Tutorial de Java con sensor de altímetro de precisión MPL3115A2: 4 pasos
Video: Raspberry Pi CPS120 Pressure & Temperature Sensor Java Tutorial 2024, Junio
Anonim
Image
Image

El MPL3115A2 emplea un sensor de presión MEMS con una interfaz I2C para proporcionar datos precisos de presión / altitud y temperatura. Las salidas del sensor están digitalizadas por un ADC de alta resolución de 24 bits. El procesamiento interno elimina las tareas de compensación del sistema MCU anfitrión. Es capaz de detectar un cambio de solo 0,05 kPa, lo que equivale a un cambio de altitud de 0,3 m. Aquí está su demostración con raspberry pi usando código java.

Paso 1: ¡¡Lo que necesitas …

Que necesitas..!!
Que necesitas..!!

1. Raspberry Pi

2. MPL3115A2

3. Cable I²C

4. Escudo I²C para Raspberry Pi

5. Cable Ethernet

Paso 2: Conexiones:

Conexiones
Conexiones
Conexiones
Conexiones
Conexiones
Conexiones
Conexiones
Conexiones

Tome un protector I2C para raspberry pi y empújelo suavemente sobre los pines gpio de raspberry pi.

Luego, conecte un extremo del cable I2C al sensor MPL3115A2 y el otro extremo al blindaje I2C.

También conecte el cable Ethernet al pi o puede usar un módulo WiFi.

Las conexiones se muestran en la imagen de arriba.

Paso 3: Código:

Código
Código

El código java para MPL3115A2 se puede descargar desde nuestro repositorio github- DCUBE Store.

Aquí está el enlace para el mismo:

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

Hemos utilizado la biblioteca pi4j para el código java, los pasos para instalar pi4j en raspberry pi se describen aquí:

pi4j.com/install.html

También puede copiar el código desde aquí, se proporciona de la siguiente manera:

// Distribuido con licencia de libre albedrío.

// Úselo de la forma que desee, lucrativa o gratuita, siempre que encaje en las licencias de sus obras asociadas.

// MPL3115A2

// Este código está diseñado para funcionar con el Mini Módulo MPL3115A2_I2CS I2C disponible en

import com.pi4j.io.i2c. I2CBus;

import com.pi4j.io.i2c. I2CDevice;

import com.pi4j.io.i2c. I2CFactory;

import java.io. IOException;

clase pública MPL3115A2

{

public static void main (String args ) arroja una excepción

{

// Crear bus I2C

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

// Obtener dispositivo I2C, MPL3115A2 La dirección I2C es 0x60 (96)

Dispositivo I2CDevice = Bus.getDevice (0x60);

// Seleccionar registro de control

// Modo activo, OSR = 128, modo altímetro

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

// Seleccionar registro de configuración de datos

// Evento de datos listos habilitado para altitud, presión, temperatura

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

// Seleccionar registro de control

// Modo activo, OSR = 128, modo altímetro

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

Thread.sleep (1000);

// Leer 6 bytes de datos de la dirección 0x00 (00)

// estado, tHeight msb1, tHeight msb, tHeight lsb, temp msb, temp lsb

byte datos = nuevo byte [6];

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

// Convierte los datos a 20 bits

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

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

doble altitud = tHeight / 16.0;

doble cTemp = (temp / 16.0);

fTemp doble = cTemp * 1.8 + 32;

// Seleccionar registro de control

// Modo activo, OSR = 128, modo barómetro

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

Thread.sleep (1000);

// Leer 4 bytes de datos de la dirección 0x00 (00)

// estado, pres msb1, pres msb, pres lsb

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

// Convierte los datos a 20 bits

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

presión doble = (pres / 4.0) / 1000.0;

// Salida de datos a la pantalla

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

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

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

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

}

}

Paso 4: Aplicaciones:

Varias aplicaciones de MPL3115A2 incluyen altímetro de alta precisión, teléfonos inteligentes / tabletas, altímetro de electrónica personal, etc. También se puede incorporar en GPS Dead Reckoning, mejora de GPS para servicios de emergencia, asistencia de mapas, navegación y equipo de estación meteorológica.

Recomendado: