RFID-Reader
Die Aufgabe des Lesegeräts ist es, den Benutzer schnell und ohne großen Aufwand zu identifizieren. Dies soll mithilfe von RFID erfolgen. Zusätzlich wird überprüft, ob der Maker für die Benutzung der jeweiligen Maschine berechtigt ist. Dazu wird die ermittelte Nummer des RFID-Tags (wird als „UID“ bezeichnet) mit der Datenbank auf dem Server verglichen.
Vergleich RFID / NFC
RFID steht für „Radio-Frequency Identification“ und ermöglicht, wie der Name schon sagt, eine kabellose Identifikation. Benötigt werden dafür lediglich ein Lesegerät und die sogenannten „Tags“, welche einen Chip mit Antenne beinhalten. In dieser Diplomarbeit sind speziell die passiven Tags relevant, bei denen die Stromversorgung für den Chip durch ein vom Lesegerät erzeugtes, elektromagnetisches Feld erfolgt.
„NFC“ ist die Abkürzung für „Near-Field-Communication“. Sie basiert ebenfalls auf den RFID Protokollen, allerdings ist mit dieser Technologie auch eine Kommunikation zwischen zwei Parteien, also der beidseitige Austausch von Informationen zwischen zwei NFC-Geräten, möglich. Beide Systeme können allerdings nur auf relativ kurzer Distanz genutzt werden.
RFID-RC522
In dem ersichtlichen Modul ist der Chip „MFRC-522“ der Firma NXP verbaut. Die
Kommunikation erfolgt über SPI (Serial
Peripheral Interface) und basiert auf dem MIFARE Protokoll. Die Frequenz, mit dem das Modul arbeitet, liebt bei 13,56 Mhz.
Für die Inbetriebnahme wird nach der frei zugänglichen Website: https://tutorials-raspberrypi.de/raspberry-pi-rfid-rc522-tueroeffner-nfc/ vorgegangen.
NFC Module V3
In ihm verbaut ist der Chip „PN5321“ der Firma NXP. Die Kommunikation kann, durch zweiSchalter, zwischenSPI, I2C oder HSU (High Speed UART) gewählt werden. Auch diesesModul arbeitet mit einer Frequenz von 13,56MHz basierend auf den 80C51-Microcontroler.
HW-230 (PN532)
Die Spezifikationen dieses Moduls gleichen denen des vorherigen (NFC Module V3), da es ebenfalls den Chip„PN5321“ der Firma NXP verbaut hat.
Der Praxistest von RFID-RC522, NFC Module V3 und HW-230
Für ein qualitativ hochwertiges Ergebnis müssen für jeden Test gleiche Bedingungen herrschen. Dafür wurde eine Schiebelehre zu Hilfe genommen, an der die Komponenten (auf der einen Seite das Modul, auf der anderen der RFID-Tag) geklebt wurden und ein genaues Messen zu ermöglichen.
Der Abstand der Komponenten wurde so weit verringert, bis das Modul die UID des Tags lesen konnte. Dabei wurde der Vorgang mehrmals wiederholt und jeweils der minimale und der maximale Abstand (in mm) notiert.
Modul | RFID-RC522 | NFC Module V3 | W-230 |
---|---|---|---|
Chip | MFRC-522 | PN5321 | PN5321 |
Abstände | max / min [mm] | max / min [mm] | max / min [mm] |
Scheckkarte 1 | 56 / 42 | 62 / 60 | 28 / 28 |
Scheckkarte 2 | 28 / 27 | 40 / 39 | -- / -- |
Scheckkarte 3 | 39 / 38 | 46 / 45 | 11 / 10 |
Sticker 1 | -- / -- | 19 / 18 | 1 / 1 |
Sticker 2 | 25 / 23 | 25 / 25 | 4 / 4 |
Schlüsselanhänger | 26 /24 | 31 / 25 | 6 / 5 |
Welcher ist der beste NFC Reader für den Raspberry Pi?
Wie aus der obigen Messung hervorgeht hat das NFC Module V3 gewonnen. Es funktioniert am zuverlässigsten, hat die größte Reichweite und ist dazu noch einfach zu programmieren.
Wie programmiere ich das NFC Module V3 / NFC PN 532 Modul?
Zuerst benötigt man einen Raspberry Pi wo bereits ein Betriebssystem darauf läuft. Hier erfährst du wie du deinen Raspberry Pi einfach ohne Tastatur und Maus aufsetzen kannst. Danach muss das NFC Module mit dem Raspberry Pi verbunden werden.
Programmcode
Öffne das Terminal deines Raspberry Pi und verbinde dich via SSH. Wenn Python und Git noch nicht installiert sind verwende folgende Befehle und installiere es dadurch:
sudo apt-get update sudo apt-get install build-essential python-dev git
Installiere nun die Adafruit Python Bibliothek für den PN 532.
cd ~ git clone https://github.com/adafruit/Adafruit_Python_PN532.git cd Adafruit_Python_PN532 sudo python setup.py install
Tippe nun die folgende Befehle um zum Beispielprogrammcode für das Lesen und Schreiben von NFC Karten und Tags zu gelangen.
cd ~ git clone https://github.com/leon-anavi/rpi-examples.git cd rpi-examples/PN532/python/
Führe den folgenden Befehl aus und folge den Anweisungen des Programms um Daten welche die USER ID auf RFID Karten schreibt.
sudo python rfid-save.py
Um Daten von NFC oder RFID Tags zu lesen wird folgendes Programm benötigt:
sudo python rfid-scan.py
Um ein Python Programm zu beenden drücke Strg + C.