Приборы для измерения давления атмосферы называются барометры. Барометры были изобретены в 1644 году. Первые барометры содержали в своем устройстве ртуть, что делало их достаточно небезопасными. С приходом электроники, а в частности, микроэлектроники, многие сложные и громоздкие приборы были заменены на компактные и безопасные. Датчик давления к ардуино bmp280 – отличный пример замены прибора на электронный вариант.
Модуль ардуино для измерения атмосферного давления BMP 280 использует в своем устройстве датчик, разработанный фирмой BOSCH. Данная модель датчика улучшенная версия датчика BMP180. В новой модели разработчики предусмотрели два интерфейса подключения датчика, а также несколько режимов энергосбережения.
Описание модуля BPM 280
Подключение датчика осуществляется с помощью одного из двух интерфейсов:
- SPI;
- I2C.
Модуль атмосферного давления имеет следующие режимы энергосбережения:
- NORMAL – это обычный режим работы в котором программно устанавливается частота преобразования данных. После измерения модуль сохраняет данные и переходит в режим энергосбережения.
- SLEEP – спящий режим, в этом режиме модуль расходует минимальное количество заряда.
- FORCED – это режим пользовательского управления. Модуль просыпается и производит измерения подачей внешнего сигнала. Измерив давление, модуль снова переходит в спящий режим.
Особенностью данного модуля является то, что в дополнение к измерению атмосферного давления в модуль добавлен датчик температуры.
Электрическая схема модуля BMP 280 представлена ниже:
Cхемы подключения датчика атмосферного давления к ардуино
Подключение по интерфейсу I2C осуществляется следующим образом:
Подключение по интерфейсу SPI:
Скетч для работы с датчиком атмосферного давления
Для работы с данным модулем одной из самых простых библиотек это – Adafruit_BMP280. Более подробно библиотека будет рассмотрена в отдельной статье. А сейчас рассмотрим пример кода для работы с датчиком атмосферного давления:
#include // Библиотека для работы с шиной I2C
#include // Библиотека для работы с шиной SPI
#include // Библиотека для работы с датчиком BMP280
// Для подключения по шине I2C
Adafruit_BMP280 bmp;
// Для подключения по аппаратному SPI (указываем только номер пина CS)
#define PIN_CS 10
Adafruit_BMP280 bmp(PIN_CS);
// Для подключения по программному SPI (указываем все пины интерфейса)
#define PIN_SCK 13
#define PIN_MISO 12
#define PIN_MOSI 11
#define PIN_CS 10
Adafruit_BMP280 bmp(PIN_CS, PIN_MOSI, PIN_MISO, PIN_SCK);
void setup() {
Serial.begin(9600); // Для вывода отладочной информации в терминал
if(!bmp.begin()) { // Если датчик BMP280 не найден
Serial.println(“BMP280 SENSOR ERROR”); // Выводим сообщение об ошибке
while(1); // Переходим в бесконечный цикл
}
}
void loop() {
// Выводим значение температуры
Serial.print(F("Temperature = "));
Serial.print(bmp.readTemperature()); // Функция измерения температуры
Serial.println(" *C");
// Выводим значение атмосферного давления
Serial.print(F("Pressure = "));
Serial.print(bmp.readPressure()); // Функция измерения атм. давления
Serial.println(" Pa");
// Выводим значение высоты
Serial.print(F("Approx altitude = "));
Serial.print(bmp.readAltitude(1013.25)); // Функция измерения высоты
Serial.println(" m");
}







