-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathapp.py
71 lines (60 loc) · 1.82 KB
/
app.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
#!/usr/bin/env python
import RPi.GPIO as GPIO
from flask import Flask, render_template, request
app = Flask(__name__)
GPIO.setmode(GPIO.BCM)
def resetColor():
GPIO.output(17, GPIO.LOW)
GPIO.output(27, GPIO.LOW)
GPIO.output(24, GPIO.LOW)
pins = {
17 : {'name' : 'RED', 'state' : GPIO.LOW},
27 : {'name' : 'GREEN', 'state' : GPIO.LOW},
24 : {'name' : 'BLUE', 'state' : GPIO.LOW}
}
for pin in pins:
GPIO.setup(pin, GPIO.OUT)
GPIO.output(pin, GPIO.LOW)
@app.route("/")
def main():
for pin in pins:
pins[pin]['state'] = GPIO.input(pin)
templateData = { 'pins' : pins }
return render_template('main.html', **templateData)
@app.route("/<changeColor>/<action>")
def action(changeColor, action):
if changeColor.upper() == "RED":
if action.upper() == "ON":
resetColor()
GPIO.output(17, GPIO.HIGH)
else:
resetColor()
elif changeColor.upper() == "GREEN":
if action.upper() == "ON":
resetColor()
GPIO.output(27, GPIO.HIGH)
else:
resetColor()
elif changeColor.upper() == "BLUE":
if action.upper() == "ON":
resetColor()
GPIO.output(24, GPIO.HIGH)
else:
resetColor()
elif changeColor.upper() == "WHITE":
if action.upper() == "ON":
GPIO.output(17, GPIO.HIGH)
GPIO.output(27, GPIO.HIGH)
GPIO.output(24, GPIO.HIGH)
else:
GPIO.output(17, GPIO.LOW)
GPIO.output(27, GPIO.LOW)
GPIO.output(24, GPIO.LOW)
else:
pass
for pin in pins:
pins[pin]['state'] = GPIO.input(pin)
templateData = { 'pins' : pins }
return render_template('main.html', **templateData)
if __name__ == "__main__":
app.run(host="0.0.0.0", port=80, debug=True)