import machine
from machine import Pin, Timer, ADC
from time import sleep
from dht import DHT22
from ili9341 import Display, color565
from xglcd_font import XglcdFont
# PIN CONFIGURATION
sensor = DHT22(Pin(5))
pin_pir=Pin(35,Pin.IN)
pin_ldr=ADC(Pin(34))
pin_led=Pin(4,Pin.OUT)
sck = machine.Pin(18)
mosi = machine.Pin(23)
miso = machine.Pin(19)
cs = machine.Pin(15)
dc = machine.Pin(0)
rst = machine.Pin(2)
spi = machine.SPI(1, baudrate=32000000, sck=sck, mosi=mosi, miso=miso)
display = Display(spi, dc=dc, cs=cs, rst=rst)
arcadepix = XglcdFont('ArcadePix9x11.c', 9, 11)
myTimer = Timer(1)
# subroutine
def sub_dht(myTimer):
sensor.measure()
temp = sensor.temperature()
humidity = sensor.humidity()
text = f"Temp: {temp}C"
display.draw_text(x=100,y=300, text=text, font=arcadepix, color=color565(255, 255, 255), background=color565(0, 0, 0), landscape=True, spacing=12)
text = f"Humidity: {humidity}%"
display.draw_text(x=120,y=300, text=text, font=arcadepix, color=color565(255, 255, 255), background=color565(0, 0, 0), landscape=True, spacing=12)
myTimer.init(period=5000, mode=Timer.PERIODIC, callback=sub_dht)
def interrupt_pir(pin):
val_pir=pin_pir.value()
val_ldr=pin_ldr.read()
print(val_pir)
print(val_ldr)
if 3413 <= val_ldr <= 4063 and val_pir == 1:
pin_led.on()
else:
pin_led.off()
pin_pir.irq(trigger=3, handler=interrupt_pir)
# Main function
def main():
while True:
sleep(1)
if __name__ == '__main__':
main()