mirror of
https://github.com/Laxilef/OTGateway.git
synced 2025-12-12 03:04:27 +05:00
New features and refactoring
This commit is contained in:
@@ -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");
|
||||
}
|
||||
}
|
||||
};
|
||||
Reference in New Issue
Block a user