safwan092

Arduino RFID LCD Servo If Scanned Correct Open

Nov 28th, 2024
47
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.64 KB | None | 0 0
  1. /*Door lock system code
  2. https://srituhobby.com
  3. */
  4.  
  5. #include <Servo.h>
  6. #include <LiquidCrystal_I2C.h>
  7. #include <SPI.h>
  8. #include <MFRC522.h>
  9.  
  10. #define SS_PIN 10
  11. #define RST_PIN 9
  12. String UID = "C6 96 8C 2B";
  13. byte lock = 0;
  14.  
  15. /*
  16. String Card_ID = "C6 96 8C 2B";
  17. String Tag_ID = "29 0D 20 B9";
  18. */
  19.  
  20. Servo servo;
  21. LiquidCrystal_I2C lcd(0x27, 16, 2);
  22. MFRC522 rfid(SS_PIN, RST_PIN);
  23.  
  24.  
  25. void setup() {
  26. Serial.begin(9600);
  27. servo.write(70);
  28. lcd.init();
  29. lcd.init();
  30. lcd.backlight();
  31. servo.attach(8);
  32. SPI.begin();
  33. rfid.PCD_Init();
  34. }
  35.  
  36. void loop() {
  37. lcd.setCursor(4, 0);
  38. lcd.print("Welcome!");
  39. lcd.setCursor(1, 1);
  40. lcd.print("Put your card");
  41.  
  42. if ( ! rfid.PICC_IsNewCardPresent())
  43. return;
  44. if ( ! rfid.PICC_ReadCardSerial())
  45. return;
  46.  
  47. lcd.clear();
  48. lcd.setCursor(0, 0);
  49. lcd.print("Scanning");
  50. Serial.print("NUID tag is :");
  51. String ID = "";
  52. for (byte i = 0; i < rfid.uid.size; i++) {
  53. lcd.print(".");
  54. ID.concat(String(rfid.uid.uidByte[i] < 0x10 ? " 0" : " "));
  55. ID.concat(String(rfid.uid.uidByte[i], HEX));
  56. delay(300);
  57. }
  58. ID.toUpperCase();
  59.  
  60. if (ID.substring(1) == UID && lock == 0 ) {
  61. servo.write(70);
  62. lcd.clear();
  63. lcd.setCursor(0, 0);
  64. lcd.print("Door is locked");
  65. delay(1500);
  66. lcd.clear();
  67. lock = 1;
  68. } else if (ID.substring(1) == UID && lock == 1 ) {
  69. servo.write(160);
  70. lcd.clear();
  71. lcd.setCursor(0, 0);
  72. lcd.print("Door is open");
  73. delay(1500);
  74. lcd.clear();
  75. lock = 0;
  76. } else {
  77. lcd.clear();
  78. lcd.setCursor(0, 0);
  79. lcd.print("Wrong card!");
  80. delay(1500);
  81. lcd.clear();
  82. }
  83. }
Advertisement
Add Comment
Please, Sign In to add comment