This commit is contained in:
Alex
2021-05-25 00:15:25 +03:00
parent 34300db7e6
commit df0090efa4
9 changed files with 673 additions and 0 deletions

View File

@@ -0,0 +1,33 @@
/*
Пример индивидуальных настроек датчика под ваше применение
См. константы в GyverBME280.h , стандартные настройки можно изменить там же в классе GyverMBE280
Настройки вступают в силу только ПОСЛЕ .begin();
*/
#include <GyverBME280.h> // Подключение библиотеки
GyverBME280 bme; // Создание обьекта bme
void setup() {
Serial.begin(9600); // Запуск последовательного порта
bme.setFilter(FILTER_COEF_8); // Настраиваем коофициент фильтрации
bme.setTempOversampling(OVERSAMPLING_8); // Настраиваем передискретизацию для датчика температуры
bme.setPressOversampling(OVERSAMPLING_16); // Настраиваем передискретизацию для датчика давления
bme.setStandbyTime(STANDBY_500MS); // Устанавливаем время сна между измерениями (у нас обычный циклический режим)
bme.begin(); // Если на этом настройки окончены - инициализируем датчик
}
void loop() {
Serial.print("Temperature: ");
Serial.print(bme.readTemperature()); // Выводим темперутуру в [*C]
Serial.println(" *C");
Serial.print("Humidity: ");
Serial.print(bme.readHumidity()); // Выводим влажность в [%]
Serial.println(" %");
Serial.print("Pressure: ");
Serial.print(pressureToMmHg(bme.readPressure())); // Выводим давление в мм рт. столба
Serial.println(" mm Hg");
Serial.println("");
delay(1000);
}

View File

@@ -0,0 +1,31 @@
/*
Пример работы датчика с пониженным энергопотреблением
По умолчанию - NORMAL_MODE - Время сна между преобразованиями - 250мс
См. константы в GyverBME280.h , стандартные настройки можно изменить там же в классе GyverMBE280
Настройки вступают в силу только ПОСЛЕ .begin();
*/
#include <GyverBME280.h> // Подключение библиотеки
GyverBME280 bme; // Создание обьекта bme
void setup() {
Serial.begin(9600); // Запуск последовательного порта
bme.setHumOversampling(MODULE_DISABLE); // Отключаем неиспользуемый модуль измерения влажности - экономим энергию
// bme.setMode(FORCED_MODE); // По возможности используем принудительный режим с редким опросом
bme.setStandbyTime(STANDBY_1000MS); // Если используем обычный режим - увеличиваем время сна между измерениями насколько это возможно в нашем случае
bme.begin(); // Если на этом настройки окончены - инициализируем датчик
}
void loop() {
// bme.oneMeasurement(); // Если используем принудительный мод - необходимо будить датчик для проведения измерения
// while (bme.isMeasuring()); // И дождаться окончания текущего измерения , чтобы не взять устаревшие данные
Serial.print("Temperature: ");
Serial.print(bme.readTemperature()); // Выводим темперутуру в [*C]
Serial.println(" *C");
Serial.print("Pressure: ");
Serial.print(pressureToMmHg(bme.readPressure())); // Выводим давление в мм рт. столба
Serial.println(" mm Hg");
Serial.println("");
delay(1000);
}

57
examples/modes/modes.ino Normal file
View File

@@ -0,0 +1,57 @@
/*
Пример работы датчика в двух режимах - обычном и принудительном , а так же перезапись настроек во время работы
О режимах:
NORMAL_MODE - Обычный - датчик делает измерения циклически , между измерениями спит , время сна настраивается с помощью .setStandbyTime(); , см пример low_power
FORCED_MODE - Принудительный - датчик спит , после вызова .oneMeasurement(); просыпается и делает ОДНО преобразование , после чего уходит в сон
По умолчанию - NORMAL_MODE - Время сна между преобразованиями - 250мс
См. константы в GyverBME280.h , стандартные настройки можно изменить там же в классе GyverMBE280
*/
#include <GyverBME280.h> // Подключение библиотеки
GyverBME280 bme; // Создание обьекта bme
void setup() {
Serial.begin(9600); // Запуск последовательного порта
bme.setMode(FORCED_MODE); // Перед инициализацией говорим датчику работать в принудительном режиме
bme.begin(); // Больше настройки не нужны - инициализируем датчик
while (millis() < 10000) { // Работа с датчиком в принудительном режиме в течении первых 10 секунд
bme.oneMeasurement(); // Просим датчик проснуться и сделать одно преобразование
while (bme.isMeasuring()); // Ждем окончания преобразования
Serial.print("Temperature: ");
Serial.print(bme.readTemperature()); // Читаем и выводим температуру
Serial.println(" *C");
Serial.print("Humidity: ");
Serial.print(bme.readHumidity()); // Читаем и выводим влажность
Serial.println(" %");
Serial.print("Pressure: ");
Serial.print(pressureToMmHg(bme.readPressure())); // Читаем и выводим давление
Serial.println(" mm Hg");
Serial.println("");
delay(1000);
}
bme.setMode(NORMAL_MODE); // Спустя 10 секунд переключаем датчик в обычный режим
bme.begin(); // Переинициализируем датчик после изменения настроек - обязательная процедура
}
void loop() { // Работа с датчиком в обычном режиме , преобразования идут в цикличном режиме
Serial.print("Temperature: ");
Serial.print(bme.readTemperature()); // Читаем и выводим температуру
Serial.println(" *C");
Serial.print("Humidity: ");
Serial.print(bme.readHumidity()); // Читаем и выводим влажность
Serial.println(" %");
Serial.print("Pressure: ");
Serial.print(pressureToMmHg(bme.readPressure())); // Читаем и выводим давление
Serial.println(" mm Hg");
Serial.println("");
delay(1000);
}

View File

@@ -0,0 +1,33 @@
/*
Простой пример, демонстрирующий основные функции измерения температуры, давления и влажности
*/
#include <GyverBME280.h> // Подключение библиотеки
GyverBME280 bme; // Создание обьекта bme
void setup() {
Serial.begin(9600); // Запуск последовательного порта
bme.begin(); // Если доп. настройки не нужны - инициализируем датчик
}
void loop() {
Serial.print("Temperature: ");
Serial.print(bme.readTemperature()); // Выводим темперутуру в [*C]
Serial.println(" *C");
Serial.print("Humidity: ");
Serial.print(bme.readHumidity()); // Выводим влажность в [%]
Serial.println(" %");
float pressure = bme.readPressure(); // Читаем давление в [Па]
Serial.print("Pressure: ");
Serial.print(pressure / 100.0F); // Выводим давление в [гПа]
Serial.print(" hPa , ");
Serial.print(pressureToMmHg(pressure)); // Выводим давление в [мм рт. столба]
Serial.println(" mm Hg");
Serial.print("Altitide: ");
Serial.print(pressureToAltitude(pressure)); // Выводим высоту в [м над ур. моря]
Serial.println(" m");
Serial.println("");
delay(1000);
}