Einleitung
RIFD (engl. radio-frequency identification) ist eine Technologie die elektromagnetische Wellen nutzt um Daten über kurze Distanzen zu übertragen. RFID ist besonders nützlich zur Identifikation von Personen und Tieren, bargeldlosen Bezahlung oder als Zutrittskontrolle.
Die Übertragung der Daten erfolgt über ein Lesegerät (Reader) welches ein elektromagnetisches Wechselfeld erzeugt auf das der RFID-Transponder (RFID-Tag/Karte) reagiert. Die vom RFID-Tag aufgenomme Hochfrequenz dient während der Kommunikation als Stromversorgung, wodurch die RFID-Transponder keine Batterien benötigen.
Die RFID-Transponder bestehen aus einem kleinen Chip und einem aufgewickelten Kupferdraht der als Antenne dient. Sie sind in verschiedenen Varianten erhältlich, zb. als Schlüsselanhänger oder im Kreditkartenformat.
MFRC522 RFID-Modul
Das MFRC522 Modul ist ein RFID Reader/Writer für kontaktlose Kommunikation mit 13.56Mhz. Die interne Antenne ist auslegt um ISO/IEC 14443A/MIFARE Transponder zu lesen und beschreiben. Die Schaltung auf dem Modul demoduliert und entschlüsselt die empfangenen Daten und ist in der Lage die Daten auf Parität und Fehler zu prüfen.
Beim MFRC522 Modul sind 2 verschiedene Stiftleisten enthalten, zur Verwendung auf einem Breadboard sollte man die gewinkelte Stiftleiste anlöten.
Auslesen von RFID-Tags mit dem MFRC522 RFID-Reader und einem Arduino
Für dieses Projekt basiererend auf unserem Arduino Starterkit benötigen wir folgende Komponenten:
- Arduino Uno Board + USB-Kabel
- MFRC522 Modul + Transponder
- Buchse-Stecker Jumperkabel
- 5mm LED + 220 Ohm Widerstand
- Breadboard
Beim MFRC522 Modul sind 2 verschiedene Stiftleisten enthalten, zur Verwendung auf einem Breadboard sollte man die gewinkelten Stiftleiste anlöten.
Die Verkabelung mit dem Arduino Uno sieht wie folgt aus:
RFID Modul | Arduino Uno |
---|---|
SDA | Pin 10 |
SCK | Pin 13 |
MOSI | Pin 11 |
MISO | Pin 12 |
GND | GND Pin |
RST | Pin 9 |
3.3V | 3.3V Pin |
IRQ | nicht angeschlossen |
Achtung, das Modul muss mit 3,3V betrieben werden! Bei verwendung mit einem 5V Board wird ein Pegelwandler benötigt!
Zur Programmierung des Arduinos empfiehlt sich diese RFID-Bibliothek, welche auch in der offiziellen Arduino IDE zu finden ist. Einfach in der Bibliothekenverwaltung nach "RFID" suchen:
Die Bibliothek enthält gute Beispiel-Sketches für grundlegende RFID-Funktionen.
Daher laden wir den „DumpInfo“-Beispielsketch auf unser Arduino um die einzigartige Identifikationsnummer (UID) des RFID-Tags herauszufinden. Den Sketch gibt es hier nochmal mit deutschen Kommentaren versehen um die einzelnen Zeilen zu verstehen.
Anschließend öffnen wir den seriellen Monitor und halten ein RFID-Transponder an den RFID-Reader bis die Daten übertragen wurden. Wurde der Transponder erfolgreich ausgelesen, bekommen wir UID, Typ, Datenblöcke, Sektoren, ect. angezeigt.
Weiteres Beispiel: Eine LED aufleuchten lassen!
Nachdem wir nun die UID unseres RFID-Transponders kennen, können wir diese nutzen um verschiedenste Funktionen zu programmieren. So zeigen wir im nächsten Beispiel wie man eine LED aufleuchten lässt sobald der richtige RFID-Tag erkannt wird. Diesen Sketch kann man auch einfach verändern um z. B. ein Relais anstelle einer LED zu schalten.
Die Anschlussbelegung ist wie im ersten Sketch, nur mit einer zusätzlichen LED an Pin 2.
Um den Sketch mit Eurem RFID-Tag verwenden zu können muss lediglich eine Zeile angepasst werden:
if (rfid == "34 22 EC E2") // Wenn die richtige Karte erkannt wurde...
Hier wird einfach die vorher ausgelesene Card UID eingetragen.
Schepp
Hallo zusammen,
hatte mir vor einiger Zeit dieses Starterkit mal bestellt. Jetzt, mit etwas mehr Muse, stoße ich auf diesen interessanten Beitrag.
Was mir nicht ganz einleuchtet ist, warum ist sowohl die I²C-, als auch die SPI- Schnittstelle am Arduino angeschlossen? -Und um es noch einfacher zu machen, könnte man gleich die auf dem Arduino- Board vorhandene LED benutzen...?