Cześć,
chciałbym za pomocą Flask'a stworzyć domowy server i za jego pomocą sterować diodami rgb podpiętymi do maliny.
sam server mam już stworzony.
template:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>{{ title }} - Wizytowka</title>
</head>
<body>
<h1>Wizytowka</h1>
<p>
{{ content }}
</p>
<form method="POST">
<div class="checkbox">
<label>
<input type="checkbox" name="RedCheck" value="1" /> RED <br/>
</div>
<div class="range">
<input type="range" name="RedValue" /><br/>
</div>
<div class="checkbox">
<input type="checkbox" name="BlueCheck" value="1" /> Blue <br/>
</div>
<div class="range">
<input type="range" name="BlueValue" /><br/>
</div>
<div class="checkbox">
<input type="checkbox" name="GreenCheck" value="1" /> Green <br/>
</div>
<div class="range">
<input type="range" name="GreenValue" /><br/>
</label>
</div>
<input type="submit" />
</form>
</body>
</html>
kod pythona:
from flask import Flask
from flask import request
from flask import render_template
import RPi.GPIO as GPIO
app = Flask(__name__)
@app.route("/")
def home():
return render_template('szablon.html', title="Home")
@app.route("/", methods = ["GET", "POST"])
def process_form():
formData = request.values if request.method == "POST" else request.values
# response = "Form Contents <pre>%s</pre>" % "<br/>\n".join(["%s:%s" % item for item in formData.items()] )
RedCheck = request.form.get('RedCheck')
RedValue = request.form.get('RedValue')
barwa_led(power=int(RedCheck), value=int(RedValue), channel=36)
BlueCheck = request.form.get('BlueCheck')
BlueValue = request.form.get('BlueValue')
# sterowanie_LED.barwa_led(power=int(BlueCheck), value=int(BlueValue), channel=38)
GreenCheck = request.form.get('GreenCheck')
GreenValue = request.form.get('GreenValue')
# sterowanie_LED.barwa_led(power=int(GreenCheck), value=int(GreenValue), channel=40)
print "RedCheck = " + str(RedCheck)
print "RedValue = " + str(RedValue)
print "BlueCheck = " + str(BlueCheck)
print "BlueValue = " + str(BlueValue)
print "GreenCheck = " + str(GreenCheck)
print "GreenValue = " + str(GreenValue)
return render_template('szablon.html', title="Home")
def barwa_led(power, value, channel):
try:
if power == 1:
GPIO.setwarnings(False)
GPIO.setmode(GPIO.BOARD)
GPIO.setup(channel, GPIO.OUT)
led = GPIO.PWM(channel, 75)
led.ChangeDutyCycle(value)
led.start(value)
elif power is None:
GPIO.setmode(GPIO.BOARD)
GPIO.setup(channel, GPIO.OUT)
led = GPIO.PWM(channel, 75)
led = stop()
GPIO.cleanup()
except:
print("we have problem")
if __name__ == "__main__":
app.run(host="192.168.0.16", port=8080)
Problem polega na tym, że dioda błyśnie i nic więcej, nie chce świecić z zadanymi parametrami.