Acquista dagli USA | Acquista dal Regno Unito | Acquista dalla Germania | Acquista dall’Italia | Acquista dalla Francia | Acquista dalla Spagna | Acquista dalla JP |
Il lettore RFID è un dispositivo molto popolare nel sistema di sicurezza. Può leggere l’ID di una carta RFID e inviarlo al sistema informatico.
In questa lezione, useremo il lettore RFID OSOYOO per realizzare un semplice sistema di verifica della sicurezza. Questo RFID userà un nuovo protocollo di comunicazione SPI per inviare dati a Pico. Quindi, dopo questa lezione, avete imparato tre tipi di protocolli di comunicazione: SPI, I2C e Seriale (RS232). Il confronto di velocità tra questi tre metodi sono: SPI > I2C > Seriale.
Dato che useremo molti pin in questo progetto, abbiamo messo la mappa dei pin di Pico qui per aiutare l’utente a trovare la corretta posizione dei pin.
Nel grafico del circuito di cui sopra, si può vedere che:
Pico Pins | RFID Pins |
GP5 | SDA |
GP6 | SCK |
GP7 | MOSI |
GP4 | MISO |
IRQ | |
GND | GND |
GP18 | RST |
3.3V | 3.3V |
Pico Pins | Dispositivo |
GP14 | LED rosso tramite resistenza da 220ohm |
GP15 | LED verdetramite resistenza da 220ohm |
GP16 | Buzzer I/O pin |
Potete scaricare il codice python della lezione 7 da https://osoyoo.com/driver/pico/lesson7/pico-lesson7.zip
Potete usare Thonny per aprire pico-lesson7.py e caricarlo su Pico in seguito.
Ecco il codice completo con i commenti:
import time from machine import I2C, Pin, SPI #import I2C,Pin,SPI library from mfrc522 import MFRC522 #import RFID reader library buzzer= Pin(16, Pin.OUT) #set buzzer to GP16 buzzer.value(1) true = Pin(15, Pin.OUT) #set Green LED to GP15 false = Pin(14, Pin.OUT) #set Red LED to GP14 sck = Pin(6, Pin.OUT) #set RFID sck to GP6 mosi = Pin(7, Pin.OUT) #set RFID mosi to GP7 miso = Pin(4, Pin.OUT) #set RFID miso to GP4 sda = Pin(5, Pin.OUT) #set RFID sda to GP5 rst = Pin(18, Pin.OUT) #set RFID rst to GP18 spi = SPI(0, baudrate=100000, polarity=0, phase=0, sck=sck, mosi=mosi, miso=miso) #initial SPI card1 = "0xe58a6223" #change this value to match your testing RFID card 1 card2 = "0xf765bd60" #change this value to match your testing RFID card 2 while True: rdr = MFRC522(spi, sda, rst) #initialize reader (stat, tag_type) = rdr.request(rdr.REQIDL) #read card ud if stat == rdr.OK: (stat, raw_uid) = rdr.anticoll() if stat == rdr.OK: uid = ("0x%02x%02x%02x%02x" % (raw_uid[0], raw_uid[1], raw_uid[2], raw_uid[3])) print(uid) if uid == card1: #if ID matches card 1, buzzer beep once, turn on Green LED print("card 1 detected!") buzzer.value(0) time.sleep(0.3) buzzer.value(1) true.value(1) time.sleep(1) true.value(0) time.sleep(1) elif uid == card2: print("card 2 detected!") #if ID matches card 2, buzzer beep twice, turn on Green LED buzzer.value(0) time.sleep(0.3) buzzer.value(1) time.sleep(0.3) buzzer.value(0) time.sleep(0.3) buzzer.value(1) true.value(1) time.sleep(1) true.value(0) time.sleep(1) else: #if ID doesn't match any card, long beep, turn on Red LED print("invalid card!") buzzer.value(0) time.sleep(2) buzzer.value(1) false.value(1) time.sleep(0.1) false.value(0) time.sleep(0.1) false.value(1) time.sleep(0.1) false.value(0) time.sleep(0.1) false.value(1) time.sleep(0.1) false.value(0) time.sleep(1)
Step 1: Collegare la scheda Pico a una delle porte USB del PC
Step 2:Se non avete installato il software Thonny o non sapete come usare Thonny IDE, leggete la lezione 1
Step 3: Ora aprite l’IDE Thonny Python, cliccate su Run per selezionare MicroPython per Raspberry Pi Pico come interprete:
Seleziona anche la porta COM a cui è collegata la tua scheda Pico:
Dopo di che, cliccate su OK per salvare l’impostazione.
Step 4: Ora scaricate il codice da https://osoyoo.com/driver/pico/lesson7/pico-lesson7.zip, salvatelo sul vostro PC locale, poi decomprimete il file. Troverai due file mfrc522.py e pico-lesson7.py. Usa Thonny per aprire il file mfrc522.py Library
Step 5 Poi File -> Save as
Step 6 Poi seleziona Raspberry Pi Pico come destinazione.
Step 7 ,Scrivete il nome del file: mfrc522.py. Dopo di che, cliccate su OK per salvare l’impostazione.
Poi usa Thonny per aprire un altro file pico-lesson7.py, clicca il piccolo pulsante ► per eseguire il codice Python.
È necessario preparare 3 diverse carte RFID. Tocca ogni carta sul lettore, vedrai il suo ID come 0xd71d9a52 e “carta non valida” nella finestra della Shell. Anche il LED rosso è acceso e il cicalino ha un lungo segnale acustico. Questo è dovuto al fatto che i vostri attuali ID delle carte non corrispondono a nessun ID nella linea 14,15. Per favore cambiate la linea 14,15 con l’ID della vostra carta 1 e carta 2, poi cliccate sul pulsante ► per eseguire di nuovo..
Ora vedrete che la scheda 1 mostrerà il messaggio “card 1 detected”, 1 breve segnale acustico e una luce verde.
Quando metti la carta 2 al lettore, la finestra della Shell mostrerà “card 2 detected”, 2 brevi bip e luce verde.
DownLoad Url osoyoo.com