Manaois - Bsee3d - Doorlocking System
Manaois - Bsee3d - Doorlocking System
Manaois - Bsee3d - Doorlocking System
Introduction:
The keypad serves as the primary user interface for the door locking system,
allowing authorized
users to input their password securely. Keypad-based authentication is widely
adopted in access control systems due to its simplicity and effectiveness in
preventing unauthorized access.
The servo motor is employed to actuate the door lock mechanism based on
the input received from the keypad. Servo motors offer precise control over
angular displacement, making them ideal for applications requiring rotational
motion, such as door locks.
The LCD display enhances user interaction by providing feedback on the
system's status, including password entry prompts, error messages, and
confirmation messages upon successful authentication. Visual feedback is
essential for ensuring a smooth user experience and troubleshooting potential
issues.
Objectives:
Equipment Required:
Keypad
Servo Motor
Power supply
Procedures:
2. Drag and drop the required components onto the workspace, including
Arduino Uno, keypad, servo motor, and LCD display.
3. Connect the components according to the schematic diagram
provided in the project specifications, ensuring proper wiring
and connections.
4. Write the Arduino code to implement the functionality of the door
locking system, including keypad input, servo motor control, LCD display
interaction, password verification, and error handling.
5. Configure theArduino IDE settings to compile the code for the
Arduino Uno board.
6. Compile the Arduino code to check for any syntax errors or
compilation issues.
7. Generate the HEX file from the compiled code by selecting the
appropriate option in the Arduino IDE.
8. Upload the generated HEX file to the Arduino Uno board using the Proteus
software, ensuring proper configuration of the upload settings.
9. Set the simulation parameters in Proteus, such as simulation duration and
sampling rate, to match the desired testing conditions.
10. Run the simulation to verify the functionality of the door locking system,
observing the behavior of the keypad, servo motor, and LCD display.
11. Test various scenarios, including successful password entry, incorrect
password attempts, and error handling, to evaluate the system's
performance and reliability.
12. Analyze the simulation results and make any necessary adjustments to
the circuit design or Arduino code to optimize system functionality.
13. Document the simulation setup, including circuit diagram, Arduino code,
simulation parameters, and observations, in a comprehensive report for
future reference.
Example Source Codes:
#include <LiquidCrystal.h>
#include <Servo.h>
#include <Keypad.h>
Servo myservo;
int pos = 0; // position of servo motor
LiquidCrystal lcd(A4, A5, A3, A2, A1, A0);
const byte rows = 4;
const byte cols = 3;
char key[rows][cols] = {
{ '1', '2', '3' },
{ '4', '5', '6' },
{ '7', '8', '9' },
{ '*', '0', '#' }
};
byte rowPins[rows] = { 0, 1, 2, 3 };
byte colPins[cols] = { 4, 5, 6 };
Keypad keypad = Keypad(makeKeymap(key), rowPins, colPins, rows, cols);
char* password = "0123";
int currentposition = 0;
void setup() {
displayscreen();
//Serial.begin(9600);
myservo.attach(9); //Servo motor connection
lcd.begin(16, 2);
}
void loop() {
if (currentposition == 0) {
displayscreen();
}
int l;
char code = keypad.getKey();
if (code != NO_KEY) {
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("PASSWORD:");
lcd.setCursor(7, 1);
lcd.print(" ");
lcd.setCursor(7, 1);
for (l = 0; l <= currentposition; ++l) {
lcd.print("*");
//keypress();
}
if (code == password[currentposition]) {
++currentposition;
if (currentposition == 4) {
unlockdoor();
currentposition = 0;
}
else {
incorrect();
currentposition = 0;
}
}
}
void unlockdoor() {
delay(900);
lcd.setCursor(0, 0);
lcd.println(" ");
lcd.setCursor(1, 0);
lcd.print("Access Granted");
lcd.setCursor(4, 1);
lcd.println("WELCOME!!");
lcd.setCursor(15, 1);
lcd.println(" ");
lcd.setCursor(16, 1);
lcd.println(" ");
lcd.setCursor(14, 1);
lcd.println(" ");
lcd.setCursor(13, 1);
lcd.println(" ");
delay(1000);
currentposition = 0;
lcd.clear();
displayscreen();
}
}
void incorrect() {
delay(500);
lcd.clear();
lcd.setCursor(1, 0);
lcd.print("CODE");
lcd.setCursor(6, 0);
lcd.print("INCORRECT");
lcd.setCursor(15, 1);
lcd.println(" ");
lcd.setCursor(4, 1);
lcd.println("GET AWAY!!!");
lcd.setCursor(13, 1);
lcd.println(" ");
Serial.println("CODE INCORRECT YOU ARE UNAUTHORIZED");
delay(3000);
lcd.clear();
displayscreen();
}
//-------Function 3 - CLEAR THE SCREEN--------------------/
void clearscreen() {
lcd.setCursor(0, 0);
lcd.println(" ");
lcd.setCursor(0, 1);
lcd.println(" ");
lcd.setCursor(0, 2);
lcd.println(" ");
lcd.setCursor(0, 3);
lcd.println(" ");
}
lcd.clear();
lcd.setCursor(2, 15);
lcd.println(" ");
lcd.setCursor(2, 14);
lcd.println(" ");
lcd.setCursor(2, 0);
delay(200);
lcd.println("GET IN WITHIN:::");
lcd.setCursor(4, 1);
lcd.print("5");
delay(200);
lcd.clear();
lcd.setCursor(2, 0);
lcd.println("GET IN WITHIN:");
delay(1000);
lcd.setCursor(2, 0);
lcd.println("GET IN WITHIN:");
lcd.setCursor(4, 1); //2
lcd.print("4");
delay(100);
lcd.clear();
lcd.setCursor(2, 0);
lcd.println("GET IN WITHIN:");
delay(1000);
lcd.setCursor(2, 0);
lcd.println("GET IN WITHIN:");
lcd.setCursor(4, 1);
lcd.print("3");
delay(100);
lcd.clear();
lcd.setCursor(2, 0);
lcd.println("GET IN WITHIN:");
delay(1000);
lcd.setCursor(2, 0);
lcd.println("GET IN WITHIN:");
lcd.setCursor(4, 1);
lcd.print("2");
delay(100);
lcd.clear();
lcd.setCursor(2, 0);
lcd.println("GET IN WITHIN:");
delay(1000);
lcd.setCursor(4, 1);
lcd.print("1");
delay(100);
lcd.clear();
lcd.setCursor(2, 0);
lcd.println("GET IN WITHIN::");
delay(1000);
delay(40);
lcd.clear();
lcd.setCursor(2, 0);
lcd.print("RE-LOCKING");
delay(500);
lcd.setCursor(12, 0);
lcd.print(".");
delay(500);
lcd.setCursor(13, 0);
lcd.print(".");
delay(500);
lcd.setCursor(14, 0);
lcd.print(".");
delay(400);
lcd.clear();
lcd.setCursor(4, 0);
lcd.print("LOCKED!");
delay(440);
}
Simulation Environment:
OFF STATE
ON STATE
LOCKED STATE
UNLOCKED STATE
Conclusion:
1. Describe the role of the keypad in the door locking system. How does it
facilitate user interaction and enable authentication?
THE KEYPAD ON THE DOOR LOCKING SYSTEM SERVES AS THE PRIMARY INTERFACE
FOR USER INTERACTION AND AUTHENTICATION. USERS ENTER THEIR ACCESS CODES
USING THE KEYPAD'S NUMERIC KEYS. THE SYSTEM CHECKS THIS CODE TO
PREVIOUSLY STORED PERMITTED CODES TO GIVE OR DENY ACCESS. IN ADDITION,
THE KEYPAD GIVES USERS WITH FEEDBACK, USUALLY IN THE FORM OF VISUAL
INDICATIONS, TO GUIDE THEM THROUGH THE AUTHENTICATION PROCESS. OVERALL,
THE KEYPAD IS CRITICAL TO PROVIDING SAFE ACCESS CONTROL AND ALLOWING USER
ENGAGEMENT IN THE SYSTEM.
References:
Virtual Engineer. (2020, Oct. 8). Password Based Door Locking System Using
Arduino // Proteus Simulation
https://www.youtube.com/watch?v=HpBvUFPhB-I&list=LL&index=1&t=554s