YF-S401 small water flow sensor with ESP32
Supply 5 V
Bus GPIO
Measures flow
Pins and ESP32 wiring
| Pin | Role | ESP32 pin | Notes |
|---|---|---|---|
| VCC | Power | VIN | Red wire. Needs 5 V: use VIN |
| GND | Ground | GND | Black wire |
| SIG | Output (the part drives it) | D25 | Yellow wire. Pulses at the supply level: use a voltage divider. About 98 pulses per second per L/min |
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); // SIG
}
void loop() {
Serial.println(digitalRead(25));
delay(100);
}
Sources
- YF-S401 seller datasheet, Supply 5 to 24 V; range 0.3 to 6 L/min; about 5880 pulses per litre. Calibrate with a known volume
Try it in 3D in BoardPilot
Related parts
A02YYUW waterproof ultrasonic distance (UART)A3144 hall effect switchAM312 mini PIR motion sensorATGM336H GPS/BeiDou moduleBeitian BN-220 GPS moduleBenewake TF-Luna LiDAR (UART mode)
Part data: CC BY 4.0, free to reuse with credit to BoardPilot.