commit
8c58be278d
1 changed files with 64 additions and 0 deletions
@ -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"); |
||||||
|
} |
||||||
|
} |
Loading…
Reference in new issue