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.

cou91

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.

5458448

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).

image-20250417150303854

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.

5458448

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.

flo9