5.9 Sistema di monitoraggio del livello dell’acqua
5.9.1 Sensore di livello dell’acqua
Il sensore di livello dell’acqua integra una serie di linee parallele esposte per misurare il volume di acqua e goccioline.

Attenzione: ad eccezione dell’area di rilevamento, il sensore non è impermeabile. Versare acqua su altre aree potrebbe causare un cortocircuito.
Aprire il codice 5.9.1Water-Level-Sensor con Arduino IDE.
#define WaterLevelPin 33
void setup() {
Serial.begin(9600);
pinMode(WaterLevelPin,INPUT);
}
void loop() {
int ReadValue = analogRead(WaterLevelPin);
Serial.println(ReadValue);
delay(500);
}
Scegliere la scheda ESP32 Dev Module e la porta COM, quindi caricare il codice.

Risultato del test:
Aprire il monitor seriale. Toccare l’area di rilevamento del sensore con un dito bagnato e il valore attualmente rilevato verrà stampato sul monitor (intervallo: 0~4095).

5.9.2 Sistema di monitoraggio del livello dell’acqua
Aprire il codice 5.9.2Water-Level-Testing-System con Arduino IDE
#include <LiquidCrystal_I2C.h>
#define BuzzerPin 16
#define WaterLevelPin 33
LiquidCrystal_I2C lcd(0x27,16,2);
void setup() {
//Initialize the serial port
Serial.begin(9600);
//Set the water level pin to input mode
pinMode(WaterLevelPin,INPUT);
//Initialize LCD
lcd.init();
//turn on the LCD backlight
lcd.backlight();
//clear displays on LCD
lcd.clear();
ledcAttachChannel(BuzzerPin,1000,8,4);
}
void loop() {
//Read the value of water level sensor
int ReadValue = analogRead(WaterLevelPin);
//Set the display position of cursor
lcd.setCursor(0, 0);
//Set the display position of characters
lcd.print("WaterLevel:");
lcd.setCursor(6, 1);
lcd.print(ReadValue);
//When the detected value exceeds the threshold, the buzzer starts to alarm
if(ReadValue >= 2000)
{
ledcWriteTone(BuzzerPin,659);
delay(100);
ledcWriteTone(BuzzerPin,532);
delay(100);
ledcWriteTone(BuzzerPin,659);
delay(100);
ledcWriteTone(BuzzerPin,0); //Stop alarming
}
delay(500);
lcd.clear();
}
Scegliere la scheda ESP32 Dev Module e la porta COM, quindi caricare il codice.

Risultato del test:
Il display LCD mostra il valore in tempo reale del livello dell’acqua. Quando il sensore di livello dell’acqua rileva che il livello dell’acqua è inferiore a 200, il buzzer inizia ad allarmare.
