Advertisement
Guest User

Untitled

a guest
Dec 7th, 2019
107
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.72 KB | None | 0 0
  1. #include <Servo.h>
  2.  
  3. #include <deprecated.h>
  4. #include <MFRC522.h>
  5. #include <MFRC522Extended.h>
  6. #include <require_cpp11.h>
  7.  
  8. #define SS_PIN 10
  9. #define RST_PIN 9
  10.  
  11. MFRC522 rfid(SS_PIN, RST_PIN); // Instance of the class
  12.  
  13. MFRC522::MIFARE_Key key;
  14.  
  15. int code[2][4] = {{103,136,18,82}, {107,108,60,10}}; //This is the stored UID
  16. int codeRead = 0;
  17. String uidString;
  18. const int ledPin = 3;
  19. const int ledOnTime = 1000;
  20. int servoPin = 5;
  21. Servo Servo1;
  22.  
  23. void setup() {
  24. // put your setup code here, to run once:
  25. Serial.begin(9600);
  26. SPI.begin(); // Init SPI bus
  27. rfid.PCD_Init(); // Init MFRC522
  28.  
  29. Servo1.attach(servoPin);
  30.  
  31. pinMode(ledPin, OUTPUT);
  32. Servo1.write(0);
  33. }
  34.  
  35. void loop() {
  36. // put your main code here, to run repeatedly:
  37. if( rfid.PICC_IsNewCardPresent())
  38. {
  39. readRFID();
  40. }
  41. delay(100);
  42. }
  43.  
  44. void openServo()
  45. {
  46. Servo1.write(90);
  47. Serial.println("open Servo");
  48. delay(3000);
  49. closeServo();
  50. }
  51.  
  52. void closeServo()
  53. {
  54. Servo1.write(0);
  55. Serial.println("close Servo");
  56. delay(1000);
  57. }
  58.  
  59. void readRFID()
  60. {
  61.  
  62. rfid.PICC_ReadCardSerial();
  63. Serial.print(F("\nPICC type: "));
  64. MFRC522::PICC_Type piccType = rfid.PICC_GetType(rfid.uid.sak);
  65. Serial.println(rfid.PICC_GetTypeName(piccType));
  66.  
  67. // Check is the PICC of Classic MIFARE type
  68. if (piccType != MFRC522::PICC_TYPE_MIFARE_MINI &&
  69. piccType != MFRC522::PICC_TYPE_MIFARE_1K &&
  70. piccType != MFRC522::PICC_TYPE_MIFARE_4K) {
  71. Serial.println(F("Your tag is not of type MIFARE Classic."));
  72. return;
  73. }
  74.  
  75. Serial.println("Scanned PICC's UID:");
  76. printDec(rfid.uid.uidByte, rfid.uid.size);
  77.  
  78. uidString = String(rfid.uid.uidByte[0])+" "+String(rfid.uid.uidByte[1])+" "+String(rfid.uid.uidByte[2])+ " "+String(rfid.uid.uidByte[3]);
  79.  
  80. int i = 0;
  81.  
  82. boolean match = true;
  83. while(i<2)
  84. {
  85. int j = 0;
  86. boolean check = true;
  87. while(j<rfid.uid.size)
  88. {
  89. if(!(rfid.uid.uidByte[j] == code[i][j]))
  90. {
  91. check = false;
  92. break;
  93. }
  94. j++;
  95. }
  96. if(check)
  97. {
  98. break;
  99. }
  100. i++;
  101. }
  102.  
  103. if(match)
  104. {
  105. Serial.println("\nI know this card!");
  106. digitalWrite(ledPin, HIGH);
  107. openServo();
  108. //delay(ledOnTime);
  109. digitalWrite(ledPin, LOW);
  110.  
  111. }else
  112. {
  113. Serial.println("\nUnknown Card");
  114. }
  115.  
  116.  
  117. // Halt PICC
  118. rfid.PICC_HaltA();
  119.  
  120. // Stop encryption on PCD
  121. rfid.PCD_StopCrypto1();
  122. }
  123.  
  124. void printDec(byte *buffer, byte bufferSize) {
  125. for (byte i = 0; i < bufferSize; i++) {
  126. Serial.print(buffer[i], DEC);
  127. Serial.print(" ");
  128. //Serial.print(buffer[i] < 0x10 ? " 0" : " ");
  129. //Serial.print(buffer[i], DEC);
  130. }
  131. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement