Датчик атмосферного давления

Описание

Цифровой датчик на базе микросхемы BMP280 предназначен для измерения величины атмосферного давления, а также температуры в диапазоне от -40°C по +85°C с погрешностью всего 0,01°C. Кроме того, датчик может быть использован в качестве высотомера для определения высот от -500 до 9000 метров над уровнем моря.

Датчик BMP280 является усовершенствованной версией чипа BMP180, который выполнен в более компактном корпусе, обладает низким энергопотреблением и различными режимам работы. Датчик имеет заводскую калибровку и не требует дополнительных настроек перед началом работы.

Датчик поддерживает три режима работы:

  • Normal - в данном режиме датчик просыпается с определенной периодичностью, передает измерения и снова засыпает;
  • Sleep - режим сна;
  • Forced - режим работы, при котором датчик пробуждается подачей внешнего управляющего сигнала, передает измерения и автоматически переходит в режим сна.

Плата с датчиком исполнена в двух вариантах: на 3,3 и 5 В (Так как рабочим напряжением микросхемы BMP280 является 3,3 В, то для его корректной работы с контроллерами Arduino от 5 В, мы предусмотрели на плате датчика преобразователи напряжения).

Обратите внимание! Выводы платы датчика на 3,3 В не толерантные к 5В! Если Вы выбрали версию 3,3 В, используйте контроллеры (например, Arduino Due), напряжение выводов SDA и SCL которых не превышает 3,3 В!

Технические характеристики

  • Напряжение питания: 5 В или 3,3 В (в зависимости от версии платы)
  • Потребляемый ток в режиме измерений: 2,7 мкА
  • Диапазон измеряемого давления от 300 гПа до 1100 гПа
  • Погрешность измеряемого давления: ±0,12 гПа
  • Диапазон измеряемой температуры: от -40 °C до +85 °C
  • Погрешность измеряемой температуры: ±0,01˚С
  • Максимальная частота работы интерфейса I2C: 3,4 МГц

Физические размеры

  • Габаритные размеры Д х Ш х В: 30 х 20 х 7 мм

Подключение

Датчик подключается посредством шины I2C, что при большом количестве устройств и использовании расширителя I2C позволит сэкономить ценные выводы контроллера. Для удобного подключения к Arduino можно также воспользоваться Sensor Shield, на котором выведен отдельный разъем I2C. Для подключения модуля используйте 4-х проводной шлейф «мама-мама» (в комплект не входит). Варианты подключения датчика можно посмотреть ниже в разделе Примеры.

Файлы для загрузки

Примеры работы с датчиком

Пример 1. Работа с датчиком 5В

Описание: В примере показано как измерить температуру, влажность и давление с использованием датчика 5В. Что нужно:

Схема подключения:

Скетч для загрузки:

В данном скетче данные о результатах измерений выводятся по мере их готовности (от датчика). Поэтому, они будут выводиться не в строгом порядке. Например, сначала температура, потом высота, потом снова температура, потом давление и так далее. Здесь демонстрируется получение данных раздельно, ведь для Вашего проекта не обязательно нужны будут все параметры. Более удобное получение данных о всех трёх показателях, смотрите в примере №2.

#include <BMP280_DEV.h> // подключение библиотеки
 
float temperature; // переменная для хранения температуры
float pressure; // переменная для хранения давления
float altitude; // переменная для хранения высоты 
BMP280_DEV bmp280; // создание объекта для работы с датчиком (адрес 0х76)
 
void setup() 
{
  Serial.begin(9600);  // инициализация сериал-соединения
  bmp280.begin(); // инициализация датчика, датчик переходит в режим SLEEP_MODE 
 
  bmp280.setTimeStandby(TIME_STANDBY_2000MS);     // установка регулярности опроса датчика в 2 с
  bmp280.startNormalConversion();                 // начало опроса датчика в режиме NORMAL_MODE  
}
 
void loop() 
{
  //измерения температуры
  if (bmp280.getTemperature(temperature)) { // если выполнены измерения температуры
    Serial.println(); // вывод данных
    Serial.print("Temperature: ");
    Serial.print(temperature);
    Serial.println("*C");
  }
 
  //измерения давления
  if (bmp280.getPressure(pressure)) { // если выполнены измерения давления
    Serial.println(); // вывод данных
    Serial.print("Pressure: ");
    Serial.print(pressure);
    Serial.println(" hPa");
  }
 
  //измерения высоты
  if (bmp280.getAltitude(altitude)) { // если выполнены измерения высоты
    Serial.println(); // вывод данных
    Serial.print("Altitude: ");
    Serial.print(altitude);
    Serial.println(" m");
  }
 
}

Пример 2. Работа с датчиком 3.3В

Описание: В примере показано как измерить температуру, влажность и давление с использованием датчика 5В. Что нужно:

Схема подключения:

Скетч для загрузки:

#include <BMP280_DEV.h> // подключение библиотеки
 
float temperature; // переменная для хранения температуры
float pressure; // переменная для хранения давления
float altitude; // переменная для хранения высоты 
BMP280_DEV bmp280; // создание объекта для работы с датчиком (адрес 0х76)
 
void setup() 
{
  Serial.begin(9600);  // инициализация сериал-соединения
  bmp280.begin(); // инициализация датчика, датчик переходит в режим SLEEP_MODE 
 
  bmp280.setTimeStandby(TIME_STANDBY_2000MS);     // установка регулярности опроса датчика в 2 с
  bmp280.startNormalConversion();                 // начало опроса датчика в режиме NORMAL_MODE  
}
 
void loop() 
{
 
  if (bmp280.getMeasurements(temperature, pressure, altitude)) { // если выполнены измерения
 
    //измерения температуры
    Serial.println(); // вывод данных
    Serial.print("Temperature: ");
    Serial.print(temperature);
    Serial.println("*C");  
 
    //измерения давления  
    Serial.println(); // вывод данных
    Serial.print("Pressure: ");
    Serial.print(pressure);
    Serial.println(" hPa");  
 
    //измерения высоты  
    Serial.println(); // вывод данных
    Serial.print("Altitude: ");
    Serial.print(altitude);
    Serial.println(" m");
  }
 
}