summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSam Anthony <sam@samanthony.xyz>2024-11-07 18:18:19 -0500
committerSam Anthony <sam@samanthony.xyz>2024-11-07 18:18:19 -0500
commit27d8851d0e3db8d9ed8eb333c91356605c5cfcc1 (patch)
treeb1e0e20c710026bcb1008df11fe906d004e339a9
parent1544ec587462b9ba1fe818bc4b3dd7e3eedb4d15 (diff)
downloadsoen422-27d8851d0e3db8d9ed8eb333c91356605c5cfcc1.zip
HvacStation: implement state machine
-rw-r--r--HvacStation/HvacStation.ino19
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;