Барометр v2: инструкция, схемы и примеры использования

Используйте барометр для определения атмосферного давления, высоты над уровнем моря и температуры окружающей среды.

Если вам необходимо определить положение вашего девайса в пространстве, обратите внимания на IMU-сенсор на 10 степеней свободы.

Видеообзор

Барометр в обзоре IMU-модуля.

Пример работы для Arduino и XOD

В качестве мозга для считывания показаний с датчика рассмотрим платформу из серии Arduino, например, Uno.

На аппаратном уровне инерционный модуль общается с управляющей электроникой по шине I²C. Но не переживайте о битах и байтах: используйте библиотеку TroykaIMU и на выходе получите готовы данные.

Схема устройства

Подключите барометр к пинам питания и шины I²C — SDA и SCL на платформе Uno. Для коммуникации используйте соединительные провода «мама-папа»

Для быстрой сборки и отладки устройства возьмите плату расширения Troyka Shield, которая одевается сверху на Arduino Uno методом бутерброда. Для коммуникации используйте трёхпроводной шлейф «мама-мама», который идёт в комплекте с датчиком.

С Troyka Slot Shield провода не понадобятся вовсе.

Вывод данных

В качестве примера выведем в Serial-порт атмосферное давление, высоту над уровнем моря и температуру окружающей среды.

barometer-read-data.ino
// Библиотека для работы с модулями IMU
#include <TroykaIMU.h>
 
// Создаём объект для работы с акселерометром
Barometer barometer;
 
void setup() {
    // Открываем Serial-порт
    Serial.begin(9600);
    // Выводим сообщение о начале инициализации
    Serial.println("Barometer begin");
    // Инициализируем барометр
    barometer.begin();
    // Выводим сообщение об удачной инициализации
    Serial.println("Initialization completed");
}
 
void loop() {
    // Создаём переменную для значения атмосферного давления в Паскалях
    float pressurePascals = barometer.readPressurePascals();
    // Создаём переменную для значения атмосферного давления в мм рт.ст.
    float pressureMillimetersHg = barometer.readPressureMillimetersHg();
    // Создаём переменную для значения высоты над уровнем море
    float altitude = barometer.readAltitude();
    // Создаём переменную для значения температуры окружающей среды
    float temperature = barometer.readTemperatureC();
 
    // Вывод данных в Serial-порт
    Serial.print("Pressure: ");
    Serial.print(pressurePascals);
    Serial.print(" Pa\t");
    Serial.print(pressureMillimetersHg);
    Serial.print(" mmHg\t");
    Serial.print("Height: ");
    Serial.print(altitude);
    Serial.print(" m \t");
    Serial.print("Temperature: ");
    Serial.print(temperature);
    Serial.println(" C");
    delay(100);
}

Пример для Espruino

В качестве мозга для считывания показаний с датчика рассмотрим платформы из серии Espruino, например, Iskra JS.

Схема устройства

Подключите барометр к пинам питания и шины I²C — SDA и SCL платформы Iskra JS. Для коммуникации используйте соединительные провода «мама-папа».

Для быстрой сборки и отладки устройства возьмите плату расширения Troyka Shield, которая одевается сверху на Iskra JS методом бутерброда. Для коммуникации используйте трёхпроводной шлейф «мама-мама», который идёт в комплекте с датчиком.

С Troyka Slot Shield провода не понадобятся вовсе.

Вывод данных

В качестве примера выведем в консоль атмосферное давление, высоту над уровнем моря и температуру окружающей среды.

barometer-read-data.js
// Настраиваем I2C1
I2C1.setup({sda: SDA, scl: SCL, bitrate: 400000});
 
// Создаем новый экземпляр, который работает с I2C1
var baro = require("LPS25HB").connect(I2C1);
 
// Возвращает значение переданной функции
baro.getPressure(print);

Пример для Raspberry Pi

В качестве мозга для считывания показаний с датчика рассмотрим одноплатные компьютеры Raspberry Pi, например, Raspberry Pi 4.

Схема устройства

Подключите барометр к пинам SDA и SCL шины I²C компьютера Raspberry Pi.

Для быстрой сборки и отладки устройства возьмите плату расширения Troyka Cap, которая надевается сверху на малину методом бутерброда.

Программная настройка

Вывод данных

А написать пример кода для Raspberry Pi оставим вам домашним заданием.

Элементы платы

Барометр на LPS25HB

Барометр выполнен на чипе LPS25HB по технологии MEMS от компании STMicroelectronics. Адрес устройства по умолчанию равен 0x5С, но может быть изменен на 0x5D. Подробности читайте в разделе смена адреса модуля.

Регулятор напряжения

Линейный понижающий регулятор напряжения NCP698SQ33T1G обеспечивает питание MEMS-чипа и других компонентов сенсора. Диапазон входного напряжения от 3,3 до 5 вольт. Выходное напряжение 3,3 В с максимальным выходным током 150 мА.

Преобразователь логических уровней

Преобразователь логических уровней PCA9306DCT необходим для сопряжения датчика с разными напряжениями логических уровней от 3,3 до 5 вольт. Другими словами сенсор совместим как с 3,3 вольтовыми платами, например, Raspberry Pi, так и с 5 вольтовыми — Arduino Uno.

Troyka-контакты

Датчик подключается к управляющей электронике через две группы Troyka-контактов:

  • Питание (V) — соедините с рабочим напряжением микроконтроллера.
  • Земля (G) — соедините с землёй микроконтроллера.
  • Сигнальный (D) — пин данных шины I²C. Подключите к пину SDA микроконтроллера.
  • Сигнальный (C) — пин тактирования шины I²C. Подключите к пину SCL микроконтроллера.

Смена адреса модуля

Иногда в проекте необходимо использовать несколько барометров. Для этого на модуле предусмотрены контактная площадка. Для смена адреса капните каплей припоя на отведённую контактную площадку.

Модуль Адрес без перемычки Адрес с перемычкой
Барометр 0x5С 0x5D

Принципиальная и монтажная схемы

Габаритный чертёж

Характеристики

  • MEMS-датчик: барометр LPS25HB
  • Интерфейс: I²C
  • I²C-адрес:
    • без перемычки: 0x5C
    • с перемычкой: 0x5D
  • Максимальная чувствительность: 2,4×10-4 мбар
  • Диапазон измерений: 260–1260 мбар
  • Напряжение питания: 3,3–5 В
  • Потребляемый ток: до 10 мА
  • Размеры: 25,4×25,4×10,1 мм

Ресурсы