Raspberry Pi - RFID - Relay

Diese Anleitung zeigt Ihnen, wie Sie einen Raspberry Pi und einen RFID/NFC RC522-Reader zur Steuerung eines Relays verwenden. Sie können diese Anleitung auch erweitern und das Relay zur Steuerung von Türschlössern, Glühbirnen, Motoren, Aktuatoren und so weiter verwenden.

Benötigte Hardware

1×Raspberry Pi 5
1×RFID/NFC RC522 Kit (Reader + Tags)
1×RFID Key Fob
1×RFID Card
1×Relais
10×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 Relay

Falls Sie nicht mit dem RFID/NFC RC522-Modul und Relay vertraut sind (Pinout, Funktionsweise, Programmierung...), können Ihnen die folgenden Tutorials dabei helfen, Kenntnisse zu erlangen:

Funktionsweise

  • Einige RFID/NFC-Tags haben ihre UIDs im Raspberry Pi Code vordefiniert.
  • Wenn ein Benutzer einen RFID/NFC-Tag an den RFID/NFC-Reader hält, liest der Reader die UID vom Tag.
  • Der Raspberry Pi empfängt dann die UID vom Reader und vergleicht sie mit den vordefinierten UIDs.
  • Wenn die UID mit einer der vordefinierten UIDs übereinstimmt, aktiviert der Raspberry Pi das Relay.

Schaltplan

Raspberry Pi RFID RC522 relay Schaltplan

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:

Die Anordnung der Pins kann je nach Hersteller unterschiedlich sein. Verwenden Sie IMMER die auf dem Modul gedruckten Beschriftungen. Das obige Bild zeigt das Pinout der Module von DIYables maker.

Raspberry Pi Code - Einzelner RFID/NFC-Tag

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 einige Bibliotheken installieren müssen.
  • Falls Sie zum ersten Mal einen Raspberry Pi verwenden, lesen Sie wie Sie den Raspberry Pi einrichten
  • Verbinden Sie Ihren PC über SSH mit dem Raspberry Pi mit dem integrierten SSH-Client unter Linux und macOS oder PuTTY unter Windows. Siehe wie Sie Ihren PC über SSH mit Raspberry Pi verbinden.
  • 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 den Anweisungen unter Raspberry Pi - Wie Sie die SPI-Schnittstelle aktivieren 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_relay.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-relay 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("Authorized Tag") GPIO.output(RELAY_PIN, GPIO.HIGH) # activate the relay for 2 seconds time.sleep(2) GPIO.output(RELAY_PIN, GPIO.LOW) # deactivate the relay else: print(f"Unauthorized Tag 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 ausführen:
python3 rfid_relay.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 identifizieren:

  • Führen Sie den obigen Code aus und halten Sie den Tag an das RFID-RC522-Modul.
  • Die UID wird auf dem Serial Monitor angezeigt.
PuTTY - Raspberry Pi
Tap RFID/NFC tag on reader Unauthorized Tag with UID: 3A C9 6A CB

Nach dem Erhalt der UID:

  • Ändern Sie Zeile 18 des Codes, um die UID widerzuspiegeln, zum Beispiel ändern Sie byte authorizedUID[4] = {0xFF, 0xFF, 0xFF, 0xFF}; zu byte authorizedUID[4] = {0x3A, 0xC9, 0x6A, 0xCB};
  • Laden Sie den Code auf den Raspberry Pi hoch
  • Halten Sie einen RFID/NFC-Tag an das RFID-RC522-Modul
  • Überprüfen Sie die Ausgabe auf dem Serial Monitor
PuTTY - Raspberry Pi
Tap RFID/NFC tag on reader Authorized Tag
  • Halten Sie einen anderen RFID/NFC-Tag an das RFID-RC522-Modul.
  • Überprüfen Sie die Ausgabe auf dem Serial Monitor.
PuTTY - Raspberry Pi
Tap RFID/NFC tag on reader Authorized Tag Unauthorized Tag with UID: BD 1E 1D 00

※ Notiz:

  • Um das Testen zu erleichtern, wurde die aktive Zeit auf zwei Sekunden eingestellt; sie sollte jedoch für praktische Verwendung oder Demonstration erhöht werden.
  • Die Installation der MFRC522-Bibliothek ist erforderlich. Für weitere Informationen verweisen Sie bitte auf das Raspberry Pi - RFID/NFC RC522 Tutorial.

Raspberry Pi Code - Mehrere RFID/NFC-Tags

Es ist möglich, das Relay über mehrere RFID/NFC-Tags zu aktivieren. Der unten stehende Code zeigt ein Beispiel mit drei RFID-Tags.

# 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-relay 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("Authorized Tag") GPIO.output(RELAY_PIN, GPIO.HIGH) # activate the relay for 2 seconds time.sleep(2) GPIO.output(RELAY_PIN, GPIO.LOW) # deactivate the relay else: print(f"Unauthorized Tag with UID: {' '.join(format(b, '02x') for b in uid)}") except KeyboardInterrupt: GPIO.cleanup()

Wiederholen Sie dieselben Schritte wie zuvor und halten Sie jeden Tag an das RFID-RC522-Modul. Die Ergebnisse auf dem Serial Monitor werden ähnlich wie die unten stehenden sein:

PuTTY - Raspberry Pi
Tap RFID/NFC tag on reader Authorized Tag Authorized Tag

Sie können den oben genannten Code erweitern, um vier oder mehr RFID-Tags zu unterstützen.

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!