import time
from machine import Pin
import utime
# Define GPIO pin numbers
TRIG_PIN = 2 # GPIO pin number for the ultrasonic sensor's trigger
ECHO_PIN = 3 # GPIO pin number for the ultrasonic sensor's echo
PUMP_PIN = 4 # GPIO pin number for the water pump
LED_PIN = 5 # GPIO pin number for the LED
# Initialize components
pump = Pin(PUMP_PIN, Pin.OUT)
led = Pin(LED_PIN, Pin.OUT)
# Ultrasonic sensor setup
trig = Pin(TRIG_PIN, Pin.OUT)
echo = Pin(ECHO_PIN, Pin.IN)
def measure_distance():
# Trigger ultrasonic sensor
trig.value(1)
utime.sleep_us(10)
trig.value(0)
# Measure echo time
while echo.value() == 0:
pulse_start = utime.ticks_us()
while echo.value() == 1:
pulse_end = utime.ticks_us()
pulse_duration = pulse_end - pulse_start
# Calculate distance (in centimeters)
distance = (pulse_duration * 0.0343) / 2
return distance
while True:
distance = measure_distance()
if distance > 200: # Water level is above 200 cm
led.value(1) # LED is on
pump.value(1) # Water pump is turned on
else:
led.value(0) # LED is off
pump.value(0) # Water pump is turned off
time.sleep(0.1) # Sleep for 0.1 seconds