BME280: обзор датчика температуры, влажности и давления
BME280 — комбинированный датчик Bosch Sensortec, который в одном корпусе размером с рисовое зерно измеряет сразу три величины: температуру, относительную влажность и атмосферное давление. Для метеостанции на Arduino или ESP32 это самый практичный выбор: один модуль вместо трёх, две линии связи вместо шести и потребление, при котором датчик спокойно живёт на батарейке год.

Характеристики
Ниже — паспортные значения с сайта Bosch Sensortec, а не пересказ из каталогов магазинов.
| Параметр | Значение |
|---|---|
| Диапазон температур | −40…+85 °C |
| Влажность, точность | ±3 % RH, гистерезис ≤2 % |
| Влажность, время отклика | 1 с |
| Давление, диапазон | 300…1100 гПа |
| Давление, погрешность чувствительности | ±0,25 % |
| Давление, шум (RMS) | 0,2 Па — это около 1,7 см по высоте |
| Температурный дрейф давления | ±1,5 Па/К |
| Питание VDD / VDDIO | 1,71…3,6 В / 1,2…3,6 В |
| Ток в работе | 3,6 мкА при опросе раз в секунду (все три величины) |
| Ток в режиме сна | 0,1 мкА |
| Интерфейсы | I²C и SPI |
| Корпус | LGA, 8 выводов, 2,5 × 2,5 × 0,93 мм |
Что означает шум 1,7 см
Цифра выглядит странно для датчика давления, но она самая полезная в паспорте. Собственный шум измерения — 0,2 Па, а перепад в 0,2 Па атмосфера даёт примерно на 1,7 см подъёма. То есть датчик способен заметить, что вы подняли его со стола на уровень глаз. На практике это значит, что для прогноза погоды разрешения хватает с огромным запасом, а вот для определения этажа в здании уже нужна калибровка по опорной точке: абсолютная погрешность куда больше шума.
Питание и потребление
Датчик рассчитан на 1,8 и 3,3 В. Пятивольтовую логику Arduino Uno он не переносит — нужен либо модуль со встроенным стабилизатором и преобразователем уровней (такие продаются как «BME280 5V»), либо делитель на линиях SCL и SDA. С ESP32 и всеми платами на 3,3 В датчик соединяется напрямую.
3,6 мкА при опросе раз в секунду — это режим, в котором датчик почти не влияет на баланс питания: на типовой батарейке 18650 такой ток жил бы годами. Реальное потребление узла определяет не датчик, а радиомодуль.
Подключение по I²C
Четыре провода, стандартные пины платы:
BME280 ESP32 Arduino Uno (3,3 В!)
VIN -> 3V3 3V3
GND -> GND GND
SCL -> GPIO 22 A5
SDA -> GPIO 21 A4
Адрес на шине — 0x76 или 0x77, зависит от того, как разведён вывод SDO на конкретном модуле. Если библиотека не находит датчик по адресу из примера, попробуйте второй: это самая частая причина ошибки «Could not find a valid BME280 sensor».
Код для проверки
#include <Wire.h>
#include <Adafruit_BME280.h>
Adafruit_BME280 bme;
void setup() {
Serial.begin(115200);
if (!bme.begin(0x76)) { // не нашёл — пробуйте 0x77
Serial.println("Датчик не отвечает");
while (1) delay(10);
}
}
void loop() {
Serial.print(bme.readTemperature()); Serial.print(" C, ");
Serial.print(bme.readHumidity()); Serial.print(" %, ");
Serial.print(bme.readPressure() / 100.0F); Serial.println(" hPa");
delay(2000);
}
Библиотека Adafruit BME280 ставится через менеджер библиотек Arduino IDE, вместе с ней нужна Adafruit Unified Sensor.
Частая ошибка: температура завышена
Модуль греется сам: рядом с чувствительным элементом стоит кристалл, и в режиме непрерывного измерения датчик показывает на 1–2 градуса больше реальной температуры воздуха. Лечится двумя способами — реже опрашивать (режим forced mode вместо normal) и не ставить плату в закрытый корпус рядом с преобразователем питания.
BME280 или BMP280
Модули выглядят одинаково, отличаются одной буквой и наличием измерения влажности. BMP280 меряет только температуру и давление и стоит примерно вдвое дешевле. Если продавец отдаёт «BME280» по цене BMP280 — скорее всего, это и есть BMP280: проверьте после сборки, отдаёт ли датчик влажность.
Против DHT22
DHT22 умеет только температуру и влажность, работает по своему однопроводному протоколу и опрашивается не чаще раза в две секунды. Точность по влажности у него ±2–5 %, у BME280 — ±3 %, но BME280 при этом даёт давление и живёт на I²C вместе с другими устройствами. Подробный разбор DHT22 — в отдельном обзоре.
Короткий вывод: если проект про погоду и питание от батареи — берите BME280. Если нужна только влажность в помещении и важна цена — хватит DHT22.
Информация собрана из открытых источников и паспортов производителей и не является истиной в последней инстанции. Характеристики, распиновку и совместимость проверяйте по документации конкретной партии модуля перед покупкой и подключением.