diff options
| author | Sam Anthony <sam@samanthony.xyz> | 2024-11-07 18:18:19 -0500 |
|---|---|---|
| committer | Sam Anthony <sam@samanthony.xyz> | 2024-11-07 18:18:19 -0500 |
| commit | 27d8851d0e3db8d9ed8eb333c91356605c5cfcc1 (patch) | |
| tree | b1e0e20c710026bcb1008df11fe906d004e339a9 /HvacStation | |
| parent | 1544ec587462b9ba1fe818bc4b3dd7e3eedb4d15 (diff) | |
| download | soen422-27d8851d0e3db8d9ed8eb333c91356605c5cfcc1.zip | |
HvacStation: implement state machine
Diffstat (limited to 'HvacStation')
| -rw-r--r-- | HvacStation/HvacStation.ino | 19 |
1 files changed, 13 insertions, 6 deletions
diff --git a/HvacStation/HvacStation.ino b/HvacStation/HvacStation.ino index 2084699..5334516 100644 --- a/HvacStation/HvacStation.ino +++ b/HvacStation/HvacStation.ino @@ -2,6 +2,10 @@ #include <HTTPClient.h> #include <PID_v1.h> +enum { + SECOND = 1000, + PERIOD = 30*SECOND, +}; enum pins { SOLENOID_PIN = 21 }; enum tunings { P = 2, @@ -42,12 +46,15 @@ setup(void) { void loop(void) { - float humidity; - if (getHumidity(&humidity) != 0) { - Serial.println("Failed to get humidity from server."); - Serial.println("Retrying in 5s..."); - delay(5000); - return; + static unsigned long lastUpdate = 0; // Last time humidity was retrived from server. + static float humidity = TARGET_HUMIDITY; + + unsigned long now = millis(); + if (now - lastUpdate > PERIOD) { + if (getHumidity(&humidity) == 0) + lastUpdate = now; + else + Serial.println("Failed to get humidity from server."); } pidInput = humidity; |