сайт для палких паяльників

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

Интерфейс

BME280 так же как и BMP280 работает по интерфейсу I2C. Поддерживается протокол SPI, но я с этими датчиками работаю только по I2C. Схема подключения стандартная:

bme280_circuid

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

bme280_photo2 bme280_photo1

Алгоритм работы с BMP280 и 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

Всем успехов.

Смотри также:

 

7 комментариев: BME280 – датчик атмосферного давления с гигрометром

  • Алексей говорить:

    Здравствуйте! Хотел узнать про BMP280 как его можно повесить на улице, чтобы в него не попадала влага, ну то бишь загерметизировать. А то я читал, что он вроде бы не предназначен для улицы. Спасибо.

    • andre говорить:

      Здравствуйте! У меня BMP085 првисел за окном несколько лет в простой коробочке. Коробка вентилируемая, защищает датчие от дождя. Морозы и жару датчик пережил нормально. Теперь на его месте уже пару месяцев служит BME280. Никакой гермитизации не делал. Надо просто сделать чтобы не попадали внутрь дождь, снег, насекомые. Предусмотреть отверстия, чтобы вдруг попавшя влага или конденсат сами вытекали. У меня коробка сделана абы как, рекомендую поискать как это делают метеорологи.

  • Анатолий говорить:

    Коллега, здравствуйте!
    А как же включить гигрометр? Перепробовал уже кучу скриптов, все хорошо, но humidity=0…
    Помогите, пожалуйста

    • andre говорить:

      Добрый день.
      В том примере, ссылка на которй в конце статьи, прямая ссылка на скрипт: https://github.com/avislab/sensorstest/blob/master/BME280/BME280.py
      Гигрометр включает строка

      self.write_byte(BME280_CONTROL_HUM, BME280_CONTROL_HUM_SET)

      У Вас работает мой пример? Если да, нулевое значение только у гигрометра? Значение температуры и давления в пределах нормы?

  • dimkin говорить:

    Случилось так, что есть все 3 датчика – BME280, BMP280 и DHT22.
    Перед применением решил сравнить что можно у них сравнить и немного теперь не знаю – кому из них верить по температуре и влажности 😀 Давление уж куда ни шло 🙂

    Temperature С
    BMP :23.16
    BME :22.80
    DHT :21.90
    Delta % BMP/BME :1.57
    Delta % BME/DHT :4.03

    Pressure mmHg
    BMP :765.67
    BME :764.88
    Delta % 0.10

    Humidity BME :34.30
    Humidity DHT :40.00
    Delta % 15.34

  • Igor говорить:

    Ошибочка: “Алгоритм работы с BME280 и BME280 одинаков.”
    Заказал датчик BME280, пока только жду, буду подключать к Orange Pi. Спасибо за вашу статью.

    • andre говорить:

      Спасибо за замечание. Исправил. У меня опыта работы с Orange Pi не было. Было бы интересно узнать о Ваших результатах.

Translate
Архіви

© 2011-2019 Андрій Корягін, Кременчук - Київ, Україна