Facial Recognition Door Lock
& Fire Safety
Overview
For our project, we propose making a door lock security and fire safety system that utilizes facial recognition for keyless unlocking using the STM32L476 processor and Arduino UNO R3 board. The door will unlock when a face is detected with the camera, and the door will also automatically unlock if the temperature in the room is too high (indicating that a fire has started).
Demo Video
Software Design
The system will consist of two components: a desktop application, and the hardware component built with the STM32L476 processor. The system will work as follows. First, the user will push a button, prompting the camera to begin sending video feed via bluetooth to the desktop application. The application will then run facial recognition software on the video feed against a list of approved individuals that are set in the desktop application. If an authorized person is detected, a green LED will light up and the door will unlock for 10 seconds, after which, the LED will shut off, the door will lock again, and the camera will stop collecting video. If an authorized person is not detected, the green LED will quickly flash thrice, the door will remain locked, and the camera will stop collecting video. Pressing the button again will restart this process.
Peripherals & Protocols
Servo Motor (to function as locking mechanism)
TC74 Temperature Sensor
I2C
ArduCam 2MP Camera (to collect and send video feed to desktop application)
SPI and I2C
HC-15 Bluetooth Module (to communicate with desktop application)
UART
Green LED (built in) (to indicate status of authentication)
Goals
Camera will send 2 seconds of video to desktop application via bluetooth
Desktop application will transmit facial recognition results to STM32L476 via bluetooth
LED will flash one long flash or three quick flashes according to result
Servo motor will lock or unlock depending on result
Group Responsibilities
Neil is responsible for programming the desktop application, setting up the ArduCam, and helping to program bluetooth communication with the STM32L476 processor. Kevin is responsible for programming the behavior of the servo motor and LED lights, and helping to program bluetooth communication with the STM32L476 processor.