BME280 - датчик атмосферного тиску


12.01.2016

Невеликий огляд датчика тиску, температури і вологості BME280 виробництва Bosch Sensortec у порівнянні з BMP280. Раніше я робив огляд датчика BMP280 (і більш ранніх версій BMP180 та BMP085). Ці датчики дуже схожі. Різниця у тому, що BME280 має гігрометр і за рахунок цього його корпус ширше ніж у BMP280. Кількість контактів і їх розташування на корпусах обох датчиків збігаються.

Інтерфейс

BME280 як і BMP280 працює по інтерфейсу I2C. Підтримується шина SPI, але я з цими датчиками працюю тільки по I2C. Схема підключення:

bme280_circuid

Алгоритм роботи

bme280_photo2 bme280_photo1

Алгоритм роботи з BME280 і BME280 однаковий. Зчитуються калібрувальні коефіцієнти і дані датчиків. Потім, за вказаними в документації формулами, обчислюються реальні показники температури, тиску, та вологості, якщо Ви використовуєте BME280. Адреси регістрів (коригуючих коефіцієнтів і даних) для роботи з температурою і тиском у цих датчиків однакові. Формули розрахунку температури і тиску ідентичні. Якщо замінити BMP280 на BME280, то в програмній частині нічого змінювати не треба. Тиск і температуру буде вимірювати, як і раніше. А ось для вимірювання вологості бібліотеку доведеться доопрацювати.

Це наводить на думку, що схема вимірювання тиску і температури у них однакові. У BME280 лише додали гігрометр.

На перших сторінках документації BME280 впадає в очі, що він нібито менше шумить. Шум всього 0.2 Pa проти 1.3 Pa у BMP280!

bme280_bmp280

Але це лише рекламний хід. Для BME280 рівень шуму вказаний із застосуванням вбудованого цифрового фільтра. Такі ж показники видає BMP280 з ідентичними налаштуваннями фільтра. Без фільтрації BME280 шумить так само як і BMP280, про що свідчить документація до датчика.

bme280_bmp280_nois

На практиці, при роботі у реальному проекті, де необхідна певна точність вимірюванні тиску, ніякої різниці між BMP280 і BME280 не помічено.

Гігрометр

Гігрометр у BME280 відключений. Тільки після виконання відповідних налаштувань, можна зчитувати актуальні дані гігрометра. Розрахунок вологості виконується за формулою з використанням коригуючих коефіцієнтів. Діапазон вимірювання вологості від 0 до 100%. Для відомості - більшість дешевих гігрометрів здатні вимірювати вологість від 20 до 80%.

Режими роботи

Як і BMP280, BME280 має три режими роботи - Normal, Forced, Sleep. У режимі Normal - у відповідності з налаштуваннями датчик періодично виконує вимірювання. Значення пропускає через цифровий фільтр і Вам залишається тільки зчитувати дані, коли Вам зручно. У режимі Forced - датчик виконує вимірювання один раз по команді. Потрібно почекати, поки датчик закінчить вимірювання і тільки після цього зчитувати дані. У режимі Sleep - датчик переходить у режим мінімального споживання.

Я тестував датчик тільки у режимі Normal. Оскільки для моїх задач інші режими не використовуються.

Висновки

Якщо для Ваших задач потрібен тільки датчик атмосферного тиску, а вологість абсолютно не важлива, тоді вистачить BMP280. Не варто переплачувати за гігрометр, який Ви не збираєтеся використовувати.

BME280 ідеально підходить для метеостанцій, пристроїв для контролю кліматичних параметрів тощо.

Soft

Тестування датчика виконувалося на мікрокомп`ютері Raspberry Pi під операційною системою Raspbian. Бібліотека написана я на Python.

Завантажити бібліотеку і приклад можна тут: https://github.com/avislab/sensorstest/tree/master/BME280

Успіхів.

Дивись також:

 

 

Raspberry Pi Схеми і прошивки
Коментарі:
Олег говорить:
22.05.2020 17:02
Доброго вечора.
Формулу розрахунку вологості Ви складали самі? Просто вона відрізняється від рекомендованої в даташиті. Чому питаю, бо пишу модуль для atmega і ніяк не можу побороти вологість - постійно виходять від'ємні значення (формула з даташита).

Олег говорить:
30.05.2020 16:38
Уже все поборов. Виявляється неправильно зчитував калібровочні константи вологості. Не звернув уваги на те, що деякі зі здвигом.

Додати коментар
Code
* - обов'язкові поля

Архіви