Restart Arduino weekly, but not if triggered

This commit is contained in:
Tanner Collin 2024-07-01 13:34:42 -06:00
parent a6befca199
commit 45a2117858

View File

@ -15,7 +15,8 @@
#define WATER_THRESHOLD 750
#define SENSE_THRESHOLD 100
#define MESSAGE_INTERVAL 1000 * 60 * 50 // 50 minutes
#define MESSAGE_INTERVAL 1000 * 60 * 20 // 20 minutes
#define RESTART_INTERVAL 1000 * 60 * 60 * 24 * 7 // 7 days
WiFiClient wifiClient;
MqttClient mqttClient(wifiClient);
@ -144,15 +145,24 @@ void loop() {
static unsigned long last_pos_message = 0;
static unsigned long last_neg_message = 0;
static unsigned long last_sense_message = 0;
static bool hasTriggered = false;
bool leakDetected = sampleWater();
bool cableDetected = senseCable();
if (leakDetected) {
relayOff();
hasTriggered = true;
Serial.println("Leak detected!");
}
if (!hasTriggered && millis() > RESTART_INTERVAL) {
Serial.println("Weekly restarting Arduino...");
relayOff();
ESP.restart();
}
mqttClient.poll();
if (WiFi.status() != WL_CONNECTED) {