parent
756d181083
commit
1eb7b8c508
3 changed files with 179 additions and 0 deletions
@ -0,0 +1,108 @@ |
||||
# Byte-compiled / optimized / DLL files |
||||
__pycache__/ |
||||
*.py[cod] |
||||
*$py.class |
||||
|
||||
# C extensions |
||||
*.so |
||||
|
||||
# Distribution / packaging |
||||
.Python |
||||
build/ |
||||
develop-eggs/ |
||||
dist/ |
||||
downloads/ |
||||
eggs/ |
||||
.eggs/ |
||||
lib/ |
||||
lib64/ |
||||
parts/ |
||||
sdist/ |
||||
var/ |
||||
wheels/ |
||||
*.egg-info/ |
||||
.installed.cfg |
||||
*.egg |
||||
|
||||
# PyInstaller |
||||
# Usually these files are written by a python script from a template |
||||
# before PyInstaller builds the exe, so as to inject date/other infos into it. |
||||
*.manifest |
||||
*.spec |
||||
|
||||
# Installer logs |
||||
pip-log.txt |
||||
pip-delete-this-directory.txt |
||||
|
||||
# Unit test / coverage reports |
||||
htmlcov/ |
||||
.tox/ |
||||
.coverage |
||||
.coverage.* |
||||
.cache |
||||
nosetests.xml |
||||
coverage.xml |
||||
*.cover |
||||
.hypothesis/ |
||||
|
||||
# Translations |
||||
*.mo |
||||
*.pot |
||||
|
||||
# Django stuff: |
||||
*.log |
||||
local_settings.py |
||||
|
||||
# Flask stuff: |
||||
instance/ |
||||
.webassets-cache |
||||
|
||||
# Scrapy stuff: |
||||
.scrapy |
||||
|
||||
# Sphinx documentation |
||||
docs/_build/ |
||||
|
||||
# PyBuilder |
||||
target/ |
||||
|
||||
# Jupyter Notebook |
||||
.ipynb_checkpoints |
||||
|
||||
# pyenv |
||||
.python-version |
||||
|
||||
# celery beat schedule file |
||||
celerybeat-schedule |
||||
|
||||
# SageMath parsed files |
||||
*.sage.py |
||||
|
||||
# Environments |
||||
.env |
||||
.venv |
||||
env/ |
||||
venv/ |
||||
ENV/ |
||||
|
||||
# Spyder project settings |
||||
.spyderproject |
||||
.spyproject |
||||
|
||||
# Rope project settings |
||||
.ropeproject |
||||
|
||||
# mkdocs documentation |
||||
/site |
||||
|
||||
# mypy |
||||
.mypy_cache/ |
||||
|
||||
# Editor |
||||
*.swp |
||||
*.swo |
||||
|
||||
# DB |
||||
db.sqlite3 |
||||
|
||||
cardexport.json |
@ -0,0 +1,69 @@ |
||||
import logging |
||||
logging.basicConfig( |
||||
format='%(asctime)s - %(name)s - %(levelname)s - %(message)s', |
||||
level=logging.INFO) |
||||
|
||||
import os |
||||
import json |
||||
import sys |
||||
#import RPi.GPIO as GPIO |
||||
import serial |
||||
import time |
||||
|
||||
RELAY_PIN = 17 |
||||
RFID_EN_PIN = 27 |
||||
CARDS_FILE = 'cardexport.json' |
||||
|
||||
ser = None |
||||
recent = {} |
||||
cards = {} |
||||
|
||||
def init(): |
||||
global ser |
||||
|
||||
#GPIO.setwarnings(False) |
||||
#GPIO.setmode(GPIO.BCM) |
||||
#GPIO.setup(RELAY_PIN, GPIO.OUT) |
||||
#GPIO.output(RELAY_PIN, GPIO.LOW) |
||||
#GPIO.setup(RFID_EN_PIN, GPIO.OUT) |
||||
#GPIO.output(RFID_EN_PIN, GPIO.LOW) |
||||
logging.info('GPIO initialized.') |
||||
|
||||
#ser = serial.Serial(port='/dev/ttyAMA0', baudrate=2400, timeout=0.1) |
||||
logging.info('Serial initialized.') |
||||
|
||||
with open(CARDS_FILE, 'r') as f: |
||||
cards = json.load(f) |
||||
logging.info('Read in {} card numbers.'.format(str(len(cards)))) |
||||
|
||||
|
||||
|
||||
def loop(): |
||||
card = ser.readline() |
||||
if not card: |
||||
return |
||||
|
||||
card = card.strip() |
||||
if len(card) != 10: |
||||
return |
||||
|
||||
now = time.time() |
||||
if card in recent: |
||||
if now - recent[card] < 5.0: |
||||
recent[card] = now |
||||
return |
||||
recent[card] = now |
||||
|
||||
logging.info('Read card # ' + card) |
||||
handle_card_read(card) |
||||
|
||||
if __name__ == '__main__': |
||||
logging.info('Initializing...') |
||||
init() |
||||
|
||||
logging.info('Running main loop...') |
||||
try: |
||||
while True: |
||||
loop() |
||||
except KeyboardInterrupt: |
||||
logging.info('Exiting...') |
@ -0,0 +1,2 @@ |
||||
pkg-resources==0.0.0 |
||||
pyserial==3.4 |
Loading…
Reference in new issue