Raspberry Pi - RFID Türschloss

Diese Anleitung zeigt Ihnen, wie Sie ein Türschloss-System mit Raspberry Pi, RFID/NFC RC522 Modul, einem Relais, Magnetschloss oder Elektroschloss und optional einem LCD-Display erstellen. Um es Ihnen einfach zu machen, führt Sie die Anleitung schrittweise vom einfachen zum komplexen Aufbau des RFID-Türschlosses. Im Detail werden wir folgendes umsetzen:

Sie können dies modifizieren, um Passwörter für das Türschloss hinzuzufügen, indem Sie es mit Raspberry Pi - Keypad Door Lock kombinieren.

Benötigte Hardware

1×Raspberry Pi 5
1×RFID/NFC RC522 Kit (Reader + Tags)
1×RFID Key Fob
1×RFID Card
1×Magnetschloss (Solenoid Lock)
1×(Alternativ) Elektroschloss (Electromagnetic Lock)
1×Relais
1×12V Netzteil
1×DC-Stromanschluss
1×Verbindungskabel
1×(Empfohlen) Schraubklemmenblock-Shield für Raspberry Pi
1×(Empfohlen) Raspberry Pi Prototyping-Grundplatte & Breadboard-Kit
1×(Empfohlen) HDMI-Touchscreen-Monitor für Raspberry Pi

Oder Sie können die folgenden Kits kaufen:

1×DIYables Sensor-Kit (30 Sensoren/Displays)
1×DIYables Sensor-Kit (18 Sensoren/Displays)
Offenlegung: Einige der in diesem Abschnitt bereitgestellten Links sind Amazon-Affiliate-Links. Wir können eine Provision für Käufe erhalten, die über diese Links getätigt werden, ohne zusätzliche Kosten für Sie. Wir schätzen Ihre Unterstützung.

Über RFID/NFC RC522 Modul und Elektroschloss

Falls Sie mit dem RFID/NFC RC522 Modul, Elektroschloss oder Magnetschloss nicht vertraut sind (einschließlich Pinbelegung, Funktionalität und Programmierung), können die folgenden Tutorials weitere Informationen liefern:

Komponenten des Türschloss-Systems

Das Türschloss-System besteht aus zwei Hauptkomponenten:

  • Türschloss: Ein Raspberry Pi, ein Relais, ein RFID/NFC-Reader und ein Magnetschloss.
  • Türschlüssel: RFID/NFC-Tags.

Wie das RFID/NFC Türschloss funktioniert

  • Der Benutzer hält einen RFID/NFC-Tag an den RFID/NFC-Reader, der die UID vom Tag ausliest.
  • Der Raspberry Pi nimmt diese UID und vergleicht sie mit den im Code hinterlegten UIDs.
  • Wenn die UID mit einem der autorisierten Schlüssel übereinstimmt, deaktiviert der Raspberry Pi das Elektroschloss und entsperrt somit die Tür.
  • Nach einer bestimmten Zeitperiode aktiviert der Raspberry Pi das Relais wieder, um die Tür zu verriegeln.

Schaltplan

  • RFID RC522 Türschloss mit Magnetschloss (Solenoid Lock)
Raspberry Pi RFID RC522 Door Lock System wiring diagram

Dieses Bild wurde mit Fritzing erstellt. Klicken Sie, um das Bild zu vergrößern.

  • RFID RC522 Türschloss mit Elektroschloss (Electromagnetic Lock)
Raspberry Pi RFID RC522 Door Lock System wiring diagram

Dieses Bild wurde mit Fritzing erstellt. Klicken Sie, um das Bild zu vergrößern.

Um Ihren Verdrahtungsaufbau zu vereinfachen und zu organisieren, empfehlen wir die Verwendung eines Schraubklemmenblock-Shields für Raspberry Pi. Dieses Shield gewährleistet sicherere und besser verwaltbare Verbindungen, wie unten gezeigt:

Raspberry Pi Schraubklemmenblock-Shield

※ Notiz:

Hersteller können die Reihenfolge der Pins unterschiedlich anordnen, daher ist es wichtig, sich auf die auf dem Modul aufgedruckten Beschriftungen zu verlassen. Das oben dargestellte Pinout-Diagramm zeigt die Pin-Anordnung für Module, die vom Hersteller DIYables produziert wurden.

