Difference between revisions of "Physical access control"
(Created page with " We (Omni) are currently using: * https://github.com/sudoroom/doorjam * https://github.com/sudoroom/sudo-humans We are working on a new system for all of Omni. Here is a ...") |
m (→Off the shelf) |
||
(5 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
= Software = | |||
We (Omni) are currently using: | We (Omni) are currently using: | ||
Line 8: | Line 10: | ||
Here is a [[list of existing hackerspace access control software]] with some notes for each. | Here is a [[list of existing hackerspace access control software]] with some notes for each. | ||
= Hardware = | |||
== Access tokens == | |||
The front door and old system uses magnetic stripe cards. | |||
The new system uses NFC tokens. As long as they have a unique ID and speak NFC they should work. | |||
== Computers == | |||
The Omni front door uses a Beagle Bone Black with battery backup present in the same box. | |||
The sudo/ccl door currently doesn't have a computer but we are working on it. | |||
== Microcontrollers == | |||
The Omni front door uses an Arduino hooked to the BBB. Jake knows more. It is powered from the BBB. | |||
The sudo/ccl door uses an ESP32 running [https://esphome.io/ ESPHome] firmware. The yml config is [https://github.com/sudoroom/esphome-omnidoor-rfid here]. It talks to an RC522 RFID module over SPI, reading every second and returns the read as the event "tag_scanned" with the NFC tag ID. It has an API service that Home Assistant can call, named "unlock_door" which turns on the GPIO pin controlling the solenoid. Changing the PWM power and amount requires re-flashing which can be done over the air (OTA). It uses a few transistors to control the 12 VDC for the solenoid. Alex made this circuit. The ESP32 board is powered from a 5 V regulator which is powered by the same 12 V as the solenoid. | |||
It is planned that the power for the ESP32 and solenoid will ultimately come from PoE with a central battery backup in the server closet which will also server as power backup for the new access control computer. | |||
== Electric strikes == | |||
Both the Omni front door and sudo/ccl door use electric strikes. These just need 12 V and enough amps. | |||
To control the strikes from a microcontroller the Omni front door arduino uses some sort of motor controller board. Jake knows about it. | |||
== Smart locks == | |||
=== Off the shelf === | |||
juul has been testing the August Smart Lock Pro which speaks z-wave. He wrote up a [https://gist.github.com/Juul/755ac2895a4b1ea430d5edd31abbf82f guide] on how to use it with Home Assistant. | |||
=== Custom hackery solution === | |||
Since none of the off-the-shelf solutions do exactly what we want, we could instead build our own. One way would be to use a z-wave smartlock and add our own control electronics for wifi / bluetooth / rfid. Unfortunately those locks start at around $150. | |||
Another option is to build pretty much the whole thing from scratch from a deadbolt and a $17 3 V smartlock motor from Aliexpress (our spam filter is blocking Aliexpress links but go to their .com/item/4000226861796.html ). This would require some mechanical fabrication which seems like a bit much. | |||
A simple but still lower cost option is to add e.g. an ESP32 and a Nordic low power bluetooth module to the cheapest possible battery-operated electronic deadbolt. If we want something with a replaceable and re-keyable mechanical lock core then [https://www.amazon.com/Kwikset-92640-001-Contemporary-Electronic-Motorized/dp/B00R7JVFCE/ kwikset sells one for $60] and there are some no-brand versions around for a bit less. | |||
We could then have the ESP32 operate in low power wifi client mode and keep an updated access control list, then let folks open the doors with their phones using wifi or bluetooth where bluetooth would continue working as long as the lock has batteries. We could even potentially use the built-in buttons to wake up an RFID reader for a few seconds if that doesn't drain the battery too much. We would of course rip out the existing control circuitry. |
Latest revision as of 22:38, 27 October 2021
Software
We (Omni) are currently using:
We are working on a new system for all of Omni.
Here is a list of existing hackerspace access control software with some notes for each.
Hardware
Access tokens
The front door and old system uses magnetic stripe cards.
The new system uses NFC tokens. As long as they have a unique ID and speak NFC they should work.
Computers
The Omni front door uses a Beagle Bone Black with battery backup present in the same box.
The sudo/ccl door currently doesn't have a computer but we are working on it.
Microcontrollers
The Omni front door uses an Arduino hooked to the BBB. Jake knows more. It is powered from the BBB.
The sudo/ccl door uses an ESP32 running ESPHome firmware. The yml config is here. It talks to an RC522 RFID module over SPI, reading every second and returns the read as the event "tag_scanned" with the NFC tag ID. It has an API service that Home Assistant can call, named "unlock_door" which turns on the GPIO pin controlling the solenoid. Changing the PWM power and amount requires re-flashing which can be done over the air (OTA). It uses a few transistors to control the 12 VDC for the solenoid. Alex made this circuit. The ESP32 board is powered from a 5 V regulator which is powered by the same 12 V as the solenoid.
It is planned that the power for the ESP32 and solenoid will ultimately come from PoE with a central battery backup in the server closet which will also server as power backup for the new access control computer.
Electric strikes
Both the Omni front door and sudo/ccl door use electric strikes. These just need 12 V and enough amps.
To control the strikes from a microcontroller the Omni front door arduino uses some sort of motor controller board. Jake knows about it.
Smart locks
Off the shelf
juul has been testing the August Smart Lock Pro which speaks z-wave. He wrote up a guide on how to use it with Home Assistant.
Custom hackery solution
Since none of the off-the-shelf solutions do exactly what we want, we could instead build our own. One way would be to use a z-wave smartlock and add our own control electronics for wifi / bluetooth / rfid. Unfortunately those locks start at around $150.
Another option is to build pretty much the whole thing from scratch from a deadbolt and a $17 3 V smartlock motor from Aliexpress (our spam filter is blocking Aliexpress links but go to their .com/item/4000226861796.html ). This would require some mechanical fabrication which seems like a bit much.
A simple but still lower cost option is to add e.g. an ESP32 and a Nordic low power bluetooth module to the cheapest possible battery-operated electronic deadbolt. If we want something with a replaceable and re-keyable mechanical lock core then kwikset sells one for $60 and there are some no-brand versions around for a bit less.
We could then have the ESP32 operate in low power wifi client mode and keep an updated access control list, then let folks open the doors with their phones using wifi or bluetooth where bluetooth would continue working as long as the lock has batteries. We could even potentially use the built-in buttons to wake up an RFID reader for a few seconds if that doesn't drain the battery too much. We would of course rip out the existing control circuitry.