Используйте барометр для определения атмосферного давления, высоты над уровнем моря и температуры окружающей среды.
Если вам необходимо определить положение вашего девайса в пространстве, обратите внимания на IMU-сенсор на 10 степеней свободы.
Барометр в обзоре IMU-модуля.
В качестве мозга для считывания показаний с датчика рассмотрим платформу из серии Arduino, например, Uno.
На аппаратном уровне инерционный модуль общается с управляющей электроникой по шине I²C. Но не переживайте о битах и байтах: используйте библиотеку TroykaIMU и на выходе получите готовы данные.
Подключите барометр к пинам питания и шины I²C — SDA и SCL на платформе Uno. Для коммуникации используйте соединительные провода «мама-папа»
Для быстрой сборки и отладки устройства возьмите плату расширения Troyka Shield, которая одевается сверху на Arduino Uno методом бутерброда. Для коммуникации используйте трёхпроводной шлейф «мама-мама», который идёт в комплекте с датчиком.
С Troyka Slot Shield провода не понадобятся вовсе.
В качестве примера выведем в Serial-порт атмосферное давление, высоту над уровнем моря и температуру окружающей среды.
// Библиотека для работы с модулями 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, например, Iskra JS.
Подключите барометр к пинам питания и шины I²C — SDA и SCL платформы Iskra JS. Для коммуникации используйте соединительные провода «мама-папа».
Для быстрой сборки и отладки устройства возьмите плату расширения Troyka Shield, которая одевается сверху на Iskra JS методом бутерброда. Для коммуникации используйте трёхпроводной шлейф «мама-мама», который идёт в комплекте с датчиком.
С Troyka Slot Shield провода не понадобятся вовсе.
В качестве примера выведем в консоль атмосферное давление, высоту над уровнем моря и температуру окружающей среды.
// Настраиваем I2C1 I2C1.setup({sda: SDA, scl: SCL, bitrate: 400000}); // Создаем новый экземпляр, который работает с I2C1 var baro = require("LPS25HB").connect(I2C1); // Возвращает значение переданной функции baro.getPressure(print);
В качестве мозга для считывания показаний с датчика рассмотрим одноплатные компьютеры Raspberry Pi, например, Raspberry Pi 4.
Подключите барометр к пинам SDA и SCL шины I²C компьютера Raspberry Pi.
Для быстрой сборки и отладки устройства возьмите плату расширения Troyka Cap, которая надевается сверху на малину методом бутерброда.
А написать пример кода для Raspberry Pi оставим вам домашним заданием.
Барометр выполнен на чипе 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-контактов:
Иногда в проекте необходимо использовать несколько барометров. Для этого на модуле предусмотрены контактная площадка. Для смена адреса капните каплей припоя на отведённую контактную площадку.
Модуль | Адрес без перемычки | Адрес с перемычкой |
---|---|---|
Барометр | 0x5С | 0x5D |