Raspberry Pi Code - Einzelner Schlüssel

Schnelle Schritte

  • Stellen Sie sicher, dass Sie Raspbian oder ein anderes Raspberry Pi-kompatibles Betriebssystem auf Ihrem Pi installiert haben.
  • Stellen Sie sicher, dass Ihr Raspberry Pi mit demselben lokalen Netzwerk wie Ihr PC verbunden ist.
  • Stellen Sie sicher, dass Ihr Raspberry Pi mit dem Internet verbunden ist, falls Sie Bibliotheken installieren müssen.
  • Wenn Sie Raspberry Pi zum ersten Mal verwenden, siehe How to set up the Raspberry Pi
  • Verbinden Sie Ihren PC über SSH mit dem Raspberry Pi unter Verwendung des integrierten SSH-Clients auf Linux und macOS oder PuTTY auf Windows. Siehe How connect your PC to Raspberry Pi via SSH.
  • Stellen Sie sicher, dass Sie die RPi.GPIO Bibliothek installiert haben. Falls nicht, installieren Sie sie mit folgendem Befehl:
sudo apt-get update sudo apt-get install python3-rpi.gpio
  • Aktivieren Sie die SPI-Schnittstelle auf dem Raspberry Pi, indem Sie der Anleitung unter Raspberry Pi - how to enable SPI inteface folgen
  • Stellen Sie sicher, dass Sie die spidev Bibliothek installiert haben. Falls nicht, installieren Sie sie mit folgendem Befehl:
sudo apt-get install python3-pip python3-dev git sudo pip3 install spidev
  • Stellen Sie sicher, dass Sie die mfrc522 Bibliothek installiert haben. Falls nicht, installieren Sie sie mit folgendem Befehl:
sudo pip3 install mfrc522
  • Erstellen Sie eine Python-Skript-Datei rfid_lock.py und fügen Sie folgenden Code hinzu:
# Dieser Raspberry Pi Code wurde von newbiely.de entwickelt # Dieser Raspberry Pi Code wird der Öffentlichkeit ohne jegliche Einschränkung zur Verfügung gestellt. # Für vollständige Anleitungen und Schaltpläne besuchen Sie bitte: # https://newbiely.de/tutorials/raspberry-pi/raspberry-pi-rfid-door-lock import RPi.GPIO as GPIO import MFRC522 import time # Define GPIO pins RC522_RST_PIN = 12 # GPIO pin connected to RC522's RST pin RELAY_PIN = 16 # GPIO pin connected to relay # Set up GPIO GPIO.setmode(GPIO.BOARD) GPIO.setup(RELAY_PIN, GPIO.OUT, initial=GPIO.LOW) # Create an instance of the RFID reader reader = MFRC522.MFRC522() authorized_uid = [0xFF, 0xFF, 0xFF, 0xFF] try: print("Tap RFID/NFC Tag on reader") while True: (status, TagType) = reader.MFRC522_Request(reader.PICC_REQIDL) if status == reader.MI_OK: (status, uid) = reader.MFRC522_Anticoll() if status == reader.MI_OK: if uid == authorized_uid: print("Access is granted") GPIO.output(RELAY_PIN, GPIO.HIGH) # unlock the door for 2 seconds time.sleep(2) GPIO.output(RELAY_PIN, GPIO.LOW) # lock the door else: print(f"Access denied for user with UID: {' '.join(format(b, '02x') for b in uid)}") except KeyboardInterrupt: GPIO.cleanup()
  • Speichern Sie die Datei und führen Sie das Python-Skript aus, indem Sie folgenden Befehl im Terminal eingeben:
python3 rfid_lock.py

Das Skript läuft in einer Endlosschleife kontinuierlich, bis Sie Ctrl + C im Terminal drücken.

Um die UID eines RFID/NFC-Tags zu ermitteln, halten Sie den RFID/NFC-Tag an das RFID-RC522 Modul. Die UID wird im Terminal angezeigt.

PuTTY - Raspberry Pi
Tap RFID/NFC tag on reader Access denied for user with UID: 3A C9 6A CB

