In diesem Tutorial möchte ich das Modul RFID RC522 erklären und an einem kleinen Beispiel zeigen wie man diesen betreibt.
RFID bedeutet übersetzt radio frequency identification(laut Wikipedia).
Das Modul habe ich über ebay ersteigert und je nachdem wie lange man auf seine Ware warten möchte Zahlt man zwischen 3€ und 8€.
Inhaltsverzeichnis
Lieferumfang
Zum Lieferumfang gehört:
- 1 Transponder mit Schlüsselring
- 1 Transponder im Kartenformat
- 1 RFID-RC522 Modul
- 2 Stiftleisten
- 1 gerade
- 1 abgewinkelt
Technische Daten
- Betriebsspannung 3,3 V
- Maße ca. 60mm x 39mm x 6mm (höchste Stelle am Quarz)
Aufbau
Anschluss
PIN am RFID Modul | PIN am Arduino UNO |
---|---|
3,3 V | 3,3 V |
GND | GND |
RST | PIN 9 |
SDA | PIN 10 |
MOSI | PIN 11 |
MISO | PIN 12 |
SCK | PIN 13 |
Quellcode
Eine Bibliothek für den Arduino ist unter https://www.electrodragon.com/w/File:Rfid-master.zip zu finden.
#include <SPI.h> #include <RFID.h> #define SS_PIN 10 #define RST_PIN 9 RFID rfid(SS_PIN, RST_PIN); String ids[2] = {"453B56D16", "8C3B3924AA"}; //Zugelassene ID's void setup() { Serial.begin(9600); SPI.begin(); rfid.init(); } void loop() { if (rfid.isCard() && rfid.readCardSerial()) { String serial = parseId(rfid); Serial.print("RFID Nummer: "); Serial.println(serial); boolean serialOK = false; int counter = 0; for (counter = 0; counter < sizeof(ids)-1; counter++) { if (serial == ids[counter]) { serialOK = true; break; } } if (serialOK) { Serial.println("ID wurde gefunden!"); } else { Serial.println("ID wurde nicht gefunden!"); } delay(2000); } rfid.halt(); } String parseId(RFID rfid) { String result = ""; int position = 0; for (position = 0; position <= 4; position++) { String pos = getNumPosAsHEX(rfid, position); result = result + pos; } result.toUpperCase(); return result; } String getNumPosAsHEX(RFID rfid, int position) { return String(rfid.serNum[position], HEX); }
Neue ID’s registrieren
Der Quellcode des Arduino Sketches wird in einen festen Speicher geschrieben und die Variablen in einen flüchtigen. Durch dieses Verhalten kann man den Arduino nicht ohne weiteres dauerhaft auf die RFID’s “anlernen”.
Meine Lösung ist das Array welches um die registrierten ID’s erweitert werden.
Somit ist bei jedem neuen RFID Chip ein minimaler Programmieraufwand nötig.
Download
RFID RC522 - Kartenleser
ein sd-karten erweiterungsmodul wäre hier hilfreich.
oder ein arbeiten mit dem raspberry pi.
Hallo,
ich arbeite gerade an einem 2. Teil zu diesem Tutorial, dort wird es sich hauptsächlich darum drehen wie man bequem neue Karten registrieren kann.
Gruß,
Stefan Draeger