-
Notifications
You must be signed in to change notification settings - Fork 0
/
Reader.py
72 lines (62 loc) · 1.61 KB
/
Reader.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
#!/usr/bin/env python
'''
' Author(s): Mathew Norman, Michael Ferris
' Date created: 10/04/18
' Description:
' Simulates the process of reading and validating RFID cards on the Raspberry Pi for the RFID Readers.
'''
# Import libraries.
import requests
import uuid
import os
from gpiozero import Buzzer # Import library for buzzer.
from time import sleep # Import library for sleep.
import RPi.GPIO as GPIO # Import library for GPIO pins.
# Import local libraries.
from lib import SimpleMFRC522 # Import library for MFRC522.
from lib import RFIDStatus # Import custom library for RFID status.
from lib import Validate # Import custom library for user validation library.
reader = SimpleMFRC522.SimpleMFRC522()
status = RFIDStatus.RFIDStatus()
validate = Validate.Validate()
def accessGranted():
status.green_on()
status.quick_buzz()
status.green_off()
print "Granted"
sleep(5)
def accessDenied():
status.red_on()
status.quick_buzz()
status.quick_buzz()
status.quick_buzz()
status.red_off()
print "Not granted"
sleep(5)
# Read card reader input
def readingCards(signature):
while True:
print("Ready to read...")
status.blue_on()
id, time = reader.read()
status.blue_off()
if (validate.card(id, signature)):
accessGranted()
else:
accessDenied()
# Load or create signature
if os.path.isfile('signature'):
f = open("signature", "r")
signature = f.read()
f.close()
readingCards(signature)
else:
writesignature = str(uuid.uuid4())
print(writesignature)
f = open("signature","w")
f.write(writesignature)
f.close()
f = open("signature", "r")
signature = f.read()
f.close()
readingCards(signature)