from machine import I2C, Pin, UART
import utime
import ds3231_port

# I2C for RTC
i2c = I2C(0, scl=Pin(9), sda=Pin(8))
rtc = ds3231_port.DS3231(i2c)

# UART for RFID Reader or Serial input
uart = UART(0, baudrate=9600, tx=Pin(0), rx=Pin(1))

# CSV File Setup
csv_filename = "data.csv"
with open(csv_filename, "w") as f:
    f.write("S.No,Entry Time,Exit Time\n")

sno = 1
led = Pin(5, Pin.OUT)
password = "1234"  # You can replace this with RFID UID later if needed
entry_time = None

while True:
    # Check if data is available from UART (simulating RFID)
    if uart.any():
        data = uart.readline().decode().strip()
        print("Received:", data)

        # Get current time from RTC
        year, month, day, hour, minute, second, weekday, _ = rtc.get_time()
        current_time = "{:02d}/{:02d}/{:04d} {:02d}:{:02d}:{:02d}".format(
            day, month, year, hour, minute, second)

        # Password / RFID validation
        if data == password:
            if entry_time is None:
                entry_time = current_time
            else:
                with open(csv_filename, "a") as f:
                    line = "{},{},{}\n".format(sno, entry_time, current_time)
                    f.write(line)
                    print(line.strip())
                sno += 1
                entry_time = None

            led.value(1)
            utime.sleep(2)
            led.value(0)
        else:
            print("INVALID CARD OR PASSWORD")
    
    utime.sleep(0.1)
BOOTSELLED1239USBRaspberryPiPico©2020RP2-8020/21P64M15.00TTT
GND5VSDASCLSQWRTCDS1307+