5.9 Wasserstandsüberwachungssystem

5.9.1 Wasserstandssensor

Der Wasserstandssensor integriert eine Reihe von freiliegenden parallelen Linien, um das Volumen von Wasser und Tropfen zu messen.

cou91

Achtung: Mit Ausnahme des Erfassungsbereichs ist der Sensor nicht wasserdicht. Das Verschütten von Wasser auf andere Bereiche kann zu einem Kurzschluss führen.

Öffnen Sie den Code 5.9.1Water-Level-Sensor mit der Arduino IDE.

#define WaterLevelPin 33

void setup() {

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

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

Wählen Sie das Board ESP32 Dev Module und den COM-Port und laden Sie den Code hoch.

5458448

Testergebnis:

Öffnen Sie den seriellen Monitor. Berühren Sie den Erfassungsbereich des Sensors mit einem feuchten Finger, und der aktuell erfasste Wert wird auf dem Monitor ausgegeben (Bereich: 0~4095).

image-20250417150303854

5.9.2 Wasserstandsüberwachungssystem

Öffnen Sie den Code 5.9.2Water-Level-Testing-System mit der 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();
}

Wählen Sie das Board ESP32 Dev Module und den COM-Port und laden Sie den Code hoch.

5458448

Testergebnis:

Das LCD zeigt den Echtzeitwert des Wasserstands an. Wenn der Wasserstandssensor erkennt, dass der Wasserstand unter 200 liegt, beginnt der Summer zu alarmieren.

flo9