Барометр, гигрометр и термометр 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.

На плате есть семь контактов для подключения:

  • VIN — питание, от 4,5 до 5,5 В;
  • 3V3 — питание 3,3 В;
  • G — земля GND;
  • MO/SDA — контакт MOSI для SPI, либо контакт SDA для шины I2C;
  • SCK/SCL — контакт SCK для SPI, либо контакт SCL для шины I2C;
  • MI/AD — контакт MISO для SPI, либо контакт для выбора адреса шины I2C;
  • CS — контакт Chip Select для шины SPI.

Список необходимых компонентов

Для выполнения всех экспериментов в данном уроке, кроме самого датчика BME280 от RobotClass, потребуются: Ардуино-совместимый контроллер и немного проводов вилка-розетка. Необходимые компоненты можно добавить в корзину прямо здесь, и затем оформить заказ в нашем интернет-магазине.

В корзину
В корзину
В корзину

Подключение

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