from machine import Pin, PWM
import time
import hcsr04
sensor = hcsr04.HCSR04(trigger_pin=14, echo_pin=27, echo_timeout_us=10000)
servo = PWM(Pin(32), freq=50)
door_open_led = Pin(2, Pin.OUT)
door_closed_led = Pin(4, Pin.OUT)
buzzer = PWM(Pin(18))
def set_servo_angle(angle):
duty = int(40 + (angle / 180) * 75)
servo.duty(duty)
def start_buzzer():
buzzer.freq(1000)
buzzer.duty(512)
def stop_buzzer():
buzzer.duty(0)
def main():
door_open = False
while True:
distance = sensor.distance_cm()
print("Distance:", distance, "cm")
if distance > 40 and door_open:
print("Closing door...")
door_open_led.off()
door_closed_led.on()
set_servo_angle(90)
stop_buzzer()
door_open = False
elif distance < 50 and not door_open:
print("Opening door...")
set_servo_angle(0)
door_open_led.on()
door_closed_led.off()
start_buzzer()
door_open = True
time.sleep(0.5)
main()