Zugangskontrollsystem¶
Die Hauptfunktion dieses Codes besteht darin, die Benutzerauthentifizierung mit einem RFID-Modul durchzuführen. Wenn die Authentifizierung erfolgreich ist, steuert er einen Schrittmotor, um die Tür zu öffnen, und gibt über einen Summer einen Ton aus, um das Ergebnis der Authentifizierung anzuzeigen. Scheitert die Authentifizierung, wird die Tür nicht geöffnet.
Sie können den seriellen Monitor öffnen, um die ID Ihrer RFID-Karte zu sehen und das Passwort in diesem Code neu zu konfigurieren.
Benötigte Komponenten
Für dieses Projekt benötigen wir die folgenden Komponenten.
Es ist definitiv praktisch, ein ganzes Kit zu kaufen, hier ist der Link:
Name |
ARTIKEL IN DIESEM KIT |
LINK |
---|---|---|
Elite Explorer Kit |
300+ |
Sie können sie auch einzeln über die untenstehenden Links kaufen.
KOMPONENTENBESCHREIBUNG |
KAUF-LINK |
---|---|
- |
|
- |
|
- |
Verdrahtung
Schaltplan
Code
Bemerkung
Sie können die Datei
09_access_control_system.ino
direkt unter dem Pfadelite-explorer-kit-main\fun_project09_access_control_system
öffnen.Oder kopieren Sie diesen Code in die Arduino IDE.
Bemerkung
Hier wird die
RFID1
-Bibliothek verwendet. Die Bibliothek finden Sie im Verzeichniselite-explorer-kit-main/library/
, oder Sie können hierRFID1.zip
klicken, um sie herunterzuladen. Sehen Sie sich Manuelle Installation für eine Anleitung zur Installation an.
Wie funktioniert des?
Hier ist eine schrittweise Erklärung des Codes:
Bibliotheksdateien einbinden: Sie haben drei Bibliotheksdateien eingebunden:
rfid1.h
,Stepper.h
undWire.h
. Diese Bibliotheken werden verwendet, um mit dem RFID-Modul, dem Schrittmotor und für die I2C-Kommunikation zu kommunizieren.Konstantendefinitionen: Sie haben einige Konstanten definiert, darunter
ID_LEN
(Länge der ID),stepsPerRevolution
(Schritte pro Umdrehung für den Schrittmotor),rolePerMinute
(Geschwindigkeit des Schrittmotors), sowie die vier Schrittmotorpins (IN1, IN2, IN3, IN4), Buzzerpin (buzPin
) und Variablen im Zusammenhang mit der Authentifizierung.Variablendefinitionen: Sie haben Variablen wie ein Array definiert, um die gelesene Benutzer-ID (
userIdRead
), authentifizierte Benutzer-ID (userId
) und eine boolesche Variable (approved
) zur Anzeige einer erfolgreichen Authentifizierung zu speichern.Objektinstanzen: Sie haben Instanzen von zwei Objekten erstellt:
RFID1 rfid
undStepper stepper
zur Interaktion mit dem RFID-Modul und Schrittmotor.setup()
: In der Funktionsetup()
initialisieren Sie die Geschwindigkeit des Schrittmotors, stellen den Buzzerpin als Ausgang ein und initialisieren das RFID-Modul.loop()
: In der Funktionloop()
läuft Ihre Hauptlogik. Wennapproved
0 ist (noch nicht authentifiziert), ruft es die FunktionrfidRead()
auf, um Daten vom RFID-Modul zu lesen und löscht dann das ArrayuserIdRead
. Wennapproved
1 ist (erfolgreiche Authentifizierung), ruft es die FunktionopenDoor()
auf, um die Tür zu öffnen, und setztapproved
auf 0 zurück.beep()
: Diese Funktion steuert den Summer basierend auf den bereitgestellten Parameternduration
undfrequency
.verifyPrint()
: Diese Funktion erzeugt unterschiedliche Summergeräusche basierend auf dem Parameterresult
, um anzuzeigen, ob die Authentifizierung erfolgreich war.openDoor()
: Diese Funktion steuert den Schrittmotor, um die Tür bis zu einem bestimmten Winkel (doorStep
) zu öffnen und wartet dann eine Weile, bevor die Tür geschlossen wird.rfidRead()
: Diese Funktion liest Daten vom RFID-Modul, ruft zuerstgetId()
auf, um die Benutzer-ID zu erhalten, und dannidVerify()
, um zu überprüfen, ob die Benutzer-ID mit der authentifizierten ID übereinstimmt.getId()
: Diese Funktion holt die Benutzer-ID vom RFID-Modul und speichert sie im ArrayuserIdRead
. Sie gibt einen Piepton aus, wenn das Lesen fehlschlägt.idVerify()
: Diese Funktion überprüft, ob die Benutzer-ID mit der authentifizierten ID übereinstimmt, und erzeugt einen Ton, der eine erfolgreiche oder fehlgeschlagene Authentifizierung anzeigt.