Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*Door lock system code
- https://srituhobby.com
- */
- #include <Servo.h>
- #include <LiquidCrystal_I2C.h>
- #include <SPI.h>
- #include <MFRC522.h>
- #define SS_PIN 10
- #define RST_PIN 9
- String UID = "C6 96 8C 2B";
- byte lock = 0;
- /*
- String Card_ID = "C6 96 8C 2B";
- String Tag_ID = "29 0D 20 B9";
- */
- Servo servo;
- LiquidCrystal_I2C lcd(0x27, 16, 2);
- MFRC522 rfid(SS_PIN, RST_PIN);
- void setup() {
- Serial.begin(9600);
- servo.write(70);
- lcd.init();
- lcd.init();
- lcd.backlight();
- servo.attach(8);
- SPI.begin();
- rfid.PCD_Init();
- }
- void loop() {
- lcd.setCursor(4, 0);
- lcd.print("Welcome!");
- lcd.setCursor(1, 1);
- lcd.print("Put your card");
- if ( ! rfid.PICC_IsNewCardPresent())
- return;
- if ( ! rfid.PICC_ReadCardSerial())
- return;
- lcd.clear();
- lcd.setCursor(0, 0);
- lcd.print("Scanning");
- Serial.print("NUID tag is :");
- String ID = "";
- for (byte i = 0; i < rfid.uid.size; i++) {
- lcd.print(".");
- ID.concat(String(rfid.uid.uidByte[i] < 0x10 ? " 0" : " "));
- ID.concat(String(rfid.uid.uidByte[i], HEX));
- delay(300);
- }
- ID.toUpperCase();
- if (ID.substring(1) == UID && lock == 0 ) {
- servo.write(70);
- lcd.clear();
- lcd.setCursor(0, 0);
- lcd.print("Door is locked");
- delay(1500);
- lcd.clear();
- lock = 1;
- } else if (ID.substring(1) == UID && lock == 1 ) {
- servo.write(160);
- lcd.clear();
- lcd.setCursor(0, 0);
- lcd.print("Door is open");
- delay(1500);
- lcd.clear();
- lock = 0;
- } else {
- lcd.clear();
- lcd.setCursor(0, 0);
- lcd.print("Wrong card!");
- delay(1500);
- lcd.clear();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment