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:
- Die UID eines RFID/NFC-Tags abrufen
- Die UID eines RFID/NFC-Tags ändern (nur wenn der Tag dies unterstützt)
- Daten auf einem RFID/NFC-Tag speichern
- Daten von einem RFID/NFC-Tag abrufen
Diese Anleitung konzentriert sich auf:
- Wie Sie das RC522 Modul an Raspberry Pi anschließen
- Wie Sie Raspberry Pi programmieren, um mit dem RC522 Modul zu kommunizieren und die UID des RFID-Tags zu lesen.
Erforderliche Hardware
Oder Sie können die folgenden Kits kaufen:
| 1 | × | DIYables Sensor-Kit (30 Sensoren/Displays) | |
| 1 | × | DIYables Sensor-Kit (18 Sensoren/Displays) |
Ü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.

※ 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

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:

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:
- 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:
- Stellen Sie sicher, dass Sie die mfrc522-Bibliothek installiert haben. Falls nicht, installieren Sie sie mit dem folgenden Befehl:
- Erstellen Sie eine Python-Script-Datei rc522_rfid.py und fügen Sie folgenden Code hinzu:
- Speichern Sie die Datei und führen Sie das Python-Script aus, indem Sie folgenden Befehl im Terminal ausführen:
- Halten Sie verschiedene RFID/NFC-Tags an das RFID-RC522 Modul.
- Überprüfen Sie die UID auf dem Serial Monitor.
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.