RFID Tag auslesen
ACHTUNG:
"Tag" bedeutet nicht Tag im kalendarischen Sinne sondern das englische Tag [täg] für Anhänger/Marke/Chip
Bevor man mit einem RFID Tag eine Aktion auslösen kann, muss man in einem ersten Schritt die Identifikationsnummer der verschiedenen Tags auslesen, damit man im Sketch definieren kann, welcher Tag welche Aktion auslösen soll - oder eben auch nicht. Eine Möglichkeit dies zu tun, erkläre ich hier:
1. Aufbau:
Wenn ihr den Link von meinen Seiten zur Arduino Zugangskontrolle genutzt habt, könnt ihr auch mit dem umfangreicheren Aufbau arbeiten.
Durch die Nutzung einer library muss man die folgende Verkabelung beachten!
Anschlussbezeichnung | Nummer |
---|---|
GND | GND |
3.3V | 3.3V |
RST | 5 |
MISO | 50 |
MOSI | 51 |
SCK | 52 |
SDA | 53 |
IRO | - |
Falls ihr mit anderen Arduino Modellen als dem MEGA 2560 arbeitet, findet ihr auf der verlinkten Seite eine größere Zuordnungstabelle:
https://www.makerblog.at/2017/11/rfid-transponder-mit-dem-mfrc-522-card-reader-am-arduino-auslesen/
2. Sketch:
Alle eingegliederten libraries müssen natürlich auch im Arduino IDE Programm installiert sein ;-)
/*
* Dieser Sketch liest die Identifikationnummer eines RFID Tags aus
* Folgende Pinzuteilung wird vorrausgesetzt:
Pin 5 = RST
Pin 53 = SDA
Pin 51 = MOSI
Pin 50 = MISO
Pin 52 = SCK
GND = GND
3,3V = 3,3V
Quelle der Zuordnungstabelle:
https://www.makerblog.at/2017/11/rfid-transponder-mit-dem-mfrc-522-card-reader-am-arduino-auslesen/
*/
#include
#include
#include
#include
#define SS_PIN 53 //SDA Pin definieren
#define RST_PIN 5 //RST Pin definieren
MFRC522 mfrc522(SS_PIN, RST_PIN); //RIFD Empfänger benennen
void setup()
{
Serial.begin(9600); //Serielle Verbindung starten (seriellen Monitor aufrufen!)
SPI.begin(); //SPI-Verbindung aufbauen
mfrc522.PCD_Init(); //Initialisierung des RFID-Empfängers
}
void loop()
{
if ( ! mfrc522.PICC_IsNewCardPresent()) //Wenn ein Chip in der Nähe ist, führe folgende Aktion aus
{
return; //gehe zum nächsten Schritt
}
if ( ! mfrc522.PICC_ReadCardSerial()) //Wenn ein RFID Empfänger erkannt wurde, führe folgende Aktion aus
{
return; //gehe zum nächsten Schritt
}
long code = 0; // Als Variable „code“ hinzufügen, unter welcher später die UID als zusammenhängende Zahl ausgegeben wird. unter "long" statt "int" lässt sich eine größere Zahl speichern
for (byte i = 0; i < mfrc522.uid.size; i++)
{
code = ((code + mfrc522.uid.uidByte[i]) * 10); // Nun werden vier Blöcke ausgelesen und in jedem Durchlauf wird der Code mit dem Faktor 10 „gestreckt“.
}
Serial.print("Kartennummer:"); // Der Zahlencode des Chips wird unter der Überschrift "Kartennummer" ausgegeben
Serial.println(code);
}
Der Zahlencode sollte nun auf dem seriellen Monitor der PCs unter der Bezeichnung "Kartennummer:" erscheinen
Dieser kann an folgender Stelle im Arduino IDE Programm aufgerufen werden:
erstellt Schuljahr 2019/20
Florian Porth, 10b