G2: Guest Residency OTP System - shalan/CSCE4301-WiKi GitHub Wiki
Link to repo: https://github.com/AbdelrahmanSaidd/SmartOTPDoorLock
Authors
Name | ID |
---|---|
Abdelrahman Said | 900192935 |
Ali Khattab | 900191895 |
Mohammed Farag | 900193654 |
Renad ElKady | 900191378 |
Proposal
Our proposed project aims to solve the problem of security and convenience in traditional home lock systems. Traditional systems often require physical keys that can be lost or duplicated. Other systems may have one set passcode, which can be easily forgotten. Our smart lock system with OTP functionality solves this problem by allowing owners to set their own digital passwords and change them whenever they so please. Moreover, they can grant access to guests through a one-time password that works only during a specific time frame, ensuring security and convenience. The system also has the option of generating a random passcode and sending it to the owner every set period of time. Additionally, the system has a feature of taking a picture if someone entered the password more than a set number of times and sending it to the owner. Our proposed solution provides a reliable and user-friendly alternative to traditional lock systems.
Components
System Components |
---|
STM32 Nucleo-32: STM32L432KC |
USB |
Wires |
Keypad |
Buzzer |
LCD |
Servo Motor |
Zener Diode |
System Component-Diagram
Flowchart
Connections
- LCD: Connected to I2C1
- Bluetooth module: Connected to UART2
- Alarm: Connected to PB0 GPIO output pin
- Servo Motor: Connected to TIM1_CH1 PWM signal (PA8)
- Keypad: Uses PA12,PA11,PA0,PA4 as inputs and PA5,PA6,PA7,PA1 as outputs
Demo
We simulated the project's features in the following demo.
The test cases are as follows:
- Enter the master password (#12345)
- Generate a password
- Enter password (unlock)
- Enter password again (buzzer - password expired)
- Generate two passwords
- Enter the first password (unlock)
- Enter the first password again (buzzer - password expired)
- Enter the second password (unlock)
- Enter the second password again (buzzer - password expired)
- Enter incorrect password.
https://github.com/shalan/CSCE4301-WiKi/assets/64090007/8c91b349-8259-4ccd-81e5-50d0ed3ea058
Missing features: Implementing TTL to expire passwords after certain period.