-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathClimateSimulation.ino
More file actions
35 lines (22 loc) · 905 Bytes
/
ClimateSimulation.ino
File metadata and controls
35 lines (22 loc) · 905 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#include "Constants.h"
#include <Time.h>
//Settings.lcdBrightness = 120;
//Settings.lcdTimeout = 10;
//Settings.maxTargetTemp = 2260; //22.6*C
//Settings.minTargetTemp = 1530; //15.3*C
//Settings.maxTargetTimeHours = 13; //encoding 13:40
//Settings.maxTargetTimeMinutes = 40;
//Settings.minTargetTimeHours = 4; //encoding 4:25
//Settings.minTargetTimeMinutes = 25;
time_t lastMinTempTime;
float getSimulateClimateTemperature() {
float maxC = Settings.getMaxTargetTempFloat();
float minC = Settings.getMinTargetTempFloat();
float targetTemp = getSimulateClimationCosine(minC, maxC);
Serial.print(", targetTemp = ");Serial.print(targetTemp);
return targetTemp;
}
float getSimulateClimationCosine(float minC, float maxC) {
time_t xTime = now() - Settings.getMinTargetTimeHour() * SECS_PER_HOUR;
return (maxC - minC)/2 * (1 - cos(2 * PI * xTime / SECS_PER_DAY)) + minC;
}