Sobald Sie Ihre UID haben:

  • Ändern Sie Zeile 18 des obigen Codes, indem Sie byte keytagUID[4] = {0xFF, 0xFF, 0xFF, 0xFF}; durch Ihre UID ersetzen, zum Beispiel byte keytagUID[4] = {0x3A, 0xC9, 0x6A, 0xCB};
  • Laden Sie den überarbeiteten Code auf Ihren Raspberry Pi hoch
  • Halten Sie einen RFID/NFC-Tag an das RFID-RC522 Modul
  • Überprüfen Sie die Ausgabe im Terminal
PuTTY - Raspberry Pi
Tap RFID/NFC tag on reader Access is granted
  • Überprüfen Sie das Elektroschloss, um sicherzustellen, dass es nicht verriegelt ist.
  • Halten Sie einen anderen RFID/NFC-Tag an das RFID-RC522 Modul.
  • Überprüfen Sie die Ausgabe im Terminal
PuTTY - Raspberry Pi
Tap RFID/NFC tag on reader Access is granted Access denied for user with UID: BD 1E 1D 00

※ Notiz:

  • Zu Testzwecken wurde die Entsperrzeit auf 2 Sekunden eingestellt; diese sollte jedoch in der Praxis oder für Demonstrationen erhöht werden.
  • Die Installation der MFRC522-Bibliothek ist erforderlich. Weitere Informationen finden Sie im Raspberry Pi - RFID/NFC RC522 Tutorial.

Raspberry Pi Code - Mehrere Schlüssel

Der folgende Code ermöglicht mehrere autorisierte Karten.

# Dieser Raspberry Pi Code wurde von newbiely.de entwickelt # Dieser Raspberry Pi Code wird der Öffentlichkeit ohne jegliche Einschränkung zur Verfügung gestellt. # Für vollständige Anleitungen und Schaltpläne besuchen Sie bitte: # https://newbiely.de/tutorials/raspberry-pi/raspberry-pi-rfid-door-lock import RPi.GPIO as GPIO import MFRC522 import time # Define GPIO pins RC522_RST_PIN = 12 # GPIO pin connected to RC522's RST pin RELAY_PIN = 16 # GPIO pin connected to relay # Set up GPIO GPIO.setmode(GPIO.BOARD) GPIO.setup(RELAY_PIN, GPIO.OUT, initial=GPIO.LOW) # Create an instance of the RFID reader reader = MFRC522.MFRC522() # List of authorized UIDs authorized_uids = [ [0xAA, 0xBB, 0xCC, 0xDD], [0x11, 0x22, 0x33, 0x44], [0xFF, 0xFF, 0xFF, 0xFF] ] def is_authorized(uid): for auth_uid in authorized_uids: if uid == auth_uid: return True return False try: print("Tap RFID/NFC Tag on reader") while True: (status, TagType) = reader.MFRC522_Request(reader.PICC_REQIDL) if status == reader.MI_OK: (status, uid) = reader.MFRC522_Anticoll() if status == reader.MI_OK: if is_authorized(uid): print("Access is granted") GPIO.output(RELAY_PIN, GPIO.HIGH) # unlock the door for 2 seconds time.sleep(2) GPIO.output(RELAY_PIN, GPIO.LOW) # lock the door else: print(f"Access denied for user with UID: {' '.join(format(b, '02x') for b in uid)}") except KeyboardInterrupt: GPIO.cleanup()

Wiederholen Sie dieselben Schritte wie oben und halten Sie dann jeden Tag an das RFID-RC522 Modul. Die Ausgabe im Terminal sollte wie folgt erscheinen:

PuTTY - Raspberry Pi
Tap RFID/NFC tag on reader Access is granted Access is granted

Sie können den oben erwähnten Code für vier oder mehr RFID-Tags erweitern.

Video Tutorial

Wir erwägen die Erstellung von Video-Tutorials. Wenn Sie Video-Tutorials für wichtig halten, abonnieren Sie bitte unseren YouTube-Kanal , um uns zu motivieren, die Videos zu erstellen.

※ UNSERE NACHRICHTEN

  • Sie können gerne den Link zu diesem Tutorial teilen. Bitte verwenden Sie jedoch unsere Inhalte nicht auf anderen Websites. Wir haben viel Mühe und Zeit in die Erstellung der Inhalte investiert, bitte respektieren Sie unsere Arbeit!