Raspberry Pi - RFID

Diese Anleitung zeigt Ihnen, wie Sie RFID/NFC mit Raspberry Pi verwenden. Das RFID/NFC-System besteht aus zwei Komponenten: einem Leser und einem Tag. Zwei der beliebtesten RFID/NFC-Leser sind der RC522 und PN532. Diese Anleitung verwendet den RC522 RFID/NFC-Leser, der günstig und einfach zu verwenden ist.

Der RC522 RFID/NFC-Leser kann:

Diese Anleitung konzentriert sich auf:

Erforderliche Hardware

1×Raspberry Pi 5
1×RFID/NFC RC522 Kit (Leser + Tags)
1×RFID Key Fob (Schlüsselanhänger)
1×RFID Card (RFID-Karte)
1×Jumper Wires (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 das RFID-RC522 Modul

RFID-RC522 Modul Pinout

Das RFID-RC522 hat 8 Pins, von denen einige gemeinsame Pins sind und andere zwischen drei Kommunikationsmodi geteilt werden: SPI, I2C und UART. Es kann nur ein Kommunikationsmodus gleichzeitig verwendet werden. Die Pins sind:

  • GND-Pin: Dieser muss mit GND (0V) verbunden werden.
  • VCC-Pin: Dieser muss mit VCC (3.3V) verbunden werden.
  • RST-Pin: Dies ist ein Pin für Reset und Power-Down. Wenn dieser Pin auf Low geht, wird Hard-Power-Down aktiviert. Bei der steigenden Flanke wird das Modul zurückgesetzt.
  • IRQ-Pin: Dies ist ein Interrupt-Pin, der den Mikrocontroller benachrichtigen kann, wenn sich ein RFID-Tag in seiner Nähe befindet.
  • MISO/SCL/TX-Pin: Dieser fungiert als MISO, wenn SPI-Interface aktiviert ist, als SCL, wenn I2C-Interface aktiviert ist und als TX, wenn UART-Interface aktiviert ist.
  • MOSI-Pin: Dieser fungiert als MOSI, wenn SPI-Interface aktiviert ist.
  • SCK-Pin: Dieser fungiert als SCK, wenn SPI-Interface aktiviert ist.
  • SS/SDA/RX-Pin: Dieser fungiert als SS, wenn SPI-Interface aktiviert ist, als SDA, wenn I2C-Interface aktiviert ist und als RX, wenn UART-Interface aktiviert ist.
RFID-RC522 pinout

※ Notiz:

  • Die Pins des Moduls können je nach Hersteller unterschiedlich angeordnet sein. Es ist wichtig, die auf dem Modul aufgedruckten Beschriftungen zu verwenden, wie im obigen Bild von DIYables zu sehen.
  • Machen Sie nicht den Fehler, den VCC-Pin mit dem 5V-Pin zu verbinden, da dies das Modul beschädigen könnte.
  • Die MFRC522-Bibliothek unterstützt nur den SPI-Modus, daher konzentriert sich diese Anleitung auf SPI-Kommunikation.

Wie RFID/NFC funktioniert

RFID/NFC besteht aus zwei Komponenten: Leser und Tag:

  • Der Leser besteht aus einem Hochfrequenzmodul und einer Antenne, die ein hochfrequentes elektromagnetisches Feld erzeugt.
  • Der Tag ist im Allgemeinen ein passives Gerät, das keine Stromquelle benötigt. Er verfügt über einen Mikrochip, der Informationen speichert und verarbeitet, sowie eine Antenne zum Senden und Empfangen von Signalen. Der Tag wird verwendet, um Informationen einschließlich UID (Unique ID) und Daten zu speichern.

Der Tag muss sich in der Nähe des Lesers befinden, um die darin enthaltenen Informationen zu lesen. Der Lesevorgang läuft folgendermaßen ab:

  • Der Leser erzeugt ein elektromagnetisches Feld, das Elektronen durch die Antenne des Tags fließen lässt und den Chip mit Strom versorgt.
  • Der Chip im Tag antwortet dann, indem er die angeforderten Informationen in Form eines Funksignals an den Leser zurücksendet.
  • Der Leser erkennt das Signal und wandelt es in Daten um.
  • Raspberry Pi liest die Daten vom Leser.

Schaltschema zwischen RFID-RC522 Modul und Raspberry Pi

Raspberry Pi RFID RC522 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

Verdrahtungstabelle für RFID/NFC RC522 Modul und Raspberry Pi

RC522 RFID Reader Raspberry Pi
SS Pin 24 (GPIO8)
SCK Pin 23 (GPIO11)
MOSI Pin 19 (GPIO10)
MISO Pin 21 (GPIO9)
IRQ Nicht verbunden (kann unverbunden bleiben)
GND Beliebiger GND Pin
RST Pin 31 (GPIO12)
VCC Pin 1 oder Pin 16 (3.3V)

Raspberry Pi RFID/NFC Code

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 dem gleichen lokalen Netzwerk wie Ihr PC verbunden ist.
  • Stellen Sie sicher, dass Ihr Raspberry Pi mit dem Internet verbunden ist, wenn Sie einige Bibliotheken installieren müssen.
  • Wenn Sie Raspberry Pi zum ersten Mal verwenden, siehe Raspberry Pi einrichten
  • Verbinden Sie Ihren PC über SSH mit dem Raspberry Pi, indem Sie den integrierten SSH-Client unter Linux und macOS oder PuTTY unter Windows verwenden. 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 dem folgenden Befehl:
sudo apt-get update sudo apt-get install python3-rpi.gpio
  • Aktivieren Sie die SPI-Schnittstelle auf Raspberry Pi, indem Sie der Anleitung unter Raspberry Pi - SPI-Schnittstelle aktivieren folgen
  • Stellen Sie sicher, dass Sie die spidev-Bibliothek installiert haben. Falls nicht, installieren Sie sie mit dem folgenden 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 dem folgenden Befehl:
sudo pip3 install mfrc522
  • Erstellen Sie eine Python-Script-Datei rc522_rfid.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 import RPi.GPIO as GPIO import MFRC522 # Define the SPI and RST pins for the RC522 module SPI_PORT = 0 SPI_DEVICE = 0 RST_PIN = 12 # Create an instance of the MFRC522 class MIFAREReader = MFRC522.MFRC522() # Function to read the UID from an RFID card and print it in hexadecimal format def read_uid(): # Scan for cards (status, TagType) = MIFAREReader.MFRC522_Request(MIFAREReader.PICC_REQIDL) # If a card is found if status == MIFAREReader.MI_OK: # Get the UID of the card (status, uid) = MIFAREReader.MFRC522_Anticoll() if status == MIFAREReader.MI_OK: # Convert the UID bytes to a hexadecimal string uid_hex = ''.join(['{:02X}'.format(val) for val in uid]) print("UID (Hex): " + uid_hex) # Setup GPIO and initialize the RC522 module GPIO.setmode(GPIO.BOARD) GPIO.setup(RST_PIN, GPIO.OUT) GPIO.output(RST_PIN, GPIO.HIGH) MIFAREReader.MFRC522_Init() try: print("Press Ctrl+C to exit.") while True: read_uid() except KeyboardInterrupt: print("\nExiting the program.") GPIO.cleanup()
  • Speichern Sie die Datei und führen Sie das Python-Script aus, indem Sie folgenden Befehl im Terminal ausführen:
python3 rc522_rfid.py
  • Halten Sie verschiedene RFID/NFC-Tags an das RFID-RC522 Modul.
  • Überprüfen Sie die UID auf dem Serial Monitor.
PuTTY - Raspberry Pi
Press Ctrl+C to exit. UID (Hex): 12AB34CD UID (Hex): 567890EF

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

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!