from machine import Pin,PWM
import utime
trigger = Pin(2, Pin.OUT)
echo = Pin(4, Pin.IN)
buzzer_pin = Pin(21, Pin.OUT)
WATER_LEVEL_HIGH = 400
WATER_LEVEL_LOW = 100
def ultra():
trigger.low()
utime.sleep_us(2)
trigger.high()
utime.sleep_us(5)
trigger.low()
while echo.value() == 0:
signaloff = utime.ticks_us()
while echo.value() == 1:
signalon = utime.ticks_us()
timespeed = signalon-signaloff
distance = (timespeed*0.0343)/2
return distance
def activate_buzzer():
buzzer = PWM(Pin(buzzer_pin))
buzzer.freq(500)
buzzer.duty_u16(45618)
utime.sleep(1)
def deactivate_buzzer():
buzzer = PWM(Pin(buzzer_pin))
buzzer.duty_u16(0)
def water_level():
distance = ultra()
print("Distance measured is:",distance,"cm")
if distance < WATER_LEVEL_LOW:
print("Water level is low")
activate_buzzer()
elif distance > WATER_LEVEL_HIGH:
print("Water level is high")
activate_buzzer()
else:
print("The distance is normal")
deactivate_buzzer()
while True:
water_level()
utime.sleep(1)