Оглавление:

Raspberry Pi - Учебное пособие по Java с прецизионным датчиком высотомера MPL3115A2: 4 шага
Raspberry Pi - Учебное пособие по Java с прецизионным датчиком высотомера MPL3115A2: 4 шага

Видео: Raspberry Pi - Учебное пособие по Java с прецизионным датчиком высотомера MPL3115A2: 4 шага

Видео: Raspberry Pi - Учебное пособие по Java с прецизионным датчиком высотомера MPL3115A2: 4 шага
Видео: Учебное пособие по Python для прецизионного барометра и датчика высотомера Raspberry Pi HP203B 2024, Ноябрь
Anonim
Image
Image

MPL3115A2 использует датчик давления MEMS с интерфейсом I2C для получения точных данных о давлении / высоте и температуре. Выходы датчиков оцифровываются 24-битным АЦП высокого разрешения. Внутренняя обработка удаляет задачи компенсации из системы главного MCU. Он способен обнаруживать изменение всего лишь на 0,05 кПа, что соответствует изменению высоты на 0,3 м. Вот его демонстрация с Raspberry Pi с использованием Java-кода.

Шаг 1: Что вам нужно..

Что вам нужно..!!
Что вам нужно..!!

1. Raspberry Pi

2. MPL3115A2

3. Кабель I²C

4. I²C Shield для Raspberry Pi

5. Кабель Ethernet.

Шаг 2: Подключения:

Подключения
Подключения
Подключения
Подключения
Подключения
Подключения
Подключения
Подключения

Возьмите щит I2C для raspberry pi и осторожно наденьте его на контакты gpio raspberry pi.

Затем подключите один конец кабеля I2C к датчику MPL3115A2, а другой конец - к экрану I2C.

Также подключите кабель Ethernet к Pi, или вы можете использовать модуль Wi-Fi.

Подключения показаны на картинке выше.

Шаг 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, доступным по адресу

import com.pi4j.io.i2c. I2CBus;

import com.pi4j.io.i2c. I2CDevice;

import com.pi4j.io.i2c. I2CFactory;

import java.io. IOException;

открытый класс MPL3115A2

{

public static void main (String args ) выдает исключение

{

// Создаем шину I2C

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

// Получение устройства I2C, адрес I2C MPL3115A2 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

byte data = новый байт [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;

двойное давление = (прес / 4,0) / 1000,0;

// Выводим данные на экран

System.out.printf ("Давление:%.2f кПа% n", давление);

System.out.printf ("Высота:%.2f m% n", высота);

System.out.printf ("Температура в градусах Цельсия:%.2f C% n", cTemp);

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

}

}

Шаг 4: Приложения:

Различные приложения MPL3115A2 включают в себя высокоточный альтиметр, смартфоны / планшеты, персональную электронику альтиметрии и т. Д. Он также может быть включен в систему определения точного счета GPS, усовершенствование GPS для аварийных служб, ассистент карты, навигацию, а также оборудование метеостанции.

Рекомендуемые: