from machine import Pin
import utime
trigger = Pin(7, Pin.OUT)
echo = Pin(2, Pin.IN)
# Define water level thresholds
WATER_LEVEL_LOW = 100 # Adjust this value based on your setup
WATER_LEVEL_HIGH = 400 # Adjust this value based on your setup
# Define buzzer pin and configure it as an output
buzzer_pin = Pin(6, Pin.OUT)
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()
timepassed = signalon - signaloff
distance = (timepassed * 0.0343) / 2
return distance
def activate_buzzer():
# Function to activate the buzzer
buzzer_pin.on()
utime.sleep(1) # Buzzer on for 1 second
buzzer_pin.off()
def check_water_level():
distance = ultra()
print("\nThe distance measured is", distance, "cm")
# Check the water level
if distance < WATER_LEVEL_LOW:
print("\nVery low water level, Please check.")
activate_buzzer() # Activate the buzzer when water level is low
elif distance > WATER_LEVEL_HIGH:
print("\nToo high water level. Please check.")
activate_buzzer() # Activate the buzzer when water level is high
else:
print("\nThe water levels are NORMAL.")
while True:
check_water_level()
utime.sleep(1)