Yerel Makerspace'im için bir proje üzerinde çalışıyorum, sınırlı bütçemiz var, bu yüzden eBay'de RFID-RC522 el'cheap'o RFID / NFC okuyucuları kullanmayı umuyordum, birkaç SPI tabanlı tahta aldım, çalışıyorlar, ancak çalışıyorlar kod örnekleri sınırlıdır.
Birkaç farklı kütüphane buldum ve bu kütüphaneye yerleştim: https://github.com/ljos/MFRC522
Sorun şu ki, çevrimiçi mevcut tüm kodlar, insanların çevirdiği ve bir Arduino kütüphanesine hacklendiği bazı Çinli çocuklar Python kodundan doğuyor gibi görünüyor.
Kod çalışır, ancak Mifare kartlarının 4, 7 veya 10 bayt UID'si olması gerekir ve örnek / kütüphane 5 bayt seri numarası döndürür.
Doküman yok ve NXP veri sayfası anlaşılmaz ... Ayrıca çoğu kartla çalışıyor gibi görünüyor, ancak ISO 14443 standardına uygun Mastercard PayWave kartlarıyla çalışmıyor. MFRC500 tabanlı daha pahalı RDM880 okuyucu iyi çalışıyor ve hoş bir kütüphaneye sahip ancak maliyet uygulamayı imkansız hale getiriyor.
Yani, birisi bu NXP MFRC522 tabanlı birimi tüm ISO 14443 kartlarından UID'yi okumama yardımcı olabilir.
#include <SPI.h>
#include <MFRC522.h>
#define RFID_SS 10
#define RFID_RST 5
MFRC522 rfid( RFID_SS, RFID_RST );
void setup() {
SPI.begin();
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();
}
}
}
uid
diziniz 5 uzunluktadır. 10 baytlık bir sonuç istediğiniz için daha büyük bir dizi kullanmayı denediniz mi?