#define SENSOR_POWER 3
#define SENSOR_SIGNAL 34
#define TOUCH_PIN 4
#define LED 2
#define waterthreshold 100
#define touchthreshold 100
#define N 1000 // max number of readings possible
typedef struct readings_table{
int time;
int reading;
} readings_table;
void setup() {
Serial.begin(115200);
Serial.println("Hello, ESP32!");
pinMode(SENSOR_POWER,OUTPUT);
digitalWrite(SENSOR_POWER,LOW);
pinMode(LED,LOW);
digitalWrite(LED,LOW);
}
int n=0;
readings_table table[N];
void loop() {
digitalWrite(SENSOR_POWER,HIGH);
int a=analogRead(SENSOR_SIGNAL);
digitalWrite(SENSOR_POWER,LOW);
table[n].time=millis(); // time since start of communication
table[n].reading=a;
n++;
if(a < waterthreshold){
digitalWrite(LED, HIGH);
} else{
digitalWrite(LED, LOW);
}
if(touchRead(SENSOR_SIGNAL)< touchthreshold){
for(int i=0;i<n;i++){
Serial.print("Time: ");
Serial.print(table[i].time);
Serial.print(" Reading: ");
Serial.println(table[i].reading);
}
n=0;
}
delay(10000); // 10 seconds delay
}