NFC Lock

From ESE205 Wiki
Jump to navigation Jump to search

Overview

This is a NFC-enabled smart lock that interfaces with existing standard deadbolt assemblies.

The team of two will design and assemble an electronic, Arduino-powered drop-in deadbolt assembly that can be unlocked with registered NFC-enabled devices such as the Apple Watch, newer iPhones, or most Android phones. The lock will be powered by a Particle Photon chip running on an Arduino Uno board; the Photon will be web-enabled and NFC-enabled, allowing it to check NFC credentials and be operated remotely from a web app or mobile app.

A detailed user story indicating the flow of events that allow the lock to function:

  • John Doe downloads the native iOS app for the smart lock
  • John Doe signs in to his Lock account on the native app, linking his phone's credentials to his account
  • John approaches the door with the phone, and the phone recognizes the NFC signal coming from the Photon
  • The phone sends an encrypted HTTPS web request to the Photon's webhook API along with its unique credentials (UID or Serial No.)
  • The Photon accepts the request, checks the data against its list of registered devices, and decides whether or not to open the deadbolt
  • If the credentials are approved, the Photon will apply an electronic signal to the deadbolt servo, opening the door

[to weekly log]

Members

  • Kai Banks
  • Nikki Wines

Goals

  • Use NFC-enabled device to unlock your deadbolt (assuming the device is registered & authorized)
  • Secure, relatively hack-proof system
  • Polished finished product (custom-designed 3d-printed enclosure, etc.)
  • Backup unlock method (PIN, physical key, fingerprint reader, or similar)

Design

The NFC Lock will be compatible with any door with a standard lock hole. The outward-facing side will consist of a standard doorknob and small NFC-enabled area. The inward-facing side will feature a standard doorknob and will house the Arduino and power supply (or will connect to a wall outlet for prototyping purposes, if power turns out to be an issue). The inward-facing side, which will look like a plastic block several inches in height and width, will also house the servo motor that attaches to and manipulates the deadbolt.

Technology-wise: the Arduino will constantly emit a low-power NFC signal from the outside of the door. When a phone comes into proximity with the signal, the native NFC Lock app will be launched automatically (or manually, if this proves difficult) and will submit a webhook request to the Particle API. This encrypted request will contain the phone's unique information. The Photon will interpret the request and check the enclosed credentials against an encrypted list of authorized credentials. If the credentials are not found in the list, the door will not open; if they are, the Arduino board will send power to the servo, opening the deadbolt for ten-ish seconds and allowing the authorized user in.

Challenges

  • First and foremost, security. All web requests MUST be encrypted & sent through HTTPS (as they may contain sensitive information, like phone UIDs and serials)
  • Not biting off more than we can chew (see Goals section)
  • Keeping budget under $150 for a pretty high-tech product
  • Not using an unnecessarily large amount of battery during normal operation (minor)

Materials Needed

  • Particle Photon (Arduino Uno with a Particle shield) - have
  • Deadbolt - have
  • 3D-Printed Enclosure - free
  • Door knobs & deadbolt assembly - $15
  • Servo Motor to control Deadbolt - $15
  • NFC Reader - $40
  • Demo door assembly - $15

TOTAL: $85

Gantt Chart(s)