The geeekus Water Level Droplet Rainfall Sensor Detection Module is a high-quality sensor for Arduino, Raspberry Pi, micro:bit and most other 5V microcontrollers.
This Water Level Sensor has many uses like measuring the water levels, monitoring a sump pit, detecting rainfall, detecting leaks, etc..
The sensor has ten exposed traces, five are power traces and five are sense traces. The power and sense traces are not connected but become bridged when immersed in water.
The Power LED on the board will light up when the board is powered.
The operation of the water level sensor is straight forward.
The power and sense traces form a variable resistor (much like a potentiometer) whose resistance varies based on how much they are exposed to water.
This resistance varies inversely with the depth of immersion of the sensor in water: The more water the sensor is immersed in, the better the conductivity and the lower the resistance. The less water the sensor is immersed in, the poorer the conductivity and the higher the resistance.
The sensor generates an output voltage proportional to the resistance; by measuring this voltage, the water level can be determined.
Pinout:
The water level sensor has three pins to connect:
-S (Signal) is an analog output pin that will be connected to one of your Arduino’s analog inputs.
-V pin provides power to the sensor. It is recommended that the sensor be powered from 3.3V to 5V. Please keep in mind that the analog output will vary depending on the voltage supplied to the sensor.
– G is the ground pin.
Specifications:
-Operating voltage: DC5V
-Operating current: ﹤20mA
-Sensor type: Analog
-Detection area: 40mm x16mm
-Production process: FR4 double-side tinned
-Humanized design: Anti-slippery semi-lunar recess
-Working Temperature: 10℃-30℃
-Working Humidity: 10%-90% without condensation
Connection Diagram:
Sample Code
int analogPin = 0; //connect water sensor to analog interface 0 int led = 13; //LED to digital interface 13 int val = 0; //define the initial value of variable ‘val’ as 0 int data = 0; //define the initial value of variable ‘data’ as 0 void setup() { pinMode(led, OUTPUT); //define led as output pin Serial.begin(9600); //set baud rate at 9600 } void loop() { val = analogRead(analogPin); //read and assign analog value to variable ’val’ if(val>700){ //decide whether variable ‘val’ is over 700 digitalWrite(led,HIGH); //turn on LED when variable ‘val’ is over 700 } else{ digitalWrite(led,LOW); //turn off LED when variable ‘val’ is under 700 } data = val; //variable ’val’ assigns value to variable ‘data’ Serial.println(data); //print variable ‘data’ by Serial.print delay(100); }
The LED on the module will turn on when a certain water level is reached.