import machine
import time
TRIGGER_PIN = 23
ECHO_PIN = 22
GREEN_LED_PIN = 21
RED_LED_PIN = 19
BUZZER_PIN = 18
trigger = machine.Pin(TRIGGER_PIN, machine.Pin.OUT)
echo = machine.Pin(ECHO_PIN, machine.Pin.IN)
green_led = machine.Pin(GREEN_LED_PIN, machine.Pin.OUT)
red_led = machine.Pin(RED_LED_PIN, machine.Pin.OUT)
buzzer = machine.Pin(BUZZER_PIN, machine.Pin.OUT)
def get_distance():
try:
trigger.off()
time.sleep_us(2)
trigger.on()
time.sleep_us(10)
trigger.off()
pulse_time = machine.time_pulse_us(echo, 1)
if pulse_time < 0:
raise ValueError("No pulse detected")
distance = (pulse_time * 0.0343) / 2
return distance
except Exception as e:
print(f"Error in get_distance: {e}")
return -1
while True:
distance = get_distance()
if distance > 0 and distance < 20:
print("Motion Detected!")
green_led.on()
buzzer.on()
red_led.off()
time.sleep(2)
green_led.off()
buzzer.off()
else:
green_led.off()
buzzer.off()
red_led.on()
time.sleep(0.5)
red_led.off()
time.sleep(0.5)