X
Home > Blog > STEM for Arduino > HOW to Simulate Rainwater Detection with Kidspico

HOW to Simulate Rainwater Detection with Kidspico

By r November 19th, 2024 88 views
This station monitors weather conditions in real time.
In this experiment, we combine a steam sensor and a passive buzzer to achieve a rain detection function for this mini meteorological station. When the steam sensor detects rain, the buzzer alarms.

Flow

4101

Assembly

line1

Required Parts

41_00

line1

Step 1

41_01

line1

Step 2

41_02

line1

Step 3

41_03

line1

Step 4

41_04

line1

Step 5

41_05

line1

Step 6

41_06

line1

Step 7

41_07

line1

Step 8

41_08

line1

Completed

41_09

line1

Wiring Diagram

4102

Test Code

Open 4.1Rain detection.py and click 1407.

'''
 * Filename    : Rain detection
 * Thonny      : Thonny 4.1.4
 * Auther      : http//www.keyestudio.com
'''
from machine import Pin,PWM,ADC  # Import ADC module
import time

# configure ADC, range of 0-3.3V
# define io26,io27,io28,io29 to ADC channel 0,1,2,3
Water = ADC(28)  #Water = ADC(2)
conversion_fator = 3.3 / 65535  #Voltage value of a single scale

buzzer = PWM(Pin(3))
buzzer.freq(800)

# read the analog value every 0.1s, convert the analog value into voltage output.
while True:
    Water_value = Water.read_u16()
    voltage = Water_value * conversion_fator
    print('ADC Value:',Water_value,'   Voltage:',voltage,'V')
    time.sleep(0.1)
    if voltage > 1:
        buzzer.duty_u16(5000)
    else:
        buzzer.duty_u16(0)

Code Explanation

5top

Conceive:

Set a threshold of voltage to determine the water volume. When there is too much water, the voltage exceeds the threshold, rain is detected, and the buzzer alarms. The buzzer will stop alarming when the voltage is lower than the threshold.

line2

Code structure:

  1. Initialization. Set the pins of the steam sensor and the passive buzzer, set the voltage value of a single scale, and set the frequency of the passive buzzer.

  2. Loop.

    Print the analog value and voltage of the steam sensor.

    Determine whether the voltage exceeds 1 (Herein, we set 1 as the threshold, which is adjustable according to needs).

    • voltage > 1: buzzer alarms.

    • voltage ≤ 1: buzzer does not emit sounds.

5bottom

Test Result
4top
After uploading the code, the steam sensor will detects the ambient water volume and converts it to a voltage output. When the voltage is greater than 1, the buzzer alarms. If not, the buzzer will not emit sounds.
ATTENTION: Be careful when using water, please do not to drip to any other place outside the detection area to aviod a short circuit.
4103
4bottom
HOW to Detect Air Pressure with KidsIOT
Previous
HOW to Detect Air Pressure with KidsIOT
Read More
Comprehension! HOW to Monitor Smart Home Environment with ESP32
Next
Comprehension! HOW to Monitor Smart Home Environment with ESP32
Read More
Message Us