Components and supplies
Arduino UNO
5V One Channel Relay Module
I2C LCD 1602 Module
Speaker
RFID Reader and tag kit
Apps and platforms
Arduino IDE
Project description
Code
Door Lock Code
arduino
1#include <LiquidCrystal_I2C.h> 2#include <SPI.h> 3#include <MFRC522.h> 4#include <Wire.h> 5LiquidCrystal_I2C lcd(0x27, 16, 2); 6 7unsigned long startMillis; //set up millis for reset 8unsigned long currentMillis; //pull up millis for reset 9const unsigned long period = 604800000; //the value is a number of milliseconds, ie 7 days 10 11#define SS_PIN 10 12#define RST_PIN 9 13#define RELAY 3 //relay pin 14#define BUZZER 2 //buzzer pin 15MFRC522 mfrc522(SS_PIN, RST_PIN); // Create MFRC522 instance. 16void setup() { 17 Serial.begin(9600); // Initiate a serial communication 18 SPI.begin(); 19 mfrc522.PCD_Init(); 20 pinMode(RELAY, OUTPUT); 21 pinMode(BUZZER, OUTPUT); 22 noTone(BUZZER); 23 lcd.init(); 24 lcd.clear(); 25 lcd.backlight(); 26 tone(BUZZER, 1000); 27 delay(100); 28 noTone(BUZZER); 29 lcd.print(F("ARDUINO SECURITY")); 30 lcd.setCursor(0, 1); 31 lcd.print(F(" DOOR ")); 32 delay(2000); 33 lcd.clear(); 34 lcd.print(F(" ACTIVATING ")); 35 lcd.setCursor(0, 1); 36 lcd.print(F(" SYSTEM ")); 37 delay(2000); 38 lcd.clear(); 39 digitalWrite(RELAY, HIGH); 40 delay(2); 41 digitalWrite(RELAY, LOW); 42 lcd.print(" PLEASE BE "); 43 lcd.setCursor(0, 1); 44 lcd.print(" PATIENT "); 45 delay(2000); 46 digitalWrite(RELAY, LOW); 47 tone(BUZZER, 1000); 48 delay(1000); 49 noTone(BUZZER); 50 lcd.clear(); 51 lcd.print(" SCAN CARD "); 52 lcd.setCursor(0, 1); 53 lcd.print(" TO UNLOCK "); 54} 55 56void(*resetFunc) (void) = 0; 57 58void loop() { 59 currentMillis = millis(); //get the current "time" (actually the number of milliseconds since the program started) 60 if (currentMillis - startMillis >= period) //test whether the period has elapsed 61 { 62 resetFunc(); //call reset 63 } 64 if ( ! mfrc522.PICC_IsNewCardPresent()) return; // Look for new cards 65 if ( ! mfrc522.PICC_ReadCardSerial()) return; // Select one of the cards 66 Serial.print(F("UID tag :")); 67 String content = ""; 68 byte letter; 69 for (byte i = 0; i < mfrc522.uid.size; i++) 70 { 71 Serial.print(mfrc522.uid.uidByte[i] < 0x10 ? " 0" : " "); 72 Serial.print(mfrc522.uid.uidByte[i], HEX); 73 content.concat(String(mfrc522.uid.uidByte[i] < 0x10 ? " 0" : " ")); 74 content.concat(String(mfrc522.uid.uidByte[i], HEX)); 75 } 76 Serial.println(); 77 content.toUpperCase(); 78 if ((content.substring(1) == "93 6D BE 0D") 79 || (content.substring(1) == "51 67 DC B0") 80 || (content.substring(1) == "A3 23 74 11") //change here the UID of the card/cards that you want to give access to 81 || (content.substring(1) == "55 42 2B 0D")) 82 { 83 lcd.clear(); 84 lcd.backlight(); 85 lcd.print(" ACCESS "); 86 lcd.setCursor(0, 1); 87 lcd.print(" GRANTED! "); 88 digitalWrite(RELAY, HIGH); 89 tone(BUZZER, 1000); 90 delay(400); 91 noTone(BUZZER); 92 delay(6600); 93 digitalWrite(RELAY, LOW); 94 lcd.clear(); 95 lcd.print(" SCAN CARD "); 96 lcd.setCursor(0, 1); 97 lcd.print(" TO UNLOCK "); 98 } 99 100 else { 101 lcd.clear(); 102 lcd.backlight(); 103 lcd.print(" ACCESS "); 104 lcd.setCursor(0, 1); 105 lcd.print(" DENIED "); 106 tone(BUZZER, 1000); 107 delay(150); 108 noTone(BUZZER); 109 delay(25); 110 tone(BUZZER, 1000); 111 delay(150); 112 noTone(BUZZER); 113 delay(25); 114 tone(BUZZER, 1000); 115 delay(150); 116 noTone(BUZZER); 117 delay(25); 118 tone(BUZZER, 1000); 119 delay(150); 120 noTone(BUZZER); 121 delay(25); 122 tone(BUZZER, 1000); 123 delay(150); 124 noTone(BUZZER); 125 delay(1000); 126 lcd.clear(); 127 lcd.print(" SCAN CARD "); 128 lcd.setCursor(0, 1); 129 lcd.print(" TO UNLOCK "); 130 } 131}
Downloadable files
Schematic
Schematic
Schematic
Schematic
Comments
Only logged in users can leave comments
cowboydaniel
0 Followers
•0 Projects
Table of contents
Intro
1
0