5.9 Waterniveaubewakingssysteem

5.9.1 Waterniveausensor

De waterniveausensor integreert een reeks blootliggende parallelle lijnen om het volume water en druppels te meten.

cou91

Let op: Met uitzondering van het detectiegebied is de sensor niet waterdicht. Water morsen op andere gebieden kan leiden tot kortsluiting.

Open de 5.9.1Water-Level-Sensor code met Arduino IDE.

#define WaterLevelPin 33

void setup() {

  Serial.begin(9600);
  pinMode(WaterLevelPin,INPUT);
}

void loop() {
  int ReadValue = analogRead(WaterLevelPin);
  Serial.println(ReadValue);
  delay(500);
}

Kies het ESP32 Dev Module bord en de COM poort, en upload de code.

5458448

Testresultaat:

Open de seriële monitor. Raak het detectiegebied van de sensor aan met een natte vinger en de momenteel gedetecteerde waarde wordt op de monitor afgedrukt (bereik: 0~4095).

image-20250417150303854

5.9.2 Waterniveaubewakingssysteem

Open de 5.9.2Water-Level-Testing-System code met 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();
}

Kies het ESP32 Dev Module bord en de COM poort, en upload de code.

5458448

Testresultaat:

LCD toont de real-time waarde van het waterniveau. Wanneer de waterniveausensor detecteert dat het waterniveau lager is dan 200, begint de zoemer te alarmeren.

flo9