Inspiration
Bike locks, door locks, and other commonplace security devices are insecure, inefficient, and difficult to use. That's why we decided to create a smart lock that uses RFID with an additional layer of facial recognition to redundantly verify the users identity.
What it does
It locks or unlocks based off of verification from a webserver, that takes a photo of the user and matches that photo against their previously created user account, which consists of a first and last name, a user ID obtained from their Andrew ID keycard, and a photo of themselves.
How we built it
We used arduino to electronically control a small 12V solenoid, the driving mechanism behind the lock, as well as read the RFID chip in a CMU student's ID. From there, we use a python script that interprets RFID data from the arduino and checks it against a mongo database storing user information (Name, ID number, and a photo for verification). The user interacts with this database through a small website that allows them to register an account, and unlock and lock the lock. When the user asks for access to the lock, they are asked to scan their ID and take a photo of their face for an additional layer of security. If the site determines they are an authentic user, it sends a command to a python script which communicates with the arduino, turning the solenoid in our lock on or off.
Challenges we ran into
Implementing communication protocols between python and Arduino, and between python and our webserver Designing and fabricating a simple, secure, electromechanical lock.
Accomplishments that we're proud of
Controlling an arduino from a web server, implementing facial recognition in Kairos, and designing and 3D printing an electromechanical lock.
What we learned
We learned a lot about arduino, python, web development, and Kairos, the facial recognition web API we used.
What's next for Smart Lock
If we were to take this a step further beyond conceptual models of the lock, we would fabricate a larger, more robust physical mechanism out of machined and turned parts, opposed to 3D printing. The lock shaft in particular we would make out of hardened steel. On the software side, we would want to improve the user interface and expand upon the website we created
Built With
- arduino
- css
- html5
- javascript
- kairos
- pyserial
- python
Log in or sign up for Devpost to join the conversation.