working prototype for unlocking
This commit is contained in:
parent
bc66a3a729
commit
f24a10ccf6
Binary file not shown.
25
lock.py
Normal file
25
lock.py
Normal file
|
@ -0,0 +1,25 @@
|
||||||
|
import RPi.GPIO as GPIO
|
||||||
|
import time
|
||||||
|
|
||||||
|
GPIO.setmode(GPIO.BOARD)
|
||||||
|
|
||||||
|
UNLOCK_PIN = 12
|
||||||
|
LOCK_PIN = 11
|
||||||
|
DELAY = 0.25
|
||||||
|
|
||||||
|
GPIO.setup(UNLOCK_PIN, GPIO.OUT)
|
||||||
|
GPIO.setup(LOCK_PIN, GPIO.OUT)
|
||||||
|
|
||||||
|
GPIO.output(UNLOCK_PIN, GPIO.LOW)
|
||||||
|
GPIO.output(LOCK_PIN, GPIO.LOW)
|
||||||
|
|
||||||
|
def unlock():
|
||||||
|
GPIO.output(UNLOCK_PIN, GPIO.HIGH)
|
||||||
|
time.sleep(DELAY)
|
||||||
|
GPIO.output(UNLOCK_PIN, GPIO.LOW)
|
||||||
|
|
||||||
|
def lock():
|
||||||
|
GPIO.output(LOCK_PIN, GPIO.HIGH)
|
||||||
|
time.sleep(DELAY)
|
||||||
|
GPIO.output(LOCK_PIN, GPIO.LOW)
|
||||||
|
|
21
main.py
21
main.py
|
@ -7,6 +7,8 @@ import time
|
||||||
import RPi.GPIO as GPIO
|
import RPi.GPIO as GPIO
|
||||||
from mfrc522 import SimpleMFRC522
|
from mfrc522 import SimpleMFRC522
|
||||||
|
|
||||||
|
import lock
|
||||||
|
|
||||||
class DoorLock():
|
class DoorLock():
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
# initialize card reader
|
# initialize card reader
|
||||||
|
@ -43,7 +45,9 @@ class DoorLock():
|
||||||
|
|
||||||
def unlock_door(self):
|
def unlock_door(self):
|
||||||
# TODO send command to open door lock
|
# TODO send command to open door lock
|
||||||
|
# not implemented yet
|
||||||
print("Unlocking door!\n\n")
|
print("Unlocking door!\n\n")
|
||||||
|
lock.unlock()
|
||||||
|
|
||||||
def release_the_kraken(self):
|
def release_the_kraken(self):
|
||||||
# TODO notify that authentication failed
|
# TODO notify that authentication failed
|
||||||
|
@ -53,7 +57,7 @@ class DoorLock():
|
||||||
def run_authorization(self):
|
def run_authorization(self):
|
||||||
try:
|
try:
|
||||||
while True:
|
while True:
|
||||||
print("Hold card before reader..")
|
print("Hold card in front of reader..")
|
||||||
uid, data = self.reader.read()
|
uid, data = self.reader.read()
|
||||||
|
|
||||||
print("card read: \n uid = {}\ndata = {}\n".format(hex(uid), data))
|
print("card read: \n uid = {}\ndata = {}\n".format(hex(uid), data))
|
||||||
|
@ -69,17 +73,16 @@ class DoorLock():
|
||||||
self.release_the_kraken()
|
self.release_the_kraken()
|
||||||
time.sleep(1.5)
|
time.sleep(1.5)
|
||||||
finally:
|
finally:
|
||||||
#GPIO.cleanup()
|
GPIO.cleanup()
|
||||||
pass
|
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
# create database with some users
|
# create database with some users
|
||||||
# conn = setup_db()
|
conn = setup_db()
|
||||||
# with conn:
|
with conn:
|
||||||
# create_user(conn, 'Simon', 4225799947, 0, str(datetime.utcnow()), str(datetime.utcnow()))
|
create_user(conn, 'Simon', 141405954844, 0, str(datetime.utcnow()), str(datetime.utcnow()))
|
||||||
# create_user(conn, 'Valentin', 154921302, 0, str(datetime.utcnow()), str(datetime.utcnow()))
|
create_user(conn, 'Valentin', 154921302, 0, str(datetime.utcnow()), str(datetime.utcnow()))
|
||||||
# users = select_all_users(conn)
|
users = select_all_users(conn)
|
||||||
|
|
||||||
doors_of_durin = DoorLock()
|
doors_of_durin = DoorLock()
|
||||||
|
|
||||||
|
@ -87,4 +90,4 @@ if __name__ == "__main__":
|
||||||
data = 'Mellon!'
|
data = 'Mellon!'
|
||||||
#write_success = doors_of_durin.reader.write(data)
|
#write_success = doors_of_durin.reader.write(data)
|
||||||
doors_of_durin.run_authorization()
|
doors_of_durin.run_authorization()
|
||||||
pass
|
pass
|
||||||
|
|
Loading…
Reference in New Issue
Block a user