Qdesnikmak
Member
Доброго времени суток всем.
Решил сделать погодную станцию из ESP-01 и датчика BME280.
Соединил по интерфейсу I2C (GPIO0 -SCL, GPIO2 - SDA), для питания использовал миниатюрный БП HiLink 3.3V, поставил дополнительный фильтрующий конденсатор 50мкФ. В качестве библиотеки используется <BME280I2C.h>
Вот такой процеДурью читаются показания:
void ReadBME() {
rbme = tbme;
#if BME_ON
if (bmestate) {
BME280::TempUnit tempUnit(BME280::TempUnit_Celsius);
BME280:resUnit presUnit(BME280:resUnit_Pa);
bme.read(pres, temp, hum, tempUnit, presUnit);
pres = pres / 133.33;
// Далее корректируем показания согласно поправок.
pres = pres + cpres;
temp = temp + ctemp;
hum = hum + chum;
} else {pres = 761.99; temp = 27.99; hum = 26.99;} // такие значения будут в случае неготовности или неисправности датчика
#else
pres = 760; temp = 26; hum = 25; // Либо добавляем тестовые значения.
#endif
}
Так вот такая получается ситуация - может отработать час, может сутки, может неделю, но иногда контроллер зависает, иногда выдает всякую чушь. Менял BME280 - результат такой же - может нормально поработать и в ступор. Может библиотека глючная? Кто сталкивался с таким непотребством, подскажите решения.
Решил сделать погодную станцию из ESP-01 и датчика BME280.
Соединил по интерфейсу I2C (GPIO0 -SCL, GPIO2 - SDA), для питания использовал миниатюрный БП HiLink 3.3V, поставил дополнительный фильтрующий конденсатор 50мкФ. В качестве библиотеки используется <BME280I2C.h>
Вот такой процеДурью читаются показания:
void ReadBME() {
rbme = tbme;
#if BME_ON
if (bmestate) {
BME280::TempUnit tempUnit(BME280::TempUnit_Celsius);
BME280:resUnit presUnit(BME280:resUnit_Pa);
bme.read(pres, temp, hum, tempUnit, presUnit);
pres = pres / 133.33;
// Далее корректируем показания согласно поправок.
pres = pres + cpres;
temp = temp + ctemp;
hum = hum + chum;
} else {pres = 761.99; temp = 27.99; hum = 26.99;} // такие значения будут в случае неготовности или неисправности датчика
#else
pres = 760; temp = 26; hum = 25; // Либо добавляем тестовые значения.
#endif
}
Так вот такая получается ситуация - может отработать час, может сутки, может неделю, но иногда контроллер зависает, иногда выдает всякую чушь. Менял BME280 - результат такой же - может нормально поработать и в ступор. Может библиотека глючная? Кто сталкивался с таким непотребством, подскажите решения.