XKC-Y25 non-contact liquid level sensor with ESP32

Supply 5 V Bus GPIO Measures water level
VCCOUTGNDMODE

Pins and ESP32 wiring

PinRoleESP32 pinNotes
VCCPowerVINBrown wire. Accepts 5 to 24 V: use VIN
OUTOutput (the part drives it)D25Yellow wire. On the -V version its HIGH level is the supply (5 V): use a voltage divider
GNDGroundGNDBlue wire
MODENot wired to the ESP32—Black wire. Selects whether OUT is HIGH or LOW with liquid; see the seller sheet

Suggested wiring for the 30-pin ESP32 DevKit, avoiding flash, input-only and strapping pins. BoardPilot checks it for you as you wire.

This module is sold for 5 V. Its outputs may be 5 V: use a level shifter or a voltage divider on ESP32 inputs.

Starter code (Arduino)

void setup() {
  Serial.begin(115200);
  pinMode(25, INPUT);  // OUT
}

void loop() {
  Serial.println(digitalRead(25));
  delay(100);
}

Sources

Try it in 3D in BoardPilot

BoardPilot Part data (JSON)

Related parts

Part data: CC BY 4.0, free to reuse with credit to BoardPilot.