Съдържание:

Raspberry Pi - MPL3115A2 Прецизен сензор за висотомер Java Урок: 4 стъпки
Raspberry Pi - MPL3115A2 Прецизен сензор за висотомер Java Урок: 4 стъпки

Видео: Raspberry Pi - MPL3115A2 Прецизен сензор за висотомер Java Урок: 4 стъпки

Видео: Raspberry Pi - MPL3115A2 Прецизен сензор за висотомер Java Урок: 4 стъпки
Видео: BeagleBone Black LPS25HB MEMS Pressure Sensor 'C' Code Tutorial 2024, Септември
Anonim
Image
Image

MPL3115A2 използва MEMS сензор за налягане с I2C интерфейс за предоставяне на точни данни за налягане/надморска височина и температура. Изходите на сензора са цифровизирани от 24-битов ADC с висока разделителна способност. Вътрешната обработка премахва компенсационните задачи от хост MCU системата. Той е в състояние да открие промяна само в 0,05 kPa, което се равнява на 0,3 m промяна във височината. Ето демонстрацията му с малиново пи, използващо Java код.

Стъпка 1: Какво ви трябва..

От какво имаш нужда..!!
От какво имаш нужда..!!

1. Малина Пи

2. MPL3115A2

3. Кабел I²C

4. I²C щит за Raspberry Pi

5. Ethernet кабел

Стъпка 2: Връзки:

Връзки
Връзки
Връзки
Връзки
Връзки
Връзки
Връзки
Връзки

Вземете I2C щит за малиново пи и внимателно го натиснете върху щифтовете на gpio на малиново пи.

След това свържете единия край на I2C кабела към сензора MPL3115A2, а другия край към I2C щита.

Свържете също Ethernet кабела към pi или можете да използвате WiFi модул.

Връзките са показани на снимката по -горе.

Стъпка 3: Код:

Код
Код

Java кодът за MPL3115A2 може да бъде изтеглен от нашето хранилище на github- DCUBE Store.

Ето линк за същото:

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

Използвахме библиотека pi4j за java код, стъпките за инсталиране на pi4j на raspberry pi са описани тук:

pi4j.com/install.html

Можете също да копирате кода от тук, той е даден, както следва:

// Разпространява се с лиценз за свободна воля.

// Използвайте го по какъвто начин искате, печалба или безплатно, при условие че се вписва в лицензите на свързаните с него произведения.

// MPL3115A2

// Този код е предназначен за работа с мини модула MPL3115A2_I2CS I2C, достъпен от

внос com.pi4j.io.i2c. I2CBus;

внос com.pi4j.io.i2c. I2CDevice;

внос com.pi4j.io.i2c. I2CFactory;

импортиране на java.io. IOException;

публичен клас MPL3115A2

{

public static void main (String args ) хвърля Exception

{

// Създаване на I2C шина

I2CBus шина = I2CFactory.getInstance (I2CBus. BUS_1);

// Вземете I2C устройство, MPL3115A2 I2C адресът е 0x60 (96)

I2CDevice устройство = Bus.getDevice (0x60);

// Изберете контролен регистър

// Активен режим, OSR = 128, режим на висотомер

device.write (0x26, (байт) 0xB9);

// Изберете регистър за конфигуриране на данни

// Активирано събитие за готовност за данни за надморска височина, налягане, температура

device.write (0x13, (байт) 0x07);

// Изберете контролен регистър

// Активен режим, OSR = 128, режим на висотомер

device.write (0x26, (байт) 0xB9);

Thread.sleep (1000);

// Прочетете 6 байта данни от адрес 0x00 (00)

// статус, tHeight msb1, tHeight msb, tHeight lsb, temp msb, temp lsb

байт данни = нов байт [6];

device.read (0x00, данни, 0, 6);

// Конвертираме данните в 20-бита

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

int temp = ((данни [4] * 256) + (данни [5] & 0xF0)) / 16;

двойна надморска височина = tHeight / 16,0;

двоен cTemp = (temp / 16.0);

двоен fTemp = cTemp * 1.8 + 32;

// Изберете контролен регистър

// Активен режим, OSR = 128, режим на барометър

device.write (0x26, (байт) 0x39);

Thread.sleep (1000);

// Прочетете 4 байта данни от адрес 0x00 (00)

// състояние, pres msb1, pres msb, pres lsb

device.read (0x00, данни, 0, 4);

// Конвертираме данните в 20-бита

int pres = (((данни [1] & 0xFF) * 65536) + ((данни [2] & 0xFF) * 256) + (данни [3] & 0xF0)) / 16;

двойно налягане = (pres / 4.0) / 1000.0;

// Извеждане на данни на екрана

System.out.printf ("Налягане: %.2f kPa %n", налягане);

System.out.printf ("Надморска височина: %.2f m %n", надморска височина);

System.out.printf ("Температура в Целзий: %.2f C %n", cTemp);

System.out.printf ("Температура по Фаренхайт: %.2f F %n", fTemp);

}

}

Стъпка 4: Приложения:

Различните приложения на MPL3115A2 включват високоточна алтиметрия, смартфони/таблети, лична електроника и др. Може също да бъде включена в GPS Dead Reckoning, GPS Enhancement за аварийни услуги, Map Assist, навигация, както и оборудване на метеорологичните станции.

Препоръчано: