Spisu treści:

Raspberry Pi - MPL3115A2 Precyzyjny czujnik wysokościomierza Samouczek Java: 4 kroki
Raspberry Pi - MPL3115A2 Precyzyjny czujnik wysokościomierza Samouczek Java: 4 kroki

Wideo: Raspberry Pi - MPL3115A2 Precyzyjny czujnik wysokościomierza Samouczek Java: 4 kroki

Wideo: Raspberry Pi - MPL3115A2 Precyzyjny czujnik wysokościomierza Samouczek Java: 4 kroki
Wideo: Układy MPL3115A2 I2C, MAG3110, TMP01ESZ, AD8217BRMZ, ADM4073HWRJZ-REEL7 od AVT Korporacja 2024, Wrzesień
Anonim
Image
Image

MPL3115A2 wykorzystuje czujnik ciśnienia MEMS z interfejsem I2C w celu zapewnienia dokładnych danych dotyczących ciśnienia/wysokości i temperatury. Wyjścia czujnika są digitalizowane przez 24-bitowy przetwornik ADC o wysokiej rozdzielczości. Przetwarzanie wewnętrzne usuwa zadania dotyczące wynagrodzeń z systemu hosta MCU. Jest w stanie wykryć zmianę tylko o 0,05 kPa, co odpowiada zmianie wysokości o 0,3 m. Oto jego demonstracja z raspberry pi przy użyciu kodu java.

Krok 1: Czego potrzebujesz.

Czego potrzebujesz..!!
Czego potrzebujesz..!!

1. Raspberry Pi

2. MPL3115A2

3. Kabel I²C

4. Osłona I²C dla Raspberry Pi

5. Kabel Ethernet

Krok 2: Połączenia:

Znajomości
Znajomości
Znajomości
Znajomości
Znajomości
Znajomości
Znajomości
Znajomości

Weź nakładkę I2C dla raspberry pi i delikatnie nałóż ją na piny gpio raspberry pi.

Następnie podłącz jeden koniec kabla I2C do czujnika MPL3115A2, a drugi koniec do ekranu I2C.

Podłącz również kabel Ethernet do pi lub możesz użyć modułu WiFi.

Połączenia prezentuje powyższy obrazek.

Krok 3: Kod:

Kod
Kod

Kod Java dla MPL3115A2 można pobrać z naszego repozytorium github-DCUBE Store.

Oto link do tego samego:

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

Użyliśmy biblioteki pi4j do kodu java, kroki instalacji pi4j na raspberry pi są opisane tutaj:

pi4j.com/install.html

Możesz również skopiować kod stąd, jest on podany w następujący sposób:

// Rozprowadzane z wolną licencją.

// Używaj go w dowolny sposób, z zyskiem lub za darmo, pod warunkiem, że pasuje do licencji powiązanych z nim dzieł.

// MPL3115A2

// Ten kod jest przeznaczony do pracy z modułem Mini MPL3115A2_I2CS I2C dostępnym od

importuj com.pi4j.io.i2c. I2CBus;

importuj com.pi4j.io.i2c. I2CDurządzenie;

importuj com.pi4j.io.i2c. I2CFabryka;

import java.io. IOException;

klasa publiczna MPL3115A2

{

public static void main(String args) wyrzuca Wyjątek

{

// Utwórz magistralę I2C

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

// Pobierz urządzenie I2C, adres MPL3115A2 I2C to 0x60(96)

Urządzenie I2CDevice = Bus.getDevice(0x60);

// Wybierz rejestr kontrolny

// Tryb aktywny, OSR = 128, tryb wysokościomierza

urządzenie.write(0x26, (bajt)0xB9);

// Wybierz rejestr konfiguracji danych

// Zdarzenie gotowości danych włączone dla wysokości, ciśnienia, temperatury

urządzenie.write(0x13, (bajt)0x07);

// Wybierz rejestr kontrolny

// Tryb aktywny, OSR = 128, tryb wysokościomierza

urządzenie.write(0x26, (bajt)0xB9);

Wątek.sen(1000);

// Odczytaj 6 bajtów danych z adresu 0x00(00)

// stan, wysokość msb1, wysokość msb, wysokość msb, temp msb, temp lsb

bajt dane = nowy bajt[6];

urządzenie.odczyt(0x00, dane, 0, 6);

// Konwertuj dane na 20-bitowe

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

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

podwójna wysokość = wysokość / 16,0;

podwójne cTemp = (temp / 16,0);

podwójne fTemp = cTemp * 1,8 + 32;

// Wybierz rejestr kontrolny

// Tryb aktywny, OSR = 128, tryb barometru

urządzenie.write(0x26, (bajt)0x39);

Wątek.sen(1000);

// Odczytaj 4 bajty danych z adresu 0x00(00)

// status, naciśnij msb1, naciśnij msb, naciśnij lsb

urządzenie.odczyt(0x00, dane, 0, 4);

// Konwertuj dane na 20-bitowe

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

podwójne ciśnienie = (pres / 4.0) / 1000,0;

// Prześlij dane na ekran

System.out.printf("Ciśnienie: %.2f kPa %n", ciśnienie);

System.out.printf("Wysokość: %.2f m %n", wysokość);

System.out.printf("Temperatura w stopniach Celsjusza: %.2f C %n", cTemp);

System.out.printf("Temperatura w stopniach Fahrenheita: %.2f F %n", fTemp);

}

}

Krok 4: Aplikacje:

Różne zastosowania MPL3115A2 obejmują wysokościomierze o wysokiej dokładności, smartfony/tablety, wysokościomierze elektroniki osobistej itp. Można go również włączyć do systemu GPS Dead Reckoning, ulepszeń GPS dla służb ratunkowych, asystenta mapy, nawigacji, a także wyposażenia stacji pogodowej.

Zalecana: