Ein Programm zum Auslesen einer Chip-ID schreiben
Bibliotheken installieren
Um die Chip-ID, oder User ID (UID), auszulesen, benötigst du zunächst 2 Bibliotheken: "SPI" und "MFRC522".
Die Bibliothek "SPI" wurde bereits mit der Installation des ESP32 über den Boardverwalter mit installiert.
Die Bibliothek "MFRC522"
muss noch über den Bibliotheksverwalter installiert werden:
Abbildung 1: MFRC522 Bibliothek
Quelle: BBS2 Wolfsburg
Anschließend kann der nachfolgende Code (auch auf der nächsten Seite zum download) in der Arduino IDE geschrieben und auf den ESP32 geladen werden.
Erläuterung zum Arduino Programm
#include <SPI.h>
#include <MFRC522.h>
|
Einbinden der beiden benötigten Bibliotheken |
---|---|
#define resetPin 22
#define ssPin 21
|
Textersetzung für den RST und SS Pin. Erleichtert die Lesbarkeit und Anpassbarkeit des Programms. |
MFRC522 T1_RFIDleser = MFRC522(ssPin, resetPin); |
Hier wird ein Objekt der Klasse MFRC522 erstellt. Das Objekt wird T1_RFIDleser genannt. So können alle Funktionen der Bibliothek (Klasse) MFRC522 für unser Objekt (T1_RFIDleser) genutzt werden. Dieser Name muss vor jeder Funktion der Bibliothek (Klasse) stehen. |
void setup()
{
|
|
Serial.begin(115200);
SPI.begin();
|
Hier wird die Kommunikation zum Seriellen Monitor (SM) gestartet und der SPI Bus initialisiert. |
T1_RFIDleser.PCD_Init(); T1_RFIDleser.PCD_DumpVersionToSerial(); |
Der RFID-RC522 wird hiermit gestartet und die Kommunikation einmal getestet. |
}
void loop()
{
|
|
if(!T1_RFIDleser.PICC_IsNewCardPresent())
{
return;
}
|
In dieser Abfrage wird geprüft, ob ein RFID Chip in erreichbarem Abstand des Lesers ist. Ist dies der Fall, so wird im Programm fortgefahren. Ist dies nicht der Fall, wird mit "return;" wieder an den Start der Schleife "loop()" zurückgesprungen. |
if(!T1_RFIDleser.PICC_ReadCardSerial())
{
return;
}
|
In dieser Abfrage werden die Informationen des RFID Chips ausgelesen. Ist dies erfolgreich geschehen, so wird im Programm fortgefahren. Ist dies nicht der Fall, wird mit "return;" wieder an den Start der Schleife "loop()" zurückgesprungen. |
T1_RFIDleser.PICC_DumpDetailsToSerial(&(T1_RFIDleser.uid)); } |
Mit dieser Funktion der Klasse MFRC522 werden alle Informationen über den RFID-Chip an den SM übergeben. |
Ist das Programm erfolgreich auf den ESP 32 geladen wird im SM folgende Nachricht gezeigt, sobald eine Karte vor dem RFID-RS522 gehalten wird.
In der Zeile "Card UID:" stehen dann die 4 Bytes, die die User ID des RFID-Chips ausmachen. Notier dir gerne die UIDs deiner vorhandenen RFID-Chips.
Abbildung 2: RFID-Chip auslesen
Quelle: BBS2 Wolfsburg
Last modified: Monday, 5 February 2024, 11:49 AM