Components and supplies
Servos (Tower Pro MG996R)
LED (generic)
Buzzer
Arduino Mega 2560
Standard LCD - 16x2 White on Blue
Jumper wires (generic)
Project description
Code
DOOR LOCK SECURITY SYSTEM WITH ARDUINO
c_cpp
1#include<Keypad.h> // KEYPAD LIBRARY FOR KEYPAD INTERFACING 2#include<LiquidCrystal.h> 3 // LIBRARY FOR LCD INTERFACING 4#include<Servo.h>// LIBRARY FOR SERVO MOTOR 5//#include<String.h> 6#define 7 buzzer 20 // DEFINING PIN FOR BUZZER. 8 9LiquidCrystal lcd(14,15,16,17,18,19); 10 // PINS FOR LCD 11 12char keys[4][4]={ // LAYOUT OF KEYPAD 13 {'1','2','3','A'}, 14 15 {'4','5','6', 'B'}, 16 {'7','8','9', 'C'}, 17 {'*','0','#', 'D'}}; 18 19byte 20 rowPin[4]={4,5,6,7}; // ROW PINS OF KEYPAD 21byte colPin[4]={8,9,10,11}; // COLUMN 22 PINS OF KEYPAD 23 24Servo servo_Motor; 25String password = "159"; // SETTING 26 DEFAULT PASSWORD. 27int position = 0; // VARIABLE FOR DETERMINING THE POSITION. 28 29int 30 wrong = 0; // VARIABLE FOR CALCULATING THE WRONG INPUT. 31 32int redPin = 9; // 33 DEFINING PIN FOR RED LED 34int greenPin = 8; // DEFINING PIN FOR GREEN LED 35 36 37Keypad keypad=Keypad(makeKeymap(keys),rowPin,colPin,4,4); 38// MAPPING THE 39 KEYPAD. 40 41 42int total = 0; // VARIABLE TO DETERMINE THE NUMBER OF WRONG ATTEMPTS. 43 44void 45 setup() 46{ 47 pinMode(redPin,OUTPUT); 48 pinMode(greenPin,OUTPUT); 49 50lcd.begin(16,2); 51lcd.print("DOOR 52 LOCK SYSTEM"); 53lcd.setCursor(0,2); 54lcd.print(" BY:"); 55delay(2000); 56lcd.clear(); 57lcd.print("Creative"); 58lcd.setCursor(0,2); 59lcd.print(" 60 Engineer"); 61delay(2000); 62lcd.clear(); 63servo_Motor.attach(3); 64setLocked(true); 65delay(1000); 66 67pinMode(buzzer, 68 OUTPUT); 69} 70 71void loop() 72{ 73 74 lcd.clear(); 75 lcd.print("Enter 76 Password:"); 77 delay(100); 78 79 char pressed=keypad.getKey();// TAKING 80 THE INPUT FROM KEYPAD 81 String key[3]; 82 83 if(pressed) // IF THE KEY IS 84 PRESSED 85 { 86 lcd.clear(); 87 lcd.print("Enter Password:"); 88 lcd.setCursor(position,2); 89 90 lcd.print(pressed); 91 delay(500); 92 if(pressed == '*' || pressed == '#') 93 94 { 95 position = 0; 96 setLocked(true); 97 lcd.clear(); 98 99 } 100 101 else if(pressed == password[position]) 102 { 103 key[position]=pressed; 104 105 position++; 106 } 107 108 else if (pressed != password[position] 109 ) 110 {// IN CASE OF WRONG INPUT INCREMENT BOTH WRONG AND POSITION. 111 wrong++; 112 113 position ++; 114 } 115 116 if(position == 3) 117 {// WHEN 118 POSITION == 3 THEN CHECK THE FOLLOWING 119 if( wrong >0) // IF ANY WRONG 120 INPUT IF GIVEN THEN INCREMENT TOTAL AND 121 // SET WRONG AND POSITION TO 122 ZERO. 123 { 124 total++; 125 wrong = 0; 126 127 position = 0; 128 lcd.clear(); 129 lcd.print("WRONG"); 130 131 lcd.setCursor(5,2); 132 lcd.print("PASSWORD"); 133 134 delay(1000); 135 setLocked(true); 136 } 137 138 139 else if(position == 3 && wrong == 0) 140 {// IF NO WRONG VALUE 141 IS GIVEN THEN DISPLAY THE ACCEPTED PASSWORD AND 142 // MOVE THE SERVO 143 MOTOR. 144 position = 0; 145 wrong = 0; 146 lcd.clear(); 147 148 lcd.print("PASSWORD"); 149 lcd.setCursor(6,2); 150 151 lcd.print("ACCEPTED"); 152 delay(2000); 153 lcd.clear(); 154 155 lcd.print("Door Open"); 156 delay(2000); 157 setLocked(false); 158 159 } 160 161 if(total ==3)// IF TOTAL OF 3 ATTEMPTS ARE DONE BY 162 ENTERING WRONG PASS 163 //WORD THEN SOUND A BUZZER AND SET TOTAL TO 0. 164 165 { 166 total=0; 167 buzzer_beep(); 168 169 delay(500); 170 } 171 172 } 173 174 } 175 176 177 178} 179 180void setLocked(int locked)// FUNCTION TO CHANGE STATUS OF SERVO 181 MOTOR. 182 { 183 if (locked) 184 { 185 digitalWrite(redPin, HIGH); 186 187 digitalWrite(greenPin, LOW); 188 delay(1000); 189 servo_Motor.attach(3); 190 191 servo_Motor.write(10); 192 delay(1000); 193 servo_Motor.detach(); 194 195 } 196 else 197 { 198 digitalWrite(redPin, LOW); 199 digitalWrite(greenPin, 200 HIGH); 201 delay(1000); 202 servo_Motor.attach(3); 203 servo_Motor.write(90); 204 205 delay(1000); 206 servo_Motor.detach(); 207 } 208 } 209void 210 buzzer_beep()// FUNCTION TO BEEP THE BUZZER. 211{ 212 digitalWrite(buzzer,HIGH); 213 214 delay(1000); 215 digitalWrite(buzzer,LOW); 216 delay(1000); 217 lcd.clear(); 218 219 lcd.setCursor(16,0); 220 lcd.print("Subscribe Channel"); 221 lcd.setCursor(16,1); 222 223 lcd.print("For More Videos"); 224 delay(2000); 225 while(1) 226 { 227 228 lcd.scrollDisplayLeft(); 229 delay(200); 230 } 231} 232 233//IF VIDEO WAS 234 HELPFUL THE DO LIKE COMMENT AND SUBSCRIBE THE CHANNEL. ALSO SHARE THE 235//VIDEO 236 SO THAT OTHERS CAN ALSO LEARN NEW THINGS. 237
DOOR LOCK SECURITY SYSTEM WITH ARDUINO
c_cpp
1#include<Keypad.h> // KEYPAD LIBRARY FOR KEYPAD INTERFACING 2#include<LiquidCrystal.h> // LIBRARY FOR LCD INTERFACING 3#include<Servo.h>// LIBRARY FOR SERVO MOTOR 4//#include<String.h> 5#define buzzer 20 // DEFINING PIN FOR BUZZER. 6 7LiquidCrystal lcd(14,15,16,17,18,19); // PINS FOR LCD 8 9char keys[4][4]={ // LAYOUT OF KEYPAD 10 {'1','2','3','A'}, 11 {'4','5','6', 'B'}, 12 {'7','8','9', 'C'}, 13 {'*','0','#', 'D'}}; 14 15byte rowPin[4]={4,5,6,7}; // ROW PINS OF KEYPAD 16byte colPin[4]={8,9,10,11}; // COLUMN PINS OF KEYPAD 17 18Servo servo_Motor; 19String password = "159"; // SETTING DEFAULT PASSWORD. 20int position = 0; // VARIABLE FOR DETERMINING THE POSITION. 21 22int wrong = 0; // VARIABLE FOR CALCULATING THE WRONG INPUT. 23 24int redPin = 9; // DEFINING PIN FOR RED LED 25int greenPin = 8; // DEFINING PIN FOR GREEN LED 26 27Keypad keypad=Keypad(makeKeymap(keys),rowPin,colPin,4,4); 28// MAPPING THE KEYPAD. 29 30 31int total = 0; // VARIABLE TO DETERMINE THE NUMBER OF WRONG ATTEMPTS. 32 33void setup() 34{ 35 pinMode(redPin,OUTPUT); 36 pinMode(greenPin,OUTPUT); 37 38lcd.begin(16,2); 39lcd.print("DOOR LOCK SYSTEM"); 40lcd.setCursor(0,2); 41lcd.print(" BY:"); 42delay(2000); 43lcd.clear(); 44lcd.print("Creative"); 45lcd.setCursor(0,2); 46lcd.print(" Engineer"); 47delay(2000); 48lcd.clear(); 49servo_Motor.attach(3); 50setLocked(true); 51delay(1000); 52 53pinMode(buzzer, OUTPUT); 54} 55 56void loop() 57{ 58 59 lcd.clear(); 60 lcd.print("Enter Password:"); 61 delay(100); 62 63 char pressed=keypad.getKey();// TAKING THE INPUT FROM KEYPAD 64 String key[3]; 65 66 if(pressed) // IF THE KEY IS PRESSED 67 { 68 lcd.clear(); 69 lcd.print("Enter Password:"); 70 lcd.setCursor(position,2); 71 lcd.print(pressed); 72 delay(500); 73 if(pressed == '*' || pressed == '#') 74 { 75 position = 0; 76 setLocked(true); 77 lcd.clear(); 78 } 79 80 else if(pressed == password[position]) 81 { 82 key[position]=pressed; 83 position++; 84 } 85 86 else if (pressed != password[position] ) 87 {// IN CASE OF WRONG INPUT INCREMENT BOTH WRONG AND POSITION. 88 wrong++; 89 position ++; 90 } 91 92 if(position == 3) 93 {// WHEN POSITION == 3 THEN CHECK THE FOLLOWING 94 if( wrong >0) // IF ANY WRONG INPUT IF GIVEN THEN INCREMENT TOTAL AND 95 // SET WRONG AND POSITION TO ZERO. 96 { 97 total++; 98 wrong = 0; 99 position = 0; 100 lcd.clear(); 101 lcd.print("WRONG"); 102 lcd.setCursor(5,2); 103 lcd.print("PASSWORD"); 104 delay(1000); 105 setLocked(true); 106 } 107 108 else if(position == 3 && wrong == 0) 109 {// IF NO WRONG VALUE IS GIVEN THEN DISPLAY THE ACCEPTED PASSWORD AND 110 // MOVE THE SERVO MOTOR. 111 position = 0; 112 wrong = 0; 113 lcd.clear(); 114 lcd.print("PASSWORD"); 115 lcd.setCursor(6,2); 116 lcd.print("ACCEPTED"); 117 delay(2000); 118 lcd.clear(); 119 lcd.print("Door Open"); 120 delay(2000); 121 setLocked(false); 122 } 123 124 if(total ==3)// IF TOTAL OF 3 ATTEMPTS ARE DONE BY ENTERING WRONG PASS 125 //WORD THEN SOUND A BUZZER AND SET TOTAL TO 0. 126 { 127 total=0; 128 buzzer_beep(); 129 delay(500); 130 } 131 132 } 133 134 } 135 136 137} 138 139void setLocked(int locked)// FUNCTION TO CHANGE STATUS OF SERVO MOTOR. 140 { 141 if (locked) 142 { 143 digitalWrite(redPin, HIGH); 144 digitalWrite(greenPin, LOW); 145 delay(1000); 146 servo_Motor.attach(3); 147 servo_Motor.write(10); 148 delay(1000); 149 servo_Motor.detach(); 150 } 151 else 152 { 153 digitalWrite(redPin, LOW); 154 digitalWrite(greenPin, HIGH); 155 delay(1000); 156 servo_Motor.attach(3); 157 servo_Motor.write(90); 158 delay(1000); 159 servo_Motor.detach(); 160 } 161 } 162void buzzer_beep()// FUNCTION TO BEEP THE BUZZER. 163{ 164 digitalWrite(buzzer,HIGH); 165 delay(1000); 166 digitalWrite(buzzer,LOW); 167 delay(1000); 168 lcd.clear(); 169 lcd.setCursor(16,0); 170 lcd.print("Subscribe Channel"); 171 lcd.setCursor(16,1); 172 lcd.print("For More Videos"); 173 delay(2000); 174 while(1) 175 { 176 lcd.scrollDisplayLeft(); 177 delay(200); 178 } 179} 180 181//IF VIDEO WAS HELPFUL THE DO LIKE COMMENT AND SUBSCRIBE THE CHANNEL. ALSO SHARE THE 182//VIDEO SO THAT OTHERS CAN ALSO LEARN NEW THINGS. 183
Downloadable files
lcd_with_arduino_ZHuuxD17fT.JPG
lcd_with_arduino_ZHuuxD17fT.JPG
CIRCUIT DIAGRAMS
CIRCUIT DIAGRAMS
interfacing_keypad_with_arduino_8xDFWS5uS3.JPG
interfacing_keypad_with_arduino_8xDFWS5uS3.JPG
lcd_with_arduino_ZHuuxD17fT.JPG
lcd_with_arduino_ZHuuxD17fT.JPG
CIRCUIT DIAGRAMS
CIRCUIT DIAGRAMS
Comments
Only logged in users can leave comments