Nota
Ciao, benvenuto nella community SunFounder Raspberry Pi & Arduino & ESP32 Enthusiasts su Facebook! Approfondisci Raspberry Pi, Arduino ed ESP32 con altri appassionati.
Perché unirsi?
Supporto Esperto: Risolvi problemi post-vendita e sfide tecniche con l’aiuto della nostra community e del nostro team.
Impara & Condividi: Scambia consigli e tutorial per migliorare le tue competenze.
Anteprime Esclusive: Ottieni l’accesso anticipato agli annunci di nuovi prodotti e anteprime esclusive.
Sconti Speciali: Goditi sconti esclusivi sui nostri prodotti più recenti.
Promozioni e Concorsi Festivi: Partecipa a concorsi e promozioni festive.
👉 Pronto a esplorare e creare con noi? Clicca [Qui] e unisciti oggi stesso!
Sistema di Controllo Accessi
La funzione principale di questo codice è eseguire l’autenticazione dell’utente utilizzando un modulo RFID. Se l’autenticazione ha successo, controlla un motore passo-passo per aprire la porta ed emette un suono tramite un buzzer per indicare il risultato dell’autenticazione. Se l’autenticazione fallisce, la porta non si aprirà.
Puoi aprire il monitor seriale per visualizzare l’ID della tua carta RFID e riconfigurare la password in questo codice.
Componenti Necessari
In questo progetto, abbiamo bisogno dei seguenti componenti.
È sicuramente conveniente acquistare un kit completo, ecco il link:
Nome |
ELEMENTI IN QUESTO KIT |
LINK |
---|---|---|
Elite Explorer Kit |
300+ |
Puoi anche acquistarli separatamente dai link sottostanti.
INTRODUZIONE COMPONENTI |
LINK ACQUISTO |
---|---|
- |
|
- |
|
- |
Collegamenti
Nota
Per proteggere la batteria del Modulo di Alimentazione, caricala completamente prima di utilizzarla per la prima volta.
Schema Elettrico
Codice
Nota
Puoi aprire il file
09_access_control_system.ino
nel percorsoelite-explorer-kit-main\fun_project09_access_control_system
direttamente.Oppure copia questo codice nell’Arduino IDE.
Nota
La libreria
RFID1
viene utilizzata qui. La libreria può essere trovata nella directoryelite-explorer-kit-main/library/
, oppure puoi cliccare quiRFID1.zip
per scaricarla. Consulta Installazione Manuale per un tutorial su come installarla.
Come funziona?
Di seguito una spiegazione passo-passo del codice:
Includere File di Libreria: Sono inclusi tre file di libreria:
rfid1.h
,Stepper.h
eWire.h
. Queste librerie vengono utilizzate per comunicare con il modulo RFID, il motore passo-passo e per la comunicazione I2C.Definizioni di Costanti: Sono definite alcune costanti, tra cui
ID_LEN
(lunghezza dell’ID),stepsPerRevolution
(passi per rivoluzione per il motore passo-passo),rolePerMinute
(velocità del motore passo-passo), così come i quattro pin del motore passo-passo (IN1, IN2, IN3, IN4), il pin del buzzer (buzPin
) e le variabili relative all’autenticazione.Definizioni di Variabili: Sono definite variabili come un array per memorizzare l’ID utente letto (
userIdRead
), l’ID utente autenticato (userId
) e una variabile booleana (approved
) per indicare l’autenticazione avvenuta con successo.Istanze di Oggetti: Sono create istanze di due oggetti:
RFID1 rfid
eStepper stepper
per interagire rispettivamente con il modulo RFID e il motore passo-passo.setup()
: Nella funzionesetup()
, si inizializza la velocità del motore passo-passo, si imposta il pin del buzzer come output e si inizializza il modulo RFID.loop()
: Nella funzioneloop()
, il codice principale viene eseguito. Seapproved
è 0 (indicando che l’autenticazione non è ancora avvenuta), chiama la funzionerfidRead()
per leggere i dati dal modulo RFID e poi svuota l’arrayuserIdRead
. Seapproved
è 1 (indicando l’autenticazione avvenuta con successo), chiama la funzioneopenDoor()
per aprire la porta e resettaapproved
a 0.beep()
: Questa funzione controlla il suono del buzzer in base ai parametriduration
efrequency
forniti.verifyPrint()
: Questa funzione emette suoni differenti tramite il buzzer in base al parametroresult
per indicare se l’autenticazione è avvenuta con successo o meno.openDoor()
: Questa funzione controlla il motore passo-passo per aprire la porta a un certo angolo (doorStep
) e poi attende un periodo prima di chiudere la porta.rfidRead()
: Questa funzione legge i dati dal modulo RFID, prima chiamandogetId()
per ottenere l’ID utente e poiidVerify()
per verificare se l’ID utente corrisponde all’ID autenticato.getId()
: Questa funzione recupera l’ID utente dal modulo RFID e lo memorizza nell’arrayuserIdRead
. Emette un beep se la lettura fallisce.idVerify()
: Questa funzione verifica se l’ID utente corrisponde all’ID autenticato ed emette un suono indicando se l’autenticazione è avvenuta con successo o meno.