2024-01-13 15:40:00 +01:00

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 altitude;
float readTemp() {
char buf[10];
sprintf(buf, "%.1f", bme.readTemperature() - 2);
temp = atof(buf);
return temp;
}
float readHumidity() {
char buf[10];
sprintf(buf, "%.1f", bme.readHumidity() - 2);
humidity = atof(buf);
return humidity;
}
void readAll() {
readTemp();
readHumidity();
pressure = bme.readPressure() / 100;
altitude = bme.readAltitude(1006);
}
} 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;
}
/* Default settings from datasheet. */
bme.setSampling(Adafruit_BME280::MODE_NORMAL, /* Operating Mode. */
Adafruit_BME280::SAMPLING_X2, // temperature
Adafruit_BME280::SAMPLING_X16, // pressure
Adafruit_BME280::SAMPLING_X2, // humidity
Adafruit_BME280::FILTER_X16,
Adafruit_BME280::STANDBY_MS_500); /* Standby time. */
}
}