Барометр, гигрометр и термометр BME280

Датчик BME280 фирмы BOSCH совмещает в себе сразу три устройства:

  • барометр, измеряющий атмосферное давление;
  • гигрометр — он же датчик влажности;
  • термометр — датчик температуры.

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

В робототехнике барометр часто используется для определения высоты полёта беспилотных летательных аппаратов, тех же квадрокоптеров и планеров. А совмещенный с датчиком влажности, BME280 идеально подходит для создания экспериментальной погодной станции или системы контроля климата в помещении. С помощью него можно наблюдать за изменением атмосферного давления и влажности в течение длительного времени.

На этом уроке мы будем работать с модулем BMP280 ROC, разработанной в лаборатории RobotClass.

Барометр, термометр и гигрометр BME280 RobotClass ROC

Характеристики модуля:

  • напряжение питания: от 3,3 до 5 В;
  • диапазон измерения давления: от 300 гПа до 1100 гПа (от 9000 м до -500 м);
  • точность измерения давления: 1 гПа;
  • диапазон измерения влажности: от 0 до 100%;
  • точность измерения влажности: 3%;
  • частота измерения влажности: 1 Гц;
  • диапазон измерения температуры: от 0 до 65;
  • точность измерения температуры: 0,5.

Новое поколение датчиков BOSCH обладают низким энергопотреблением. Например, для сбора показаний влажности и температуры раз в секунду потребуется всего 1,8 мкА. Если нужно анализировать еще и давление, суммарный ток составит 3,6 мкА. В режиме сна датчик потребляет и вовсе 0,1 мкА.

Такая энергоэффективность позволяет использовать датчик в мобильных устройствах умного дома, которые годами питаются от одного литиевого элемента питания, например, CR2450.

Подключение

Для подключения к Ардуино можно использовать как интерфейс I2C, так и SPI. Также плата датчика ROC поддерживает два рабочих напряжения: 5В и 3,3В, а значит его можно подключать и к Ардуино и к низковольтным (в плане логики) платам типа ESP или STM32. Ниже представлены два варианта схем подключения. Первая для I2C:

Arduino UnoGnd5VA4A5
BME280 ROCGndVINSDASCL

Вторая для SPI:

Arduino UnoGnd 5V10111213
BME280 ROCGndVINCSMOMICK

Программа

Для теста напишем программу, которая будет выводить значение атмосферного давления, влажности и температуру датчика в последовательный порт. Используем библиотеку Adafruit_BME280, которую можно найти в репозитории Arduino IDE. Для начала вариант с I2C интерфейсом.

#include <Adafruit_BME280.h>

Adafruit_BME280 bme;

void setup() {
    Serial.begin(9600);
    bme.begin();  
}

void loop() { 
    // вывод температуры в градусах Цельсия
    Serial.print("t = ");
    Serial.print(bme.readTemperature());
    Serial.println(" *C");

    // вывод атмосферного давления в гектопаскалях hPa
    Serial.print("p = ");

    Serial.print(bme.readPressure() / 100.0F);
    Serial.println(" hPa");

    // вывод высоты над уровнем моря в метрах
    // 1013.25 - давление на уровне моря
    Serial.print("alt = ");
    Serial.print(bme.readAltitude(1013.25));
    Serial.println(" m");

    // вывод влажности в процентах
    Serial.print("h = ");
    Serial.print(bme.readHumidity());
    Serial.println(" %");

    Serial.println();

    delay(1000);
}

Загружаем программу на Ардуино и открываем монитор последовательного порта. Результат:

Полезные ссылки

Спецификация производителя

Исходные коды библиотеки Adafruit_BME280_Library

Принципиальная схема платы BME280 от RobotClass

Принципиальная схема модуля BME280 RobotClass-ROC

Изменено:

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.