Pracuji na projektu pro svůj místní Makerspace, máme omezený rozpočet, takže jsem doufal, že použiji čtečky RFID / RC522 el'cheap'o RFID / NFC na eBay, dostal jsem pár desek založených na SPI, oni práce, ale příklady kódu pro ně jsou omezené.
Našel jsem několik různých knihoven a usadil se na této: https://github.com/ljos/MFRC522
Potíž je v tom, že se zdá, že se veškerý dostupný kód online objevuje u některých čínských lidí Pythonský kód, který lidé přeložili a nabourali do knihovny Arduino.
Kód funguje, ale karty Mifare jsou chtěl mít 4, 7 nebo 10 bajtů UID a příklad / knihovna vrací 5 bajtové sériové číslo.
Neexistuje žádná dokumentace a datový list NXP je nepochopitelný ... Navíc se zdá, že funguje s většinou karet, ale nefunguje s kartami Mastercard PayWave, které odpovídají normě ISO 14443. Dražší čtečka RDM880, která je založena na MFRC500, funguje dobře a má pěknou knihovnu, ale náklady znemožňují implementaci.
Takže mi může někdo pomoci získat tuto jednotku založenou na NXP MFRC522, která čte UID z všechny karty ISO 14443.
#include <SPI.h> # include <MFRC522.h> # definovat RFID_SS 10 # definovat RFID_RST 5MFRC522 rfid (RFID_SS, RFID) ; Serial.begin (115200); rfid.begin ();} void loop () {byte data [MAX_LEN]; byte uid [5]; if (rfid.requestTag (MF1_REQIDL, data) == MI_OK) {if (rfid.antiCollision (data) == MI_OK) {memcpy (uid, data, 5); for (int i = 0; i < 5; i ++) {Serial.print (uid [i], HEX); Serial.print (''); } Serial.println (); }}}