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
0 Kommentare