Барометр, гигрометр и термометр 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. Ниже представлены два варианта схем подключения.

Arduino UnoGnd5VA4A5
BME280 ROCGndVINSDASCL
Подключение BMP280 I2C
Arduino UnoGnd 5V10111213
BME280 ROCGndVINCSMOMICK
Подключение BMP280 SPI

Программа

Для теста напишем программу, которая будет выводить значение атмосферного давления, влажности и температуру датчика в последовательный порт. Используем библиотеку 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

0

Изменено:

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

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

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