Tabla de contenido:

Usando Raspberry Pi, mida la altitud, la presión y la temperatura con MPL3115A2: 6 pasos
Usando Raspberry Pi, mida la altitud, la presión y la temperatura con MPL3115A2: 6 pasos

Video: Usando Raspberry Pi, mida la altitud, la presión y la temperatura con MPL3115A2: 6 pasos

Video: Usando Raspberry Pi, mida la altitud, la presión y la temperatura con MPL3115A2: 6 pasos
Video: Altitude Sensor | High Altitude Balloon Project | Raspberry Pi 3 B+ 2024, Mes de julio
Anonim
Image
Image
Equipo indispensable que necesitamos
Equipo indispensable que necesitamos

¡Sepa lo que posee y sepa por qué lo posee

Es intrigante. Vivimos en la era de la automatización de Internet, que se sumerge en una plétora de nuevas aplicaciones. Como entusiastas de la informática y la electrónica, hemos aprendido mucho con la Raspberry Pi y hemos decidido combinar nuestros intereses. Este proyecto demora aproximadamente una hora si es nuevo en las conexiones I²C y la configuración del software, y es una excelente manera de expandir las capacidades de MPL3115A2 con Raspberry Pi en Java.

Paso 1: Equipo indispensable que necesitamos

Equipo indispensable que necesitamos
Equipo indispensable que necesitamos
Equipo indispensable que necesitamos
Equipo indispensable que necesitamos
Equipo indispensable que necesitamos
Equipo indispensable que necesitamos

1. Raspberry Pi

El primer paso fue obtener una placa Raspberry Pi. Este pequeño genio es utilizado por aficionados, profesores y para crear entornos innovadores.

2. Escudo I2C para Raspberry Pi

El INPI2 (adaptador I2C) proporciona a la Raspberry Pi 2/3 un puerto I²C para usar con varios dispositivos I2C. Está disponible en Dcube Store.

3. Altímetro, sensor de presión y temperatura, MPL3115A2

El MPL3115A2 es un sensor de presión MEMS con una interfaz I²C para proporcionar datos de presión, altitud y temperatura. Este sensor utiliza el protocolo I²2 para comunicarse. Compramos este sensor en Dcube Store.

4. Cable de conexión

Usamos el cable de conexión I²C disponible en Dcube Store.

5. Cable micro USB

La Raspberry Pi funciona con un suministro micro USB.

6. Mejora del acceso a Internet: cable Ethernet / módulo WiFi

Una de las primeras cosas que querrá hacer es conectar su Raspberry Pi a Internet. Puede conectarse mediante un cable Ethernet o con un adaptador inalámbrico USB Nano WiFi.

7. Cable HDMI (opcional, su elección)

Puede conectar Raspberry Pi a un monitor mediante un cable HDMI. Además, puede acceder de forma remota a su Raspberry Pi mediante SSH / PuTTY.

Paso 2: Conexiones de hardware para armar el circuito

Conexiones de hardware para armar el circuito
Conexiones de hardware para armar el circuito
Conexiones de hardware para armar el circuito
Conexiones de hardware para armar el circuito

Realice el circuito según el esquema que se muestra. En general, las conexiones son bastante simples. Siga las instrucciones y las imágenes anteriores y no debería tener problemas. Mientras planificamos, analizamos el hardware y la codificación, así como los conceptos básicos de la electrónica. Queríamos diseñar un esquema electrónico simple para este proyecto. En el diagrama, puede observar las diferentes partes, componentes de potencia y sensor I²C siguiendo los protocolos de comunicación I²C. Con suerte, esto ilustra lo simple que es la electrónica para este proyecto.

Conexión de Raspberry Pi y I2C Shield

Para esto, Raspberry Pi y coloque el I²C Shield en él. Presione el escudo suavemente (vea la foto).

Conexión del sensor y Raspberry Pi

Tome el sensor y conecte el cable I²C con él. Asegúrese de que la salida I²C SIEMPRE se conecte a la entrada I²C. Lo mismo le seguirá la Raspberry Pi con el blindaje I²C montado sobre él. Tenemos el blindaje I²C y los cables de conexión I²C de nuestro lado como una gran ventaja ya que solo nos queda la opción plug and play. No más problemas de pines y cableado y, por lo tanto, la confusión se ha ido. Qué alivio imaginarse a sí mismo en la red de cables y meterse en eso. ¡Tan simple como esto!

