Advertisement
RuiViana

RFID_CK

Oct 7th, 2017
238
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.14 KB | None | 0 0
  1.  
  2.  
  3. #include <SPI.h>
  4. #include <MFRC522.h>
  5. #include<SoftwareSerial.h>
  6.  
  7.  
  8.  
  9. #define SS_PIN 15
  10. #define RST_PIN 2
  11.  
  12. MFRC522 rfid(SS_PIN, RST_PIN); // Instance of the class
  13.  
  14. MFRC522::MIFARE_Key key;
  15.  
  16. byte nuidPICC[4];
  17.  
  18. void setup() {
  19.   Serial.begin(9600 );
  20.   SPI.begin();
  21.   rfid.PCD_Init();  
  22.  
  23.   for (byte i = 0; i < 6; i++) {
  24.     key.keyByte[i] = 0xFF;
  25.   }
  26.  
  27.   Serial.println(F("This code scan the MIFARE Classsic NUID."));
  28.   Serial.print(F("Using the following key:"));
  29.   printHex(key.keyByte, MFRC522::MF_KEY_SIZE);
  30. }
  31.  
  32. void loop() {
  33.  
  34.   if ( ! rfid.PICC_IsNewCardPresent())
  35.     return;
  36.  
  37.   if ( ! rfid.PICC_ReadCardSerial())
  38.     return;
  39.  
  40.   Serial.print(F("PICC type: "));
  41.  // MFRC522::PICC_Type piccType = rfid.PICC_GetType(rfid.uid.sak);
  42.   byte piccType = rfid.PICC_GetType(rfid.uid.sak);
  43.   Serial.println(rfid.PICC_GetTypeName(piccType));
  44.  
  45.   if (piccType != MFRC522::PICC_TYPE_MIFARE_MINI &&  
  46.     piccType != MFRC522::PICC_TYPE_MIFARE_1K &&
  47.     piccType != MFRC522::PICC_TYPE_MIFARE_4K) {
  48.     Serial.println(F("Your tag is not of type MIFARE Classic."));
  49.     return;
  50.   }
  51.  
  52.   if (rfid.uid.uidByte[0] != nuidPICC[0] ||
  53.     rfid.uid.uidByte[1] != nuidPICC[1] ||
  54.     rfid.uid.uidByte[2] != nuidPICC[2] ||
  55.     rfid.uid.uidByte[3] != nuidPICC[3] ) {
  56.     Serial.println(F("A new card has been detected."));
  57.  
  58.     for (byte i = 0; i < 4; i++) {
  59.       nuidPICC[i] = rfid.uid.uidByte[i];
  60.     }
  61.    
  62.     Serial.println(F("The NUID tag is:"));
  63.     Serial.print(F("In hex: "));
  64.     printHex(rfid.uid.uidByte, rfid.uid.size);
  65.     Serial.println();
  66.     Serial.print(F("In dec: "));
  67.     printDec(rfid.uid.uidByte, rfid.uid.size);
  68.     Serial.println();
  69.   }
  70.   else Serial.println(F("Card read previously."));
  71.  
  72.   rfid.PICC_HaltA();
  73.  
  74.  
  75.   rfid.PCD_StopCrypto1();
  76. }
  77.  
  78.  
  79. void printHex(byte *buffer, byte bufferSize) {
  80.   for (byte i = 0; i < bufferSize; i++) {
  81.     Serial.print(buffer[i] < 0x10 ? " 0" : " ");
  82.     Serial.print(buffer[i], HEX);
  83.   }
  84. }
  85.  
  86. void printDec(byte *buffer, byte bufferSize) {
  87.   for (byte i = 0; i < bufferSize; i++) {
  88.     Serial.print(buffer[i] < 0x10 ? " 0" : " ");
  89.     Serial.print(buffer[i], DEC);
  90.   }
  91. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement