Bmp280 библиотека: Библиотека iarduino_Pressure_BMP для датчиков давления и температуры BMP180 / BMP280 для Arduino

Модуль GY-BMP280-3.3 датчик атмосферного давления и температуры

Модуль RKP-GY-BMP280-3.3 на микросхеме BMP280 это цифровой датчик атмосферного давления (барометр) и температуры для совместного использования с устройствами, использующими платформу ARDUINO (Ардуино).

  • В основе модуля GY-BMP280-3.3 заложен чип компании BOSH BMP280, использующий пьезорезистивный метод.

  • Модуль GY-BMP280-3.3 – это прецизионный датчик для измерения атмосферного давления с точностью ± 1 гПа и температуры с точностью ± 1 °C. Кроме этого с помощью преобразования данных о давлении можно определить высоту. Таким образом, цифровой модуль атмосферного давления и температуры RKP-GY-BMP280-3.3 может использоваться и как высотомер с точностью измерения ± 1 м.

  • Модуль цифрового барометра-термометра часто используется в полетных контроллерах (мультикоптерах, квадрокоптерах, воздушных шарах, зондах, дельтапланах). А так же в составе самостоятельного высотомера или вместе с прибором ГЛОНАСС, GPS для уточнения высоты и в приборах отслеживающих погоду.

  • Модуль GY-BMP280-3.3 имеет интерфейсы I2C и SPI, так что без проблем подключается к любой платформе из семейства Ардуино.

  • Каждая микросхема BMP280 проходит калибровку на заводе-изготовителе. В результате калибровочные коэффициенты записываются в ПЗУ.

  • Версия BMP280 является обновленной версией семейства микросхем BMP085/BMP180/BMP183. Микросхема BMP280 имеет низкое энергопотреблением, улучшенную температурную стабильность и разрешение АЦП до 20 бит для температуры и давления.

Посмотреть DataSheet микросхемы BMP280 (формат PDF размер 1.2 МБ)

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

BMP280 имеет три режима работы — Normal, Forced и Sleep.
В режиме Normal — в соответствии с настройками датчик периодически выполняет измерения. Значение пропускает через цифровой фильтр и Вам остается только считывать данные, когда Вам удобно.
В режиме Forced — датчик выполняет измерения один раз по команде. То есть, дали команду на измерение, подождали, считали значения, датчик перешел в спящий режим..
В режиме Sleep – режиме сна, датчик переходит в режим минимального потребления.

Характеристики GY-BMP280-3.3
Напряжение питания: 3.3 В
Потребляемый ток: 2.7 мкА при скорости опроса 1 Герц
Шум: 1.3 Па
Диапазон измерения давления: от 300 до 1100 гПа (от -500 от +9000 метров над уровнем моря)
Точность измерений при 25°С: ±0.12 гПа (что эквивалентно разности высот ±1 м)
Абсолютная точность: ±1 гПа
Диапазон измерения температуры: от -40 до +85 °C
Точность измерения температуры: ± 1 °C
Интерфейсы: I2C (до 3. 4 МГц) и SPI (3 и 4, до 10 МГц)
Размер: 11.5 х 15 мм

Принципиальная схема BMP280

Разъем модуля RKP-GY-BMP280-3.3 представляет из себя шесть обычных штырьков пинов (тип папа) с шагом 2.54 мм. 4 контакта используются при подключения модуля через интерфейс I2C и все 6 контактов при подключения через интерфейс SPI. Вывод с меткой «GND» подключается к «земле», вывод с меткой «VCC» к питанию +3.3 В.

Схема подключения модуля BMP280 к Arduino Uno через интерфейс I2C

Вывод с меткой «SCL» –> интерфейс I2C A5
Вывод с меткой «SDA» –> интерфейс I2C A4

Схема подключения модуля BMP280 к Arduino Uno через интерфейс SPI

Вывод с меткой «SCL» –>подключается к SCK шины SPI (на схеме пин номер 13)
Вывод с меткой «SDO» –>подключается к MISO шины SPI (на схеме пин номер 12)
Вывод с меткой «SDA» –>подключается к MOSI шины SPI (на схеме пин номер 11)
Вывод с меткой «CSB» –>подключается к любому цифровому выходу (на схеме пин номер 10)

Для работы с модулем GY-BMP280-3. 3 понадобятся библиотеки:

Библиотека Adafruit BMP280 Library (архив zip 9.1 КБ) Скачать =>>

Библиотека Adafruit Sensor (архив zip 6.7 КБ) Скачать =>>

Мини-метеостанция на ESP32 (Arduino) и BME280 с выводом данных на дисплей DWIN.

