from picozero import DigitalInputDevice, Servo
from machine import Pin, I2C
from time import sleep
from lcd_api import LcdApi
from pico_i2c_lcd import I2cLcd
# I2C pins
i2c = I2C(0, scl=Pin(5), sda=Pin(4), freq=400000) # GP5=SCL, GP4=SDA
lcd = I2cLcd(i2c, 0x27, 2, 16) # Adjust 0x27 if needed
# PIR on GP15
pir = DigitalInputDevice(15)
# Servo on GP7
servo = Servo(7)
# Initial state
lcd.clear()
lcd.putstr("Door closed")
servo.min()
try:
while True:
if pir.value:
lcd.clear()
lcd.putstr("Door open")
servo.max()
else:
lcd.clear()
lcd.putstr("Door closed")
servo.min()
sleep(0.3)
except KeyboardInterrupt:
servo.off()
lcd.clear()