Датчик BME280 (давление, температура, влажность)

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

Итак, приступим. Датчик BME280 предназначен для считывания барометрического давления, температуры и влажности. Поскольку давление тесно связано с высотой (от уровня моря), то это означает, что вы также можете узнать и высоту, на которой находитесь в данный момент. Датчик BME280 использует протокол связи I2C или SPI для обмена данными с микроконтроллером.

Мы использовали датчик, показанный на рисунке ниже:

Датчик BME280

Этот датчик обменивается данными с использованием протокола связи I2C, поэтому подключение очень простое. Вы подключаете датчик BME280 к контактам Arduino Uno I2C, как показано в таблице ниже:

BME280Arduino
Vin (выход)5V
GND (земля)GND
SCLA5
SDAA4

Существуют и другие версии этого датчика, которые могут использовать протоколы связи SPI или I2C, например, модуль, показанный на следующем рисунке:

Другой BME280

Если вы используете один из этих датчиков, для использования протокола связи I2C используйте следующие контакты:

BME280Arduino
SCK (контакт SCL)A5
SDI (контакт SDA)A4

Если вы используете протокол связи SPI, вам необходимо использовать следующие контакты:

BME280Arduino
SCK (SPI Clock)Пин 13
SDO (MISO)Пин 12
SDI (MOSI)Пин 11
CS (Chip Select)Пин 10

Требуемые детали

Для того, чтобы понять работу датчика, нам понадобятся следующие элементы:

Схема

Подключите датчик BME280 к Arduino, как показано на схеме ниже:

Схема подключения

Установка библиотеки BME280

Чтобы получить показания от датчика BME280, вам необходимо использовать библиотеку Adafruit_BME280 . Выполните следующие шаги, чтобы установить библиотеку в вашу Arduino IDE:

Откройте свою Arduino IDE и перейдите в Скетч > Подключить библиотеку > Управлять библиотеками . Должен открыться менеджер библиотеки.

Найдите «adafruit bme280» в поле поиска и установите библиотеку.

adafruit bme280

Установка библиотеки Adafruit_Sensor

Чтобы использовать библиотеку BME280, вам также необходимо установить библиотеку Adafruit_Sensor. Выполните следующие шаги, чтобы установить библиотеку в вашу Arduino IDE:

Перейдите в Скетч > Подключить библиотеку > Управлять библиотеками и введите «Adafruit Unified Sensor» в поле поиска. Прокрутите до конца, чтобы найти библиотеку и установите ее.

После установки библиотек перезапустите программу Arduino.

Считывание давления, температуры и влажности

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

Давление, температуру и влажность

После установки библиотеки BME280 и библиотеки Adafruit_Sensor откройте IDE Arduino и перейдите в меню « Файл» > « Примеры» > « Библиотека Adafruit BME280» > « Тест bme280».

Как работает код

Библиотеки

Код начинается с включения необходимых библиотек: wire библиотека нужна для использования I2C, а Adafruit_Sensor и Adafruit_BME280 библиотеки для взаимодействия с датчиком BME280.

Поскольку мы собираемся использовать связь I2C, прокомментированы следующие строки, определяющие контакты SPI:

Давление по уровню моря

Переменная под названием SEALEVELPRESSURE_HPA уже создана.

Эта переменная сохраняет давление по уровню моря в гектопаскалях (эквивалентно милибарам). Эта переменная используется для оценки высоты при заданном давлении путем сравнения ее с давлением по уровню моря. В этом примере используется значение по умолчанию, но для получения более точных результатов замените значение текущим давлением по уровню моря в вашем регионе.

I2C

В этом примере по умолчанию используется протокол связи I2C. Как видите, вам просто нужно создать Adafruit_BME280 объект под названием bme.

Чтобы использовать SPI, вам нужно прокомментировать предыдущую строку и прокомментировать одну из следующих строк.

setup()

В setup() , запустите последовательную связь:

И датчик инициализируется:

Если, при тестировании датчика ,вы не сможете получить считанные с него показания, то вам нужно будет найти адрес I2C вашего датчика BME280. Подключите BME280 к вашему Arduino, запустите этот скетч сканера I2C, с помощью метода begin() .

Значения

В loop(), функция printValues ​​() считывает значения из BME280 и показывает результаты на экране монитора, с помощью Монитор Порта.

Считать температуру, влажность, давление и оценить высоту так же просто, если использовать следующие методы для bme объекта:

  • bme.readTemperature () — считывает температуру в градусах Цельсия;
  • bme.readHumidity () — считывает абсолютную влажность;
  • bme.readPressure () — считывает давление в гПа (гектопаскаль = миллибар);
  • bme.readAltitude (SEALEVELPRESSURE_HPA) — оценивает высоту в метрах на основе давления по уровню моря.

Смотрим, что получилось

Загрузите код на свою плату Arduino. Загрузите скетч для датчика BME280. Откройте Монитор порта со скоростью 9600 бод.

Далее вы должны увидеть показания, отображаемые на экране монитора:

Показания

Вывод

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

Написать кода для получения показаний датчика также очень просто благодаря библиотеке BME280_Adafruit. Вам просто нужно использовать методы: readTemperature (), readHumidity () , а также readPressure () . Вы также можете считать высоту, используя метод readAltitude () .

С Уважением, МониторБанк

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