-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathopen_relay.py
44 lines (36 loc) · 1.09 KB
/
open_relay.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
#!/usr/bin/env python
import RPi.GPIO as GPIO
import time
import argparse
# relay channel
CHANNEL = 21
# time to wait after open relay
DELAY_TIME = 5
# GPIO setup
GPIO.setmode(GPIO.BCM)
GPIO.setup(CHANNEL, GPIO.OUT)
def close_relay(pin):
print("Relay closed")
GPIO.output(pin, GPIO.HIGH)
def open_relay(pin):
print("Relay open")
GPIO.output(pin, GPIO.LOW)
def parser():
parser = argparse.ArgumentParser(description='Open relay for defined time in open_time argument.')
parser.add_argument('--open_time', type=int,
help='Time of open relay in seconds.')
parser.set_defaults(open_time=DELAY_TIME)
args = parser.parse_args()
return args
if __name__ == '__main__':
try:
args = parser()
print('Relay will be open for ' + str(args.open_time) + ' seconds')
print('Relay will be open after ' + str(DELAY_TIME) +' seconds')
time.sleep(DELAY_TIME)
open_relay(CHANNEL)
time.sleep(args.open_time)
close_relay(CHANNEL)
GPIO.cleanup()
except KeyboardInterrupt:
GPIO.cleanup()