from machine import Pin,PWM
import utime
trigger = Pin(2, Pin.OUT)
echo = Pin(4, Pin.IN)
pin_buzzer = 21
WATER_LEVEL_LOW = 100
WATER_LEVEL_HIGH = 400
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(pin_buzzer))
buzzer.freq(500)
buzzer.duty_u16(45618)
utime.sleep(1)
def deactivate_buzzer():
buzzer = PWM(Pin(pin_buzzer))
buzzer.duty_u16(0)
# Or you can deinitialize it if necessary
# buzzer.deinit()
print("Buzzer deactivated")
def distance():
distance = ultra()
print("The distance measured is:",distance,"cm")
if distance<WATER_LEVEL_LOW:
print("Water level is too low")
activate_buzzer()
elif distance>WATER_LEVEL_HIGH:
print("Water level is too high")
activate_buzzer()
else:
print("\nThe water level is normal.")
deactivate_buzzer()
while True:
distance()
utime.sleep(1)