В этом проекте сделаем мини-метеостанцию используя ESP32 (Arduino) и датчик барометрического давления BME280, который может предоставлять информацию об атмосферном давлении, температуре и влажности в режиме реального времени. С помощью BME280 также можно измерить высоту над уровнем моря. Полученные значения выведем на дисплей DWIN.

Кратко о датчиках давления, температуры и влажности BME280 (BMP280).

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

Виды датчиков BME280 (BMP280).

Датчик BME280 имеет несколько разновидностей и в зависимости от модуля может подключаться к I2C и SPI шинами микроконтроллера и работать от 3-5В.

Как узнать, какое рабочее напряжение модуля? Если на плате есть стабилизатор, его можно запитать от источника напряжением 5В. Если на плате нет стабилизатора, то подключить можно только к источнику питания 3В.

На обратной стороне платы не просто так написано BME280/BMP280 – BMP является урезанной версией BME, в которой нет влажности. Как их различить, если недобросовестный продавец не поставил галочку? Они отличаются по корпусу датчика:Информация о типах модулей взята с сайта.

Датчики я покупал себе с сопутствующим товаром на будущее и информацию предварительно не почитал. Я повёлся на низкую стоимость и в результате стал счастливым обладателем BMP280. Кстати, покупал 2 модуля, и галочки нет ни на одном. Это, конечно, не критично, но есть некоторые сложности с тем, чтобы заставить датчик работать. Помогла библиотека Гайвера.

Распиновка модуля BME280 без стабилизатора на борту.

Интерфейс BME280 I2C использует следующие контакты:

  • VCC: от 1,71 В до 3,6 В
  • GND: подключение к GND
  • SCL: последовательные часы (SCK)
  • SDA: последовательные данные (SDI)
  • CSB: должен быть подключен на VDDIO, чтобы выбрать интерфейс I2C.
  • SDO: контакт определяет I2C адрес устройства. Если SDO подключается к GND (0), то адрес равен 0x76. Если он подключается к VDDIO(1), то адрес равен 0x77. В этом модуле мы подключили его к VDDIO, поэтому адрес должен быть 0x77.

Интерфейс I2C.

Модуль оснащён простым двухпроводным интерфейсом I2C, который можно легко соединить с любым выводом I2C микроконтроллера. Адрес I2C модуля BME280 по умолчанию 0x76, и его можно легко изменить на 0x77.

На рынке доступен ещё один модуль, который имеет только 4 контакта. Чтобы изменить его адрес I2C, найдите перемычку для пайки рядом с микросхемой.

Благодаря данной перемычке можно изменить адрес I2C.

По умолчанию средний медный контакт площадки подключён к левой контактной площадке. Поэтому вам нужно поцарапать соединение между средней и левой медными контактными площадками, чтобы отсоединить их. Затем вы можете добавить каплю припоя между средней и правой медными площадками, чтобы соединить их. Это позволит вам установить адрес I2C 0x77.

При необходимости мы можем изменить адрес датчика и подключить 2 модуля к одному микроконтроллеру.

Схема подключения дисплея DWIN, модуля BME280 к ESP32.

Датчик барометрического давления BME280 взаимодействует с ESP32 для создания простой мини-метеостанции.

Подключите контакты SDA SCL BME280 к соответствующим контактам ESP32, то есть к контактам GPIO22 и GPIO21 соответственно. Дисплей DWIN подключаем ко второму UART порту ESP32, то есть к контактам GPIO16 и GPIO17.

Библиотека для работы с BME280.

Самая распространённая библиотека для работы с BME280 является Adafruit BME280 (для работы также нужно установить Adafruit Sensor). Но она не работает с BMP280, поэтому пришлось искать альтернативное решение.

GyverBME280 – библиотека более удобная и лёгкая. Также поддерживает датчики BMP280. То, что мне требовалось для данного проекта.

Библиотеку можно установить через менеджер библиотек или скачать с официального сайта разработчика. Также прикреплю библиотеку внизу статьи в разделе «Файлы для скачивания».

Код метеостанции на DWIN, модуле BME280 и ESP32.

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

Остальные данные меняйте по мере необходимости. Например, адрес устройства по умолчанию 0x76. Возможно, вам нужно будет поменять на 0x77.

Прошивка для дисплея DWIN.

Для данного проекта подайте дисплей без сенсора. Благо, практически для всех моделей дисплеев DWIN доступна версия без сенсора.

Для вывода информации будем использовать всего один инструмент — «Data variables». С данным инструментом мы уже знакомы из проекта «Панель управления подсветкой на дисплее DWIN».

Но его мы использовали только для вывода целочисленных значений. Сегодня в проекте будем выводить дробные значения.

Для этого данные для вывода нужно настроить следующим образом.

Как видим, настройки изменились не сильно. Аналогичным образом выводим все остальные параметры.

Мини-метеостанция на Arduino и BME280 с выводом данных на дисплей DWIN.

