Получение данных с BME280
BME280 даёт три параметра окружающей среды:
температура (°C);
атмосферное давление (гПа);
относительная влажность (%).
В кубсате он сидит на шине I²C по адресу 0x76 (см. таблицу в
Подготовка среды разработки). Перед этим тестом убедитесь, что
Проверка шины I²C нашёл BME280.
Необходимые библиотеки
В Tools → Manage Libraries… поставить:
Adafruit BME280 Library(Adafruit);Adafruit Unified Sensor(зависимость).
Тестовый скетч
#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-заголовка и далее
раз в секунду — три значения.
Как запустить
Залейте скетч.
Откройте 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 |
постоянное |
Давление |
950-1050 гПа |
значения < 800 или > 1100 — почти всегда битый сенсор |
Влажность |
20-70 % |
0 % или 100 % без причины |
Простая ручная проверка: подышать на модуль — температура и влажность должны заметно подскочить (на 1-3 °C и 5-15 % соответственно), потом плавно вернуться к фоновым значениям.
Если значения nan
Сенсор не инициализировался (адрес неверный, шина легла) — вернитесь к Проверка шины I²C.
Перегретый или повреждённый модуль — сравните с другим, если есть.
Питание не 5 В (модуль терпит и 3.3 В, но клон может работать нестабильно).