Приборы для измерения давления атмосферы называются барометры. Барометры были изобретены в 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"); }