New features and refactoring

This commit is contained in:
Yurii
2022-11-17 03:24:39 +03:00
parent 0b887a8400
commit 5be63c4f85
10 changed files with 212 additions and 142 deletions

View File

@@ -7,21 +7,39 @@ public:
SensorsTask(bool _enabled = false, unsigned long _interval = 0) : LeanTask(_enabled, _interval) {}
protected:
float filteredOutdoorTemp = 0;
bool emptyOutdoorTemp = true;
void setup() {}
void loop() {
// DS18B20 sensor
if (outdoorSensor.online()) {
if (outdoorSensor.readTemp()) {
vars.temperatures.outdoor = outdoorSensor.getTemp();
float rawTemp = outdoorSensor.getTemp();
INFO_F("[SENSORS][DS18B20] Raw temp: %f \n", rawTemp);
if ( emptyOutdoorTemp ) {
filteredOutdoorTemp = rawTemp;
emptyOutdoorTemp = false;
} else {
filteredOutdoorTemp += (rawTemp - filteredOutdoorTemp) * OUTDOOR_SENSOR_FILTER_K;
}
filteredOutdoorTemp = floor(filteredOutdoorTemp * 100) / 100;
if ( fabs(vars.temperatures.outdoor - filteredOutdoorTemp) > 0.099 ) {
vars.temperatures.outdoor = filteredOutdoorTemp;
INFO_F("[SENSORS][DS18B20] New temp: %f \n", filteredOutdoorTemp);
}
} else {
DEBUG("Invalid data from outdoor sensor (DS18B20)");
ERROR("[SENSORS][DS18B20] Invalid data from sensor");
}
outdoorSensor.requestTemp();
} else {
WARN("Failed to connect to outdoor sensor (DS18B20)");
ERROR("[SENSORS][DS18B20] Failed to connect to sensor");
}
}
};