commit 8c58be278debc2f06981196e9998e8b4e354bc5e Author: Tanner Collin Date: Thu Feb 8 14:47:49 2024 -0700 Add prototype of water sensor code diff --git a/water_sensor.ino b/water_sensor.ino new file mode 100644 index 0000000..de2b282 --- /dev/null +++ b/water_sensor.ino @@ -0,0 +1,64 @@ +#define ADC_PIN A0 +#define RELAY_PIN 13 +#define RELAY_OFF LOW +#define RELAY_ON HIGH + +#define NUM_SAMPLES 20 +#define SAMPLE_TIME 100 +#define WATER_THRESHOLD 750 + +bool leakDetected = false; + +void relayOn() { + Serial.println("Setting relay ON"); + digitalWrite(RELAY_PIN, RELAY_ON); +} + +void relayOff() { + Serial.println("Setting relay OFF"); + digitalWrite(RELAY_PIN, RELAY_OFF); +} + +bool sampleWater() { + bool waterDetected = true; + + Serial.print("Samples: "); + + for (int i = 0; i < NUM_SAMPLES; i++) { + int sample = analogRead(ADC_PIN); + Serial.print(sample); + Serial.print(",\t"); + + if (sample < WATER_THRESHOLD) { + waterDetected = false; + } + + delay(SAMPLE_TIME); + } + + Serial.println(waterDetected ? "POS" : "NEG"); + + return waterDetected; +} + +void setup() { + Serial.begin(115200); + //Serial.setDebugOutput(true); + + Serial.println(); + Serial.println(); + Serial.println(); + Serial.println("===== BOOT UP ====="); + + pinMode(RELAY_PIN, OUTPUT); + relayOn(); +} + +void loop() { + if (sampleWater()) { + Serial.println("Water detected"); + relayOff(); + } else { + Serial.println("No water"); + } +}