from machine import Pin, SPI
import time
import dht
from ili9341 import Display, color565
from mfrc522 import MFRC522
from page_home import home_page
from page_weather import weather_page
from page_card import card_page
from sd_manager import save_weather
# ===================
# DHT22
# ===================
sensor = dht.DHT22(
Pin(27)
)
# ===================
# LED + Buzzer
# ===================
led = Pin(
25,
Pin.OUT
)
buzzer = Pin(
26,
Pin.OUT
)
# ===================
# SPI
# ===================
spi = SPI(
2,
baudrate=20000000,
polarity=0,
phase=0,
sck=Pin(18),
mosi=Pin(23),
miso=Pin(19)
)
# ===================
# TFT
# ===================
display = Display(
spi,
cs=Pin(15),
dc=Pin(2),
rst=Pin(4)
)
# ===================
# RFID
# ===================
reader = MFRC522(
spi,
Pin(5),
Pin(22)
)
temperature = 0
humidity = 0
interval = 60
last = time.time()
# ===================
# قراءة الطقس
# ===================
def read_weather():
global temperature
global humidity
sensor.measure()
temperature = sensor.temperature()
humidity = sensor.humidity()
print(
temperature,
humidity
)
save_weather(
temperature,
humidity
)
led.value(1)
buzzer.value(1)
time.sleep(0.3)
buzzer.value(0)
led.value(0)
# ===================
# بداية
# ===================
home_page(display)
read_weather()
while True:
# RFID
stat, tag = reader.request(
reader.REQIDL
)
if stat == reader.OK:
stat, uid = reader.SelectTagSN()
card_page(
display,
uid
)
time.sleep(2)
weather_page(
display,
temperature,
humidity
)
# تحديث كل دقيقة
if time.time()-last >= interval:
read_weather()
last=time.time()
time.sleep(0.2)