Содержание

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

Описание

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

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

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

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

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

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

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

Подключение

Датчик подключается посредством шины 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");
  }
  
}