Skip to main content

Smartdoor system including NFC card detecting, key locking/unlocking, turning LED on/off, etc.

Project description

Smartdoor client system

PyPI PyPI - Python Version

GitHub Ruff pre-commit.ci status

Smartdoor system including NFC card detecting, key locking/unlocking, turning LED on/off, etc. with Raspberry Pi.

Default circuit diagram

The default circuit diagram is shown below. If you want to use other GPIO pin numbers, please edit the configuration file (see below).

circuit not yet updated

Quick Installation

sudo python -m pip install smartdoor

Before getting started

smartdoor_host system

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

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).

NFC reader permission

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.

How to use

Almost all the operations are done by the smartdoor command. Please see the help message for the details:

smartdoor --help

1. Set up the configuration file

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.

2. Run the main program for testing

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.

3. Set up the auto start

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

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

smartdoor-2.0.1.tar.gz (15.2 kB view details)

Uploaded Source

Built Distribution

smartdoor-2.0.1-py3-none-any.whl (14.9 kB view details)

Uploaded Python 3

File details

Details for the file smartdoor-2.0.1.tar.gz.

File metadata

  • Download URL: smartdoor-2.0.1.tar.gz
  • Upload date:
  • Size: 15.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: python-requests/2.31.0

File hashes

Hashes for smartdoor-2.0.1.tar.gz
Algorithm Hash digest
SHA256 e752ac5862ce4c9d77d86a684d38ae6055c8a955208547ef49f154ef4359a9e8
MD5 62d4102278725732267cab194b2b230a
BLAKE2b-256 e4dd733951d730573dc3301f2f5dd3d7ea84559fa74f668e799156fe85fc9b59

See more details on using hashes here.

File details

Details for the file smartdoor-2.0.1-py3-none-any.whl.

File metadata

  • Download URL: smartdoor-2.0.1-py3-none-any.whl
  • Upload date:
  • Size: 14.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: python-requests/2.31.0

File hashes

Hashes for smartdoor-2.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 9adb5ff0b3eb002ad485a91047a365006e8837c84c31d8fbcf87619bf200383b
MD5 16f72c84372e25510263c0b6441332c7
BLAKE2b-256 c0216560170e7af3abab44ae393a251c6994e016a3e723d07ce3af5d760e24e6

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page