-
Notifications
You must be signed in to change notification settings - Fork 0
/
entry.page
100 lines (69 loc) · 4.03 KB
/
entry.page
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
---
title: Space Entry Project
categories: projects
...
# Current Implementation
A box (the Automatic Deadbolt Mechanism or "ADM") is attached to the existing deadbolt;
the ADM can lock or unlock the deadbolt.
Pressing a button on the ADM will lock the deadbolt after 5 seconds.
An opto-isolated input to the ADM will unlock the deadbolt. The input is a single bit; drive it high for 1 second to unlock the deadbolt. Driving it high for more than 1 second is not recommended (it will make the ADM unlock the deadbolt again and again).
Another opto-isolated one-bit input will lock the deadbolt immediately; drive it high for 1 second to lock the deadbolt.
The ADM supplies two opto-isolated output bits that report the position of the deadbolt, based on two limit switches ("locked" and "unlocked"). A high signal means the deadbolt is at a physical limit; a low signal means the deadbolt is not at a physical limit. The deadbolt might be between the two limits: both bits will be low. If both bits are high, something is broken, since the deadbolt cannot be at both the locked and unlocked positions at the same time.
A door switch supplies another output bit that tells whether the door is open or closed; a low signal means the door is closed.
There is an Access Control Computer ("ACC" -- a BeagleBone Black) connected to the deadbolt control and status bits and the door switch bit. It is running Arch Linux ARM and communicates with the ADM via the /sys interface to the GPIO. A simple high-level interface is provided via [doord](https://github.com/DavisMakerspace/doord).
## BeagleBone Black Info
Only some of the GPIO on the BBB seem available to the Linux kernel. Through experimentation, the following seem usable:
P8: 7-19,26
P9: 11-16,21-24,26,27,30,41,42
The board documentation describes how the pins correspond to GPIO numbers.
## UPS
A UPS powers the ADM, the ACC, a USB hub attached to the ACC, the DSL modem, and the router. The system can keep running if AC power has failed; it could send a message to notify us of a power failure.
A USB cable connects the UPS to the ACC so that the ACC knows if the power has failed.
## Open Issues
### (none)
# Brainstorming
Feel free to brainstorm ideas here. Unless otherwise specified, lists here are meant to be exhaustive, and not necessarily design goals..!
## Authentication Methods
- RFID
- Good for longer-term authorizations, e.g. members in good standing.
- Unlike QR, no visibility of key required, just proximity.
- [QR Code Entry]()
- Good for temporary authorizations.
- Easy to cancel and regenerate in case of loss.
- Less convenient since requires visibility.
- Cheaper per key vs RFID.
- Could be implemented with a Raspberry PI and a webcam [example project](http://www.raspberrypi.org/archives/2504)
- Facial recognition
- Thumbprint
- Electronic manual override
- Physical manual override
- Login and unlock via local WiFi
- Knock code
- e.g. have to tap a certain rhythm to unlock. Though any means of 'tapping' could be possible, e.g. flashing a light, making sounds, etc.
- probably best for limited time or one-time authentications.
- [USB key entry]()
- could be dual-use with dead-drop port
- Bluetooth pairing
## Authorization Types
- Persistent authorization for e.g. members in good standing
- One-day/one-time authorization for e.g. guests
- Dependent on certain conditions, e.g.
- only in given time frame
- someone already in the space
## Management
- Authorize an authentication via multiple interfaces
- IRC
- Website
- Kiosk in space
## Monitoring
- Announce entry/exit on IRC
- Could run a user created script at door open, like on login
## Possible data to store:
- Code
- Date/Time created, used, expires
- Created by/for
- Status (active, expired, revoked)
## Relevant external projects
- [Lockitron](https://lockitron.com/)
- [Instructables](http://www.instructables.com/id/Arduino-RFID-Door-Lock/) - RFID project
- Eugene Makerspace has some interesting [ideas](http://www.eugenemakerspace.com/wiki/Sites/ElectronicDoorLock)