50 lines
1.4 KiB
C++

#pragma once
#include <Adafruit_BME280.h>
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);
}
}