from mfrc522 import MFRC522
import time
from machine import Pin
# Inizializza il lettore RFID
reader = MFRC522(spi_id=0,sck=2,miso=4,mosi=3,cs=1,rst=0)
# Inizializza i LED
led_verde = Pin(14, Pin.OUT) # LED Verde collegato al GP15
led_rosso = Pin(15, Pin.OUT) # LED Rosso collegato al GP14
# Definisci l'UID autorizzato (sostituisci con il tuo UID ottenuto)
UID_AUTORIZZATO = #Inserisci il tuo UID della tessera/tag
print("Sistema di Controllo Accessi Inizializzato.")
print("Avvicina il TAG RFID...")
while True:
reader.init() # Inizializza il lettore RFID
(stat, tag_type) = reader.request(reader.REQIDL) # Richiedi la presenza di un tag
if stat == reader.OK:
(stat, uid) = reader.SelectTagSN() # Seleziona il tag e ottieni l'UID
if stat == reader.OK:
# Converte la lista UID in un numero intero
card = int.from_bytes(bytes(uid), "little", False)
print("UID Letto:", card)
if card == UID_AUTORIZZATO:
# Accesso Consentito
print("Accesso Consentito!")
led_verde.value(1) # Accende il LED Verde
led_rosso.value(0) # Spegne il LED Rosso
else:
# Accesso Negato
print("Accesso Negato!")
led_verde.value(0) # Spegne il LED Verde
led_rosso.value(1) # Accende il LED Rosso
# Attende 2 secondi per mostrare lo stato
time.sleep(2)
# Spegne entrambi i LED dopo l'attesa
led_verde.value(0)
led_rosso.value(0)
else:
# Nessun tag rilevato, spegne entrambi i LED
led_verde.value(0)
led_rosso.value(0)
# Breve pausa per stabilità del loop
time.sleep_ms(100)