Nota: El cable marrón siempre debe seguir la conexión de tierra (GND) entre la salida de un dispositivo y la entrada de otro dispositivo

La conectividad a Internet es crucial

Para que nuestro proyecto sea un éxito, necesitamos un acceso a Internet para nuestra Raspberry Pi. En esto, tiene opciones como conectar un cable Ethernet (LAN). Además, como una forma alternativa pero impresionante de utilizar un adaptador WiFi.

Encendido del circuito

Enchufe el cable Micro USB en el conector de alimentación de Raspberry Pi. Enciéndelo y listo, ¡estamos listos!

Conexión a la pantalla

Podemos tener el cable HDMI conectado a un monitor o podemos ser un poco innovadores para hacer nuestro Pi sin cabeza (usando -SSH / PuTTY) lo que ayuda a reducir el costo adicional porque de alguna manera somos aficionados.

Cuando un hábito comienza a costar dinero, se llama pasatiempo

Paso 3: Programación de Raspberry Pi en Java

Programación Raspberry Pi en Java
Programación Raspberry Pi en Java

El código Java para el sensor Raspberry Pi y MPL3115A2. Está disponible en nuestro repositorio de Github.

Antes de continuar con el código, asegúrese de leer las instrucciones dadas en el archivo Léame y configure su Raspberry Pi de acuerdo con él. Solo tomará un momento hacerlo. La altitud se calcula a partir de la presión utilizando la siguiente ecuación:

h = 44330.77 {1 - (p / p0) ^ 0.1902632} + OFF_H (valor de registro)

donde p0 = presión al nivel del mar (101326 Pa) y h está en metros. El MPL3115A2 usa este valor ya que el registro de compensación se define como 2 Pascales por LSB. El código está claramente frente a usted y está en la forma más simple que pueda imaginar y no debería tener problemas.

También puede copiar el código Java de trabajo para este sensor desde aquí.

// 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 ControlEverything.com. //

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 ) throws Exception {// Crear bus I2C Bus I2CBus = I2CFactory.getInstance (I2CBus. BUS_1); // Obtener dispositivo I2C, MPL3115A2 La dirección I2C es 0x60 (96) I2CDevice device = 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 data = new 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, dispositivo en modo barómetro.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, data, 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; // Enviar 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: La practicidad del código (en funcionamiento)

La practicidad del código (en funcionamiento)
La practicidad del código (en funcionamiento)

Ahora, descargue (o git pull) el código y ábralo en la Raspberry Pi. Ejecute los comandos para compilar y cargar el código en el terminal y vea la salida en Monitor. Después de unos segundos, mostrará todos los parámetros. Después de asegurarse de que todo funciona sin problemas, puede llevar este proyecto a un proyecto más grande.

Paso 5: Aplicaciones y características

El uso común del sensor del altímetro de precisión MPL3115A2 es en aplicaciones como mapa (asistente de mapa, navegación), brújula magnética o GPS (navegación por estima, mejora de GPS para servicios de emergencia), altímetro de alta precisión, teléfonos inteligentes / tabletas, altímetro de electrónica personal y Satélites (Equipo de Estación Meteorológica / Predicción).

Por ejemplo Con este sensor y Rasp Pi, puede construir un altímetro visual digital, la pieza más importante del equipo de paracaidismo, que puede medir la altitud, la presión del aire y la temperatura. Puede agregar gasa de viento y otros sensores para que sea más interesante.

Paso 6: Conclusión

Dado que el programa es increíblemente personalizable, hay muchas formas interesantes en las que puede ampliar este proyecto y hacerlo aún mejor. Por ejemplo, un altímetro / interferómetro incluiría varios altímetros montados en mástiles que adquirirían mediciones simultáneamente, proporcionando así una cobertura de área amplia continua, de uno o varios altímetros. Tenemos un interesante video tutorial en YouTube que puede ayudarlo a comprender mejor este proyecto.

Recomendado: