Получение данных с BME280

BME280 даёт три параметра окружающей среды:

  • температура (°C);

  • атмосферное давление (гПа);

  • относительная влажность (%).

В кубсате он сидит на шине I²C по адресу 0x76 (см. таблицу в Подготовка среды разработки). Перед этим тестом убедитесь, что Проверка шины I²C нашёл BME280.

Необходимые библиотеки

В Tools Manage Libraries… поставить:

  • Adafruit BME280 Library (Adafruit);

  • Adafruit Unified Sensor (зависимость).

Тестовый скетч

examples/bme280_read/bme280_read.ino
#include <Wire.h>
#include <Adafruit_Sensor.h>
#include <Adafruit_BME280.h>

Adafruit_BME280 bme;

void setup() {
  Serial.begin(115200);
  delay(300);

  Wire.begin(); // Nano: SDA=A4, SCL=A5

  // Частые адреса BME280: 0x76 или 0x77
  bool ok = bme.begin(0x76);
  if (!ok) ok = bme.begin(0x77);

  if (!ok) {
    Serial.println("BME280 not found. Check wiring and address (0x76/0x77).");
    while (true) {
      delay(1000);
    }
  }

  Serial.println("BME280 OK");
  Serial.println("Temp_C,Pressure_hPa,Humidity_%");
}

void loop() {
  float t = bme.readTemperature();
  float p = bme.readPressure() / 100.0f; // Pa -> hPa
  float h = bme.readHumidity();

  Serial.print(t, 2);
  Serial.print(",");
  Serial.print(p, 2);
  Serial.print(",");
  Serial.println(h, 2);

  delay(1000);
}

Скетч пробует адрес 0x76, потом 0x77 (на некоторых клонах модуля именно так). После инициализации печатает строку CSV-заголовка и далее раз в секунду — три значения.

Как запустить

  1. Залейте скетч.

  2. Откройте Serial Monitor на скорости 115200.

Что должно быть видно

BME280 OK
Temp_C,Pressure_hPa,Humidity_%
23.45,1013.25,38.20
23.45,1013.27,38.18
23.46,1013.25,38.21
...

В помещении ожидаемые диапазоны:

Параметр

Типичное значение

Что считать аномалией

Температура

18-28 °C

постоянное nan или скачки на ±20 °C

Давление

950-1050 гПа

значения < 800 или > 1100 — почти всегда битый сенсор

Влажность

20-70 %

0 % или 100 % без причины

Простая ручная проверка: подышать на модуль — температура и влажность должны заметно подскочить (на 1-3 °C и 5-15 % соответственно), потом плавно вернуться к фоновым значениям.

Если значения nan

  • Сенсор не инициализировался (адрес неверный, шина легла) — вернитесь к Проверка шины I²C.

  • Перегретый или повреждённый модуль — сравните с другим, если есть.

  • Питание не 5 В (модуль терпит и 3.3 В, но клон может работать нестабильно).