Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

change filter settings, to enhance response time #122

Merged
merged 1 commit into from Jul 13, 2019
Merged
Changes from all commits
Commits
File filter...
Filter file types
Jump to…
Jump to file or symbol
Failed to load files and symbols.

Always

Just for now

change filter settings, to enhance response time

according to the BME280 datasheet the Suggested settings for weather monitoring are:

Sensor mode: forced mode
Oversampling settings: pressure ×1, temperature ×1, humidity ×1
IIR filter settings: filter off

the default setting up to now was a filter setting of 16, which means we need 22 samples  to reach ≥75 % of step temperatur change, with the "Filter off" setting we only need 1 Sample

example: i put my BME280 sensor (which reports every 3 minutes) from room temperatur (23°C) into the freezer (-20°C)
without this change it takes a BME280 sensor more than 2 hours to report the right temperature...  after my change it only takes a few minutes...
  • Loading branch information...
krikk committed Jul 12, 2019
commit 1ae0625f69fcbeab4925ea391b5998cf53e62301
@@ -12,13 +12,24 @@

namespace as {

BME280I2C::Settings settings(
BME280::OSR_X1, // Temperature Oversampling Rate (tempOSR): OSR Enum, default = OSR_X1
BME280::OSR_X1, // Humidity Oversampling Rate (humOSR): OSR Enum, default = OSR_X1
BME280::OSR_X1, // Pressure Oversampling Rate (presOSR): OSR Enum, default = OSR_X1
BME280::Mode_Forced, // Mode (mode): Mode Enum, default = Mode_Forced
BME280::StandbyTime_1000ms, // Standby Time (standbyTime): StandbyTime Enum, default = StandbyTime_1000ms
BME280::Filter_Off, // Filter (filter): Filter Enum, default = Filter_16
BME280::SpiEnable_False // SPI Enable: SpiEnable Enum, default = false
);

// https://github.com/finitespace/BME280
class Bme280 : public Temperature, public Pressure, public Humidity {
BME280I2C _bme;
public:
Bme280 () {}
void init () {
_present = _bme.begin();
_bme.setSettings(settings);
}
bool measure (__attribute__((unused)) bool async=false) {
if( present() == true ) {
ProTip! Use n and p to navigate between commits in a pull request.
You can’t perform that action at this time.