Smartdoor system including NFC card detecting, key locking/unlocking, turning LED on/off, etc. with Raspberry Pi.
The default circuit diagram is shown below. If you want to use other GPIO pin numbers, please edit the configuration file (see below).
sudo python -m pip install smartdoor
Smartdoor Host system which serves the web application for NFC key management must be run. Please install and deploy it in adavnce. (see here).
pigpio
library enables hardware control for PWM signals. This is the optional library for smartdoor
package. If you want to use it, please install it in advance (see here) and run the daemon by the following command:
sudo pigpiod
It is recommended to run the daemon automatically at the system startup. If pigpio
is installed
and impotable from Python, smartdoor
package will automatically register it in systemd
service (see below).
To access NFC reader, the permission of the device file must be set. Please execute the following.
sudo sh -c 'echo SUBSYSTEM==\"usb\", ACTION==\"add\", ATTRS{idVendor}==\"054c\", ATTRS{idProduct}==\"06c3\", GROUP=\"plugdev\" >> /etc/udev/rules.d/nfcdev.rules'
sudo udevadm control -R
Then, reboot the system.
This instruction is based on the result of python -m nfc
command. If you use other NFC reader, please change the idVendor
and idProduct
according to your device.
Almost all the operations are done by the smartdoor
command. Please see the help message for the
details:
smartdoor --help
The default configuration file ca be generated by the following command:
smartdoor config --generate
The configuration file is located at ~/.config/smartdoor.toml
. Please edit it according to your environment.
The main program can be executed by the following command:
smartdoor start
If you want to specify door is locked/unlocked, add --locked
/--unlocked
option, by default
the door is locked.
The main program will be run in the foreground. If you want stop the program, press Ctrl+C
.
The main program can be automatically run by systemd
service. To register the smartdoor.service
to systemd
, execute the following command:
smartdoor service --register
Then, the service will be ready for start. Simaltenously, the pigpiod
service will be registered
if pigpio
library is installed.
To manually start it, execute the following command:
smartdoor service --start
Please see the help message for other options:
smartdoor service --help