И если у вас нет в наличии ESP32, можно сделать проект, используя классическую отладочную плату Arduino UNO или Arduino NANO.

Код для Arduino NANO (UNO).

Внизу статьи в разделе «файлы для скачивания» вы можете скачать код для Arduino NANO (UNO). Обратите внимание, что данный код я не тестировал на железе. Если у вас будут вопросы, пишите в комментариях.

Схема подключения дисплея DWIN и модуля BME280 к Arduino NANO.

Подключаем электронику дисплея DWIN, модуля BME280 к Arduino NANO по схеме.

Вывод.

Получается простая метеостанция. Но я сделал данный проект в первую очередь для демонстрации вывода целочисленных значений больше 255 и дробных значений. В проекте написаны небольшие функции, которые помогут реализовать вывод дробных и целочисленных значений. В дальнейшем планирую сделать более интересные проекты с использованием полученных знаний в данном проекте.

И полезная информация для тех, кто дочитал до конца статьи. У вас есть уникальная возможность заказать бесплатный образец дисплея компании DWIN Technology. Подробнее тут.

По вопросам технической консультации, а также покупки продукции стоимостью 1000 $ или выше, свяжитесь со мной для того, чтобы получить индивидуальную скидку.

Контактные данные для связи со мной:

  • В контакте: https://vk.com/kas_flai
  • Tелеграмм:@arduino_tex_ru
  • WhatsApp: +7 996 287 76 20
  • Телефон: +7 996 287 76 20 (Звонить только в рабочее время)

Понравился проект Мини-метеостанция на ESP32 (Arduino) и BME280 с выводом данных на дисплей DWIN? Не забудь поделиться с друзьями в соц. сетях.

А также подписаться на наш канал на YouTube, вступить в группу Вконтакте.

Спасибо за внимание!

Технологии начинаются с простого!

Фотографии к статье

Файлы для скачивания

Скачивая материал, я соглашаюсь с
Правилами скачивания и использования материалов.

Код метеостанции на DWIN, модуле BME280 и ESP32.zip2 Kb 166Скачать
Код Мини-метеостанция для Arduino NANO (UNO).zip2 Kb 175Скачать
Прошивка для дисплея DWIN. Мини-метеостанция.zip331 Kb 166Скачать
Библиотека для работы с BME280. GyverBME280.zip13 Kb 133Скачать

Библиотека Adafruit BMP280 — Библиотеки Arduino

Библиотека Adafruit BMP280 — Библиотеки Arduino
Библиотека Arduino

для датчиков BMP280.

Автор
Adafruit
Веб-сайт
https://github.com/adafruit/Adafruit_BMP280_Library
Категория
Датчики
Лицензия
Неизвестно
Тип библиотеки
Рекомендуемый
Архитектуры
Любой

Библиотека Arduino для датчиков давления и высоты BMP280.

Имя файла Дата выпуска Размер файла
Adafruit_BMP280_Library-2.6.6.zip 2022-10-03 463,46 КиБ
Adafruit_BMP280_Library-2.6.5.zip 2022-08-31 463,47 КиБ
Adafruit_BMP280_Library-2. 6.4.zip 2022-08-29 463,62 КиБ
Adafruit_BMP280_Library-2.6.3.zip 2022-07-01 462,86 КиБ
Adafruit_BMP280_Library-2.6.2.zip 2022-03-01 462,86 КиБ
Adafruit_BMP280_Library-2.6.1.zip 2022-01-18 462,87 КиБ
Adafruit_BMP280_Library-2.6.0.zip 2022-01-03 462,86 КиБ
Adafruit_BMP280_Library-2.5.0.zip 2021-11-30 461,38 КиБ
Adafruit_BMP280_Library-2.4.4.zip 2021-11-29 461,33 КиБ
Adafruit_BMP280_Library-2.4.3.zip 2021-11-27 460,99 КиБ
Adafruit_BMP280_Library-2. 4.2.zip 2021-09-14 461,09 КиБ
Adafruit_BMP280_Library-2.4.1.zip 2021-08-24 461,00 КиБ
Adafruit_BMP280_Library-2.4.0.zip 2021-07-31 460,97 КиБ
Adafruit_BMP280_Library-2.3.0.zip 2021-05-24 461,22 КиБ
Adafruit_BMP280_Library-2.2.0.zip 2021-05-17 461,21 КиБ
Adafruit_BMP280_Library-2.1.2.zip 2021-04-08 461,13 КиБ
Adafruit_BMP280_Library-2.1.1.zip 20.01.2021 461,03 КиБ
Adafruit_BMP280_Library-2.1.0.zip 2020-09-21 461,03 КиБ
Adafruit_BMP280_Library-2. 0.1.zip 2020-01-08 460,89 КиБ
Adafruit_BMP280_Library-2.0.0.zip 2019-12-29 460,89 КиБ
Adafruit_BMP280_Library-1.0.6.zip 2019-11-27 458,49 КиБ
Adafruit_BMP280_Library-1.0.5.zip 2019-09-13 458,49 КиБ
Adafruit_BMP280_Library-1.0.4.zip 2019-07-04 458,53 КиБ
Adafruit_BMP280_Library-1.0.3.zip 2019-05-15 458,16 КиБ
Adafruit_BMP280_Library-1.0.2.zip 22 января 2016 г. 6,70 КиБ
Adafruit_BMP280_Library-1.0.1.zip 2015-11-06 6,17 КиБ
Adafruit_BMP280_Library-1. 0.0.zip 2015-08-21 6,10 КиБ

