#pragma once #if ADAFRUIT_BME #include namespace Bme { Adafruit_BME280 bme; // I2C Interface struct { float temp; float humidity; float pressure; float readTemp() { char buf[10]; sprintf(buf, "%.1f", bme.readTemperature()); temp = atof(buf); return temp; } float readHumidity() { char buf[10]; sprintf(buf, "%.1f", bme.readHumidity()); humidity = atof(buf); return humidity; } void readAll() { bme.takeForcedMeasurement(); readTemp(); readHumidity(); pressure = bme.readPressure() / 100; } } data; void setup() { Serial.println(F("BME280 setup")); if (!bme.begin(BME280_ADDRESS_ALTERNATE, &Wire)) { Serial.println(F("Could not find a valid BME280 sensor, check wiring!")); return; } /* Settings from examples: advancedsettings.ino */ // -- Weather Station Scenario -- Serial.println("-- Weather Station Scenario --"); bme.setSampling(Adafruit_BME280::MODE_FORCED, /* Operating Mode. */ Adafruit_BME280::SAMPLING_X1, // temperature Adafruit_BME280::SAMPLING_X1, // pressure Adafruit_BME280::SAMPLING_X1, // humidity Adafruit_BME280::FILTER_OFF); } } #else #include namespace Bme { BME280 bme; // I2C Interface bool initialised = false; struct { float temp; float humidity; float pressure; float readTemp() { char buf[10]; sprintf(buf, "%.1f", bme.readTempC()); temp = atof(buf); return temp; } float readHumidity() { char buf[10]; sprintf(buf, "%.1f", bme.readFloatHumidity()); humidity = atof(buf); return humidity; } void readAll() { if (!initialised) return; // bme.takeForcedMeasurement(); readTemp(); readHumidity(); pressure = bme.readFloatPressure(); } } data; void setup() { Serial.println(F("BME280 setup")); bme.setI2CAddress(0x76); if (!bme.beginI2C()) { Serial.println(F("Could not find a valid BME280 sensor, check wiring!")); return; } initialised = true; /* Settings from examples: advancedsettings.ino */ // -- Weather Station Scenario -- // Serial.println("-- Weather Station Scenario --"); // bme.setSampling(Adafruit_BME280::MODE_FORCED, /* Operating Mode. */ // Adafruit_BME280::SAMPLING_X1, // temperature // Adafruit_BME280::SAMPLING_X1, // pressure // Adafruit_BME280::SAMPLING_X1, // humidity // Adafruit_BME280::FILTER_OFF); } } #endif