Blueprint: Door Lock
Blueprint for a door lock
A Door Lock is a headless device powered by an MCU that operates a mechanical lock and allows doors to be open remotely or on a schedule.
A Door Lock runs a micro RTOS and is programmed via companion device, such as a smartphone or a gateway.
The user programs / controls the door lock via close range connectivity i.e. bluetooth or via a web / cloud interface. In such case, a Door Lock bridge or smart gateway is in the middle between the Door Lock to which it connects via close range connectivity and the network to which the gateway connects via ethernet or wifi or cellular.
A Door Lock can also be controlled via NFC / Fingerprints.
A Door Lock is updated passively meaning via a 3rd device such as a smart phone or a gateway. The update is downloaded first onto the companion device and then uploaded onto the Door Lock.
For version 1
The user wants to unlock/lock the door. He controls the lock with an NFC or BLE device nearby, like a traditional key, but easier to use (no need to find the lock in the dark etc).
Getting in with a password/PIN
The user left his home without his keys (including the NFC/BLE controller). He can still get into the house by entering a password/PIN on a keypad.
Stretch goals/for version 2
Letting guests in remotely
The user is expecting guests, but is stuck in a traffic jam. He unlocks the door for his guests by remote controlling the lock with his phone when they arrive.
Multiple users with multiple tokens
The door lock is built into a family's house. Every inhabitant has a unique "key" (different NFC/BLE controllers/phone/PINs) giving them different permissions: The owner can get in and out at any time, but his teenage kid can't sneak out between 00:00 and 06:00.
On a traditional keypad, someone hiding nearby and paying attention to the owner's hand movement can figure out the correct PIN. On a security by obscurity keypad, the keypad is a touchscreen on which the numbers/letters are randomized for every prompt.
Update the software of the blueprint, reboot and make sure it is running a new version.
Additional stretch goals/for version 3
Renting a home
The owner rents his home to tourists on a portal like AirBnB, and doesn't live nearby, so getting a "real" key into the hands of the tourists becomes a problem. In place of a key, the tourists get a password/PIN they can use to get into the place. To make sure visitors can't overstay or come back in later, their password/PIN expires automatically the day they have to leave.
Someone tries to break the lock by trying out possible PINs. After the 3rd false PIN, the owner is alerted and the door is automatically locked for a few minutes to make brute force attacks harder. The owner is also notified if there is a detectable hardware modification that might be an indication of a breakin attempt (such as a cut wire).
Opening by fingerprint
The door lock is equipped with a fingerprint scanner. The fingerprint can be used to authenticate in place of the token/PIN. For situations like the "Renting a home" use case described above, there is an enrollment mode: A tourist arriving notifies the owner saying they're at the door, the owner puts the lock into enrollment mode, and the door lock will open for and memorize the next fingerprint used. This fingerprint (along with those of other family members registered) can then be used to unlock the door until the rental expires.
Opening by face recognition
The door lock is equipped with a camera and face recognition software. The face can be used to authenticate in place of the token/PIN. For situations like the "Renting a home" use case described above, there is an enrollment mode: A tourist arriving notifies the owner saying they're at the door, the owner puts the lock into enrollment mode, and the door lock will open for and memorize the next face it sees. This face (along with those of other family members registered) can then be used to unlock the door until the rental expires.
Connection to doorbell system
If an unknown user activates the lock, it triggers a doorbell sound instead and optionally interfaces with a voice or video communication system.
Getting in with a password/PIN: A user enters a pin on a keyboard. if it's
1234, the 'Rotating door lock motor' rotates fully right and then left
Letting guests in remotely: a tact switch opens '12VDC lock-style solenoid'
To show the status of the lock on remote BLE client (e.g. command line)
to provide UI (on mobile or touch panel) that can control remotely the lock using RF network stack
Dynamic keypad: not feasible with current setup
An NFC pill can open the door lock
Multiple users with multiple tokens: different BLE controllers cause different open the door lock schema
Software update: new s/w version appears on the device
Opening by fingerprint: previously scanned fingerprint (and only that one) can be used for opening '12VDC lock-style solenoid'
- Application development for door lock
- Integration of all components needed for the blueprint into the Yocto layers
- Documentation and demo of the Blueprint