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+

Elite Explorer Kit

Sie können sie auch einzeln über die untenstehenden Links kaufen.

KOMPONENTENBESCHREIBUNG

KAUF-LINK

Arduino Uno R4 WiFi

-

Steckbrett

BUY

Jumperkabel

BUY

MFRC522-Modul

BUY

Schrittmotor

BUY

Summer

-

Stromversorgungsmodul

-

Verdrahtung

../_images/09_access_bb.png

Schaltplan

../_images/09_access_schematic.png

Code

Bemerkung

  • Sie können die Datei 09_access_control_system.ino direkt unter dem Pfad elite-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 Verzeichnis elite-explorer-kit-main/library/, oder Sie können hier RFID1.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:

  1. Bibliotheksdateien einbinden: Sie haben drei Bibliotheksdateien eingebunden: rfid1.h, Stepper.h und Wire.h. Diese Bibliotheken werden verwendet, um mit dem RFID-Modul, dem Schrittmotor und für die I2C-Kommunikation zu kommunizieren.

  2. 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.

  3. 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.

  4. Objektinstanzen: Sie haben Instanzen von zwei Objekten erstellt: RFID1 rfid und Stepper stepper zur Interaktion mit dem RFID-Modul und Schrittmotor.

  5. setup(): In der Funktion setup() initialisieren Sie die Geschwindigkeit des Schrittmotors, stellen den Buzzerpin als Ausgang ein und initialisieren das RFID-Modul.

  6. loop(): In der Funktion loop() läuft Ihre Hauptlogik. Wenn approved 0 ist (noch nicht authentifiziert), ruft es die Funktion rfidRead() auf, um Daten vom RFID-Modul zu lesen und löscht dann das Array userIdRead. Wenn approved 1 ist (erfolgreiche Authentifizierung), ruft es die Funktion openDoor() auf, um die Tür zu öffnen, und setzt approved auf 0 zurück.

  7. beep(): Diese Funktion steuert den Summer basierend auf den bereitgestellten Parametern duration und frequency.

  8. verifyPrint(): Diese Funktion erzeugt unterschiedliche Summergeräusche basierend auf dem Parameter result, um anzuzeigen, ob die Authentifizierung erfolgreich war.

  9. 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.

  10. rfidRead(): Diese Funktion liest Daten vom RFID-Modul, ruft zuerst getId() auf, um die Benutzer-ID zu erhalten, und dann idVerify(), um zu überprüfen, ob die Benutzer-ID mit der authentifizierten ID übereinstimmt.

  11. getId(): Diese Funktion holt die Benutzer-ID vom RFID-Modul und speichert sie im Array userIdRead. Sie gibt einen Piepton aus, wenn das Lesen fehlschlägt.

  12. 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.