Door Lock System with Graphical Password

Yuhao Feng, Ruixiao Bai

ECE M202A UCLA

Introduction


This project of an embedded door lock system is described with a digital lock interfaced with a microcontroller. The principle aim of this door lock system is to enable a door with a graphical password or a fingerprint. The user will be able to enter a graphical password on touchscreen, or use finger on a fingerprint sensor, to unlock the door. The user will also be able to add or delete a stored password/fingerprint entry with the help of touch screen UI. For security purpose, the system will display information of the key used for last unlock action. The user will know if someone else has entered the room when the user was absent.

Technical Approach


system diagram

The system diagram is shown above. The central finite state machine is responsible for state transitions and touchscreen display update. Graphical passwords are saved in EEPROM of Arduino module. The ROM is used to store passwords for user identity verification. The state machine also communicates with other devices for inputs and outputs. The touchscreen is the interface for the user to interact with the system. Fingerprints are saved in the built-in flash memory component of the fingerprint sensor module. The system uses a servo motor to simulate lock and unlock action on a door.

Implementation and Evaluation


Hardware list:

Wiring schematic:

wiring overview wiring table

Libraries:

Central FSM States:

Prior Work Examples


Touchscreen project:Adafruit 2.8" TFT Touchscreen

Fingerprint sensor project:Arduino Fingerprint Sensor

Servo motor project:Arduino Fingerprint Sensor

Insights and Future Work


Future improvements:

Contributions


Yuhao Feng:

Ruixiao Bai:

Links


References


EEPROM.h: https://www.arduino.cc/en/Reference/EEPROM

Adafruit_TFTLCD.h: https://github.com/adafruit/TFTLCD-Library

Adafruit_TouchScreen.h: https://github.com/adafruit/Adafruit_TouchScreen

Adafruit_Fingerprint.h: https://github.com/adafruit/Adafruit-Fingerprint-Sensor-Library

Servo.h: https://www.arduino.cc/reference/en/libraries/servo/