From 353d306fc0df05643c2a823a906680ba4455e301 Mon Sep 17 00:00:00 2001 From: Davide Bongiovanni Date: Fri, 4 Nov 2016 16:34:51 +0100 Subject: [PATCH] Added button feature --- cardlistener.py | 47 +++++++++++++++++++++++++++++++++++++++++++++-- pin_config.json | 9 +++++++++ 2 files changed, 54 insertions(+), 2 deletions(-) create mode 100644 pin_config.json diff --git a/cardlistener.py b/cardlistener.py index 7924feb..a882f7f 100644 --- a/cardlistener.py +++ b/cardlistener.py @@ -1,7 +1,20 @@ -import time -import json +import time, json +import RPi.GPIO as GPIO if __name__ == '__main__': + pin_config = {} + with open('pin_config.json') as pin_config_stream: + pin_config = json.load(pin_config_stream) + if pin_config['mode'] == 'BOARD': + GPIO.setmode(GPIO.BOARD) + else: + GPIO.setmode(GPIO.BCM) + GPIO.setup(pin_config['frigde_btn'], GPIO.IN, pull_up_down=GPIO.PUD_UP) + GPIO.setup(pin_config['tools_btn'], GPIO.IN, pull_up_down=GPIO.PUD_UP) + GPIO.setup(pin_config['fridge_red_LED'], GPIO.OUT) + GPIO.setup(pin_config['fridge_grn_LED'], GPIO.OUT) + GPIO.setup(pin_config['tools_red_LED'], GPIO.OUT) + GPIO.setup(pin_config['tools_grn_LED'], GPIO.OUT) while True: cardID = raw_input("Enter card ID: ") event = {} @@ -12,6 +25,36 @@ if __name__ == '__main__': with open('cards/' + cardID + '.json') as card_data: data = json.load(card_data) event["name"] = data['name'] + if data['secretTools']: + GPIO.output(pin_config['tools_grn_LED'], GPIO.HIGH) + else + GPIO.output(pin_config['tools_red_LED'], GPIO.HIGH) + if data['fridge']: + GPIO.output(pin_config['fridge_grn_LED'], GPIO.HIGH) + else + GPIO.output(pin_config['fridge_red_LED'], GPIO.HIGH) + timeout = time.time() + 5 # 5 seconds timeout + while wait: + if data['secretTools'] and GPIO.input(pin_config['tools_btn']) == 0: + wait = False + GPIO.output(pin_config['fridge_grn_LED'], GPIO.LOW) + GPIO.output(pin_config['tools_grn_LED'], GPIO.LOW) + GPIO.output(pin_config['fridge_red_LED'], GPIO.LOW) + GPIO.output(pin_config['tools_red_LED'], GPIO.LOW) + # Open tools + if data['fridge'] and GPIO.input(pin_config['fridge_btn']) == 0: + GPIO.output(pin_config['fridge_grn_LED'], GPIO.LOW) + GPIO.output(pin_config['tools_grn_LED'], GPIO.LOW) + GPIO.output(pin_config['fridge_red_LED'], GPIO.LOW) + GPIO.output(pin_config['tools_red_LED'], GPIO.LOW) + wait = False + # Open fridge + if time.time() > timeout: + GPIO.output(pin_config['fridge_grn_LED'], GPIO.LOW) + GPIO.output(pin_config['tools_grn_LED'], GPIO.LOW) + GPIO.output(pin_config['fridge_red_LED'], GPIO.LOW) + GPIO.output(pin_config['tools_red_LED'], GPIO.LOW) + wait = False except: print "Card not registered." history = [] diff --git a/pin_config.json b/pin_config.json new file mode 100644 index 0000000..ee43f26 --- /dev/null +++ b/pin_config.json @@ -0,0 +1,9 @@ +{ + "mode" : "BOARD", + "fridge_btn" : 16, + "tools_btn" : 18, + "fridge_red_LED" : 31, + "fridge_grn_LED" : 33, + "tools_red_LED" : 35, + "tools_grn_LED" : 37, +} \ No newline at end of file