-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathcontrol.py
44 lines (43 loc) · 1.2 KB
/
control.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
#!/usr/bin/python3
from flask
import Flask, request, send_from_directory
import RPi.GPIO as gpio
# Configurando como BOARD, Pinos Fisicos
gpio.setmode(gpio.BOARD)
# Configurando a direcao do Pino
gpio.setup(12, gpio.OUT)# Usei 11 pois meu setmode é BOARD, se estive usando BCM seria
17
gpio.output(12, gpio.HIGH)
gpio.output(12, gpio.LOW)
app = Flask(__name__)
global lampstate
lampstate = False
# função principal de controle
@app.route('/lamp/<state>', methods = ['GET'])
def result(state = None):
global lampstate
if state == "on":
print("Lampada ligada")
lampstate = True
gpio.output(12, gpio.HIGH)
elif state == "off":
print("Lampada desligada")
lampstate = False
gpio.output(12, gpio.LOW)
elif state == "get":
print(lampstate)
else :
lampstate = not lampstate
if lampstate:
gpio.output(12, gpio.HIGH)
else :
gpio.output(12, gpio.LOW)
return str(lampstate)# resposta para o request.
@app.route('/<path:path>')
def send_js(path):
# fornece o diretório web como raiz do servidor
return send_from_directory('web', path)
if __name__ == "__main__":
# define que o servidor será executado na porta 80, aceitando conexões de todos os
hosts.
app.run(debug = False, use_reloader = True, host = '0.0.0.0', port = 80)