Mit Arduino Uno & PN532 NFC Modul – RFID Schlüsselkarten auslesen / verändern

Die Tage befasste ich mich damit, wie man mit einem Arduino Uno und dem PN532 NFC Modul RFID Schlüsselkarten auslesen und verändern kann. Mir ging es dabei im Besonderen darum Karten im NDEF (NFC Data Exchange Format) zu beschreiben, damit ich diese mit einer von mir geschriebenen App über Core NFC auslesen kann.

Obwohl es für beide Boards jede Menge Dokumentation gibt, brauchte ich ein wenig, bis ich die Kabel richtig verbunden habe. Was mir schwer fiel, soll Euch leicht fallen, also hier die Beschreibung, samt ein paar Bilder:

Die PINs sind auf der Rückseite des PN532 beschrieben, vergleichst Du das mit dem Bild oben wäre die Belegung (von oben nach unten), wie folgt. In Klammern dahinter steht dann der PIN am Arduino Uno Board, den ich belegt habe.

PN532 Arduino Uno
SCK 13
MI 12
MO / SDA / TX 11
NSS / SCL / RX 10
IRQ
RST#
GND GND
5V 5V

Für das PN532 gibt es eine sehr gute Library, die man einbinden kann. In der Arduino Entwicklungsumgebung Sketch > Bibliothek Einbinden > Bibliotheken verwalten… kann man diese über den Suchbegriff PN532 einfach finden und einbinden. Der Quelltext steht auf GitHub für Dich bereit.

Unter Arduino > Datei > Beispiele > Adafruit PN532 findet Du nun jede Menge Beispiele. Bei diesen ist es jedoch sehr wichtig, dass Du zu erst sicherstellst, dass die PIN Belegung richtig hinterlegt wurde:

#define PN532_SCK  (13)
#define PN532_MOSI (11)
#define PN532_SS   (10)
#define PN532_MISO (12)

Weiterhin musst Du sicherstellen, dass Du die folgende Funktion „auskommentierst“

//Adafruit_PN532 nfc(PN532_SCK, PN532_MISO, PN532_MOSI, PN532_SS);

und bei dieser Funktion die zwei Schrägstriche entfernst

Adafruit_PN532 nfc(PN532_SS);

Sofern Du eine der typischen Mifare Classic 1K – Karten / Schlüsselanhänger hast (die sind im Lieferumfang des PN532 oft enthalten), musst Du diese erst für die Verwendung mit NDEF formatieren (dazu nutzt Du die Beispieldatei: mifareclassic_formatndef) und dann kannst Du diese mit mifareclassic_updatendef „beschreiben“.

Das ganze verfolgst Du über Werkzeuge > Serieller Monitor und eigentlich ist das dann ganz unspektakulär, der Output beim Schreibvorgang, sieht z.B. so aus:

Looking for PN532...
Found chip PN532
Firmware ver. 1.6
Place your NDEF formatted Mifare Classic card on the reader to update the
NDEF record and press any key to continue ...
Found an ISO14443A card
UID Length: 4 bytes
UID Value: 0xEA 0x98 0x46 0xD5

Seems to be a Mifare Classic card (4 byte UID)
Authentication succeeded (seems to be an NDEF/NFC Forum tag) ...
Updating sector 1 with URI as NDEF Message
NDEF URI Record written to sector 1

Done!
Place your NDEF formatted Mifare Classic card on the reader to update the
NDEF record and press any key to continue ...

Hier ein kurzes ScreenRecording, wie das in meiner doch sehr rudimentären App aussieht:

Und hier ein Link zum GitHub Respository

Claus Wolf

Seit 1994 im Netz unterwegs und seit 2004 eingefleischter Mac-Nutzer. 21.5" iMac - 2.9GHz Intel Core i5, 16GB RAM, 1TB Fusion Drive HDD / 128GB iPhone 7 / 128GB iPad 9,7" (2017) / 15" MacBook Pro (Mitte 2014) in der Firma...

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.