Índice:
Vídeo: Raspberry Pi - Sensor de altímetro de precisão MPL3115A2 Java Tutorial: 4 etapas
2024 Autor: John Day | [email protected]. Última modificação: 2024-01-30 11:37
O MPL3115A2 emprega um sensor de pressão MEMS com uma interface I2C para fornecer dados precisos de pressão / altitude e temperatura. As saídas do sensor são digitalizadas por um ADC de alta resolução de 24 bits. O processamento interno remove as tarefas de compensação do sistema MCU host. Ele é capaz de detectar uma mudança em apenas 0,05 kPa, o que equivale a uma mudança de 0,3 m na altitude. Aqui está sua demonstração com raspberry pi usando código java.
Etapa 1: O que você precisa..
1. Raspberry Pi
2. MPL3115A2
3. Cabo I²C
4. Escudo I²C para Raspberry Pi
5. Cabo Ethernet
Etapa 2: Conexões:
Pegue um escudo I2C para raspberry pi e empurre-o suavemente sobre os pinos gpio de raspberry pi.
Em seguida, conecte uma extremidade do cabo I2C ao sensor MPL3115A2 e a outra extremidade à blindagem I2C.
Também conecte o cabo Ethernet ao pi ou você pode usar um módulo WiFi.
As conexões são mostradas na imagem acima.
Etapa 3: Código:
O código java para MPL3115A2 pode ser baixado de nosso repositório github- DCUBE Store.
Aqui está o link para o mesmo:
github.com/DcubeTechVentures/MPL3115A2/tree/master/Java
Usamos a biblioteca pi4j para o código java, as etapas para instalar o pi4j no raspberry pi são descritas aqui:
pi4j.com/install.html
Você também pode copiar o código daqui, ele é fornecido da seguinte forma:
// Distribuído com uma licença de livre arbítrio.
// Use-o como quiser, com ou sem lucro, desde que se enquadre nas licenças das suas obras associadas.
// MPL3115A2
// Este código é projetado para funcionar com o Mini Módulo MPL3115A2_I2CS I2C disponível em
import com.pi4j.io.i2c. I2CBus;
import com.pi4j.io.i2c. I2CDevice;
import com.pi4j.io.i2c. I2CFactory;
import java.io. IOException;
classe pública MPL3115A2
{
public static void main (String args ) lança exceção
{
// Criar barramento I2C
I2CBus Bus = I2CFactory.getInstance (I2CBus. BUS_1);
// Obter dispositivo I2C, o endereço MPL3115A2 I2C é 0x60 (96)
Dispositivo I2CDevice = Bus.getDevice (0x60);
// Selecione o registro de controle
// Modo ativo, OSR = 128, modo altímetro
device.write (0x26, (byte) 0xB9);
// Selecione o registro de configuração de dados
// Evento Data Ready habilitado para altitude, pressão, temperatura
device.write (0x13, (byte) 0x07);
// Selecione o registro de controle
// Modo ativo, OSR = 128, modo altímetro
device.write (0x26, (byte) 0xB9);
Thread.sleep (1000);
// Lê 6 bytes de dados do endereço 0x00 (00)
// status, tHeight msb1, tHeight msb, tHeight lsb, temp msb, temp lsb
byte data = novo byte [6];
device.read (0x00, data, 0, 6);
// Converta os dados para 20 bits
int tHeight = ((((dados [1] e 0xFF) * 65536) + ((dados [2] e 0xFF) * 256) + (dados [3] e 0xF0)) / 16);
int temp = ((dados [4] * 256) + (dados [5] e 0xF0)) / 16;
altitude dupla = tHeight / 16,0;
cTemp duplo = (temp / 16,0);
fTemp duplo = cTemp * 1,8 + 32;
// Selecione o registro de controle
// Modo ativo, OSR = 128, modo barômetro
device.write (0x26, (byte) 0x39);
Thread.sleep (1000);
// Lê 4 bytes de dados do endereço 0x00 (00)
// status, pres msb1, pres msb, pres lsb
device.read (0x00, data, 0, 4);
// Converta os dados para 20 bits
int pres = (((dados [1] e 0xFF) * 65536) + ((dados [2] e 0xFF) * 256) + (dados [3] e 0xF0)) / 16;
pressão dupla = (pres / 4,0) / 1000,0;
// Dados de saída para a tela
System.out.printf ("Pressão:%.2f kPa% n", pressão);
System.out.printf ("Altitude:%.2f m% n", altitude);
System.out.printf ("Temperatura em Celsius:%.2f C% n", cTemp);
System.out.printf ("Temperatura em Fahrenheit:%.2f F% n", fTemp);
}
}
Etapa 4: Aplicativos:
Várias aplicações de MPL3115A2 incluem Altimetria de Alta Precisão, Smartphones / Tablets, Altimetria Eletrônica Pessoal, etc. Ele também pode ser incorporado em GPS Dead Reckoning, Melhoria de GPS para Serviços de Emergência, Map Assist, Navegação, bem como Equipamentos de Estação Meteorológica.
Recomendado:
Pingo: um iniciador de bola de pingue-pongue com detecção de movimento e alta precisão: 8 etapas
Pingo: um lançador de bola de pingue-pongue com detecção de movimento e alta precisão: Kevin Nitiema, Esteban Poveda, Anthony Mattacchione, Raphael Kay
DropArt - Colisor fotográfico de precisão de duas gotas: 11 etapas (com imagens)
DropArt - Colisor fotográfico de duas gotas de precisão: Olá a todos, Neste instrutível apresento meu projeto para um colisor de duas gotas de líquido controlado por computador. Antes de começarmos com os detalhes do design, acho que faz sentido explicar exatamente qual é o propósito do design.Um divertido, interessante
Relógio de precisão: 3 etapas
Relógio de precisão: Todos nós precisamos de relógios, então por que não fazer o seu próprio neste instrutível? Vou mostrar a você como fazer um relógio de precisão, uma vez que você configurou irá automaticamente manter o controle da hora atual no fundo de tudo. Embora também precise de muito pouco
Configurando o DS3231 RTC (Real Time Clock) com precisão, rapidez e automatização usando Java (+ -1s): 3 etapas
Configurando o DS3231 RTC (Real Time Clock) com precisão, rápido e automatizado usando Java (+ -1s): Este Instructable vai mostrar como configurar a hora em um DS3231 Real Time Clock usando um Arduino e um pequeno aplicativo Java que usa a conexão serial do Arduino. A lógica básica deste programa: 1. O Arduino envia uma solicitação serial
Registro de dados remoto de alta precisão usando multímetro / Arduino / pfodApp: 10 etapas (com imagens)
Registro de dados remoto de alta precisão usando multímetro / Arduino / pfodApp: atualizado em 26 de abril de 2017 Circuito e placa revisados para uso com medidores USB 4000ZC.Nenhuma codificação Android necessária. para registro e