adafruit_bmp280 — Документация Adafruit BMP280 Library 1.0

Драйвер CircuitPython от датчика температуры и барометрического давления BMP280

  • Автор(ы): ladyada

Оборудование:

  • Adafruit от BMP280 Температурный и барометрический
    Датчик давления

Программное обеспечение и зависимости:

  • Прошивка Adafruit CircuitPython для поддерживаемых плат:
    https://github.com/adafruit/circuitpython/релизы

  • Библиотека устройств шины Adafruit: https://github.com/adafruit/Adafruit_CircuitPython_BusDevice

класс adafruit_bmp280.Adafruit_BMP280[источник]

Базовый объект БМП280. Используйте Adafruit_BMP280_I2C или Adafruit_BMP280_SPI
вместо этого. Это проверяет, что BMP280 был найден, считывает коэффициенты и
включает датчик для непрерывного считывания

Примечание

Рабочий диапазон BMP280 составляет 300-1100 гПа.
Измерения давления за пределами этого диапазона могут быть не такими точными.

свойство высота : поплавок

Высота на основе давления на уровне моря ( sea_level_pressure )
— который необходимо ввести заранее)

свойство iir_filter : int

Контролирует постоянную времени БИХ-фильтра
Допустимые значения устанавливаются в классе перечисления IIR_FILTER 9.0003

свойство Measurement_time_max : float

Максимальное время в миллисекундах, необходимое для завершения измерения в нормальном режиме

свойство измерение_время_типичное : число с плавающей запятой

Типичное время в миллисекундах, необходимое для завершения измерения в обычном режиме

свойство режим : int

Режим работы
Допустимые значения задаются в классе перечисления MODE

.

свойство overscan_pressure : int

Передискретизация давления
Допустимые значения устанавливаются в классе перечисления OVERSCAN

.

свойство overscan_temperature : int

Передискретизация температуры
Допустимые значения устанавливаются в классе перечисления OVERSCAN

.

свойство давление : Опционально [с плавающей запятой]

Компенсированное давление в гектопаскалях.
возвращает Нет , если измерение давления отключено

уровень моря_давление

Давление в гектопаскалях на уровне моря. Используется для калибровки высоты .

свойство standby_period : int

Управление периодом неактивности в нормальном режиме
Разрешенные периоды ожидания устанавливаются классом перечисления STANDBY 9. 0003

свойство температура : число с плавающей запятой

Компенсированная температура в градусах Цельсия.

класс adafruit_bmp280.Adafruit_BMP280_I2C ( i2c: I2C , адрес : int = 119 ) [источник]

Драйвер для BMP280, подключенного по I2C.

Параметры
  • i2c ( I2C ) — шина I2C, к которой подключен BMP280.

  • адрес ( int ) — адрес устройства I2C. По умолчанию 0x77 .
    но в качестве аргумента можно передать другой адрес

Краткое руководство: импорт и использование BMP280

Вот пример использования класса BMP280_I2C .
Сначала вам нужно будет импортировать библиотеки, чтобы использовать плату импорта сенсора

.
импортировать adafruit_bmp280
 

Как только это будет сделано, вы можете определить свои board. I2C object и определите свой объект датчика

 i2c = board.I2C() # использует board.SCL и board.SDA
bmp280 = adafruit_bmp280.Adafruit_BMP280_I2C(i2c)
 

Необходимо настроить давление на уровне моря

 bmp280.sea_level_pressure = 1013.25
 

Теперь у вас есть доступ к температуре ,
давление и высота атрибуты

 температура = bmp280.temperature
давление = bmp280.давление
высота = bmp280.altitude
 
класс adafruit_bmp280.Adafruit_BMP280_SPI( spi: SPI , cs: DigitalInOut , скорость = 100000 )[источник]

Драйвер для BMP280, подключенного по SPI.

Параметры
  • spi ( SPI ) — устройство SPI

  • cs ( DigitalInOut ) – Выбор чипа

  • скорость передачи ( int ) – Тактовая частота, по умолчанию 100000.

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

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