mirror of
https://github.com/brmlab/brmdoor_libnfc.git
synced 2025-06-08 00:24:00 +02:00
58 lines
1.7 KiB
Markdown
58 lines
1.7 KiB
Markdown
# Brmdoor via libnfc
|
|
|
|
This is an access-control system implementation via contactless ISO 14443A cards
|
|
and a PN53x-based reader. So you basically swipe your card, and if it's in
|
|
database, the door unlocks.
|
|
|
|
It's primarily intended for Raspberry Pi, but can work for other plaforms that
|
|
can work with libnfc (including common x86 systems).
|
|
|
|
## Aims
|
|
|
|
People have made few implementations that kind of work
|
|
[1](https://www.brmlab.cz/project/brmdoor),
|
|
[2](https://github.com/hiviah/brmdoor-pn532/tree/pn532), but are
|
|
messy - either due to limitations of hardware or plagued by having to simulate
|
|
backward compatbility errors.
|
|
|
|
So we need and have:
|
|
|
|
- clean, documented C++ code and swig wrapper interfacing libnfc directly
|
|
- clean, documented Python code
|
|
- documentation (doxygen)
|
|
- sqlite support - no need to recompile for access control list change, just
|
|
edit the sqlite database
|
|
- extensibility
|
|
|
|
## Building
|
|
|
|
You need just to run `make`. Additional dependencies:
|
|
|
|
- [SWIG](http://www.swig.org/)
|
|
- [WiringPi2 pythonic binding](https://github.com/WiringPi/WiringPi2-Python) (for switching lock on Raspberry)
|
|
|
|
## Howto
|
|
|
|
1. Create the database
|
|
|
|
python create_authenticator_db.py authenthicator_db.sqlite
|
|
|
|
2. Copy sample config file, edit your pins, DB file location, timeouts
|
|
|
|
cp brmdoor_nfc.config.sample brmdoor.config
|
|
|
|
3. Add some users
|
|
|
|
- either authenthication by UID, e.g.:
|
|
|
|
brmdoor_adduser.py -c brmdoor.config -a uid 34795FCC SomeUserName
|
|
|
|
- authenthication by Yubikey's HMAC-SHA1 programmed on slot 2
|
|
|
|
brmdoor_adduser.py -c brmdoor.config -a hmac 40795FCCAB0701 SomeUserName 000102030405060708090a0b0c0d0e0f31323334
|
|
|
|
Finally, run the daemon:
|
|
|
|
python brmdoor_nfc_daemon.py brmdoor.config
|
|
|
|
|