我通过GPIO
引脚选择温度和湿度来创建一个网站。
我制作了一个按钮,当我单击它时,我转到python-file
中的一个方法,但它不起作用。它打开另一个站点时出现内部服务器错误。
不幸的是,存在内部服务器错误。我现在不知道,我怎么能修好它
HTML
<div class="container">
<h1 id="h1Titel" style="font-size:40px">Temperatur und Luftfeuchtigkeit</h1>
<p id="pTemperatur" style="font-size:25px">Temperatur</p>
<p id="pLuftfeuchtigkeit" style="font-size:25px">Luftfeuchtigkeit</p>
<p id="AusgabeTemp" style="font-size:25px">--°C</p>
<p id="AusgabeLuft" style="font-size:25px">--%</p>
{% if buttonStart == 'enable' %}
<span class="cbtn" id="e6" style="font-size:25px">
<a href="/start" class="button" id="buttonStart" style="font-size:25px">Start</a>
</span>
{% else %}
<span class="cbtn" id="e6" style="font-size:25px">
<a href="/start" class="button" id="buttonStart" style="font-size:25px" disabled>Start</a>
</span>
{% endif %}
{% if buttonStop == 'enable' %}
<span class="cbtn" id="e7" style="font-size:25px">
<a href="/stop" class="button" id="buttonStop" style="font-size:25px">Stop</a>
</span>
{% else %}
<span class="cbtn" id="e7" style="font-size:25px">
<a href="/stop" class="button" id="buttonStop" style="font-size:25px" disabled>Stop</a>
</span>
{% endif %}
<p id="pErklaerung1" style="font-size:25px">Grüner Temperaturen Bereich: zwischen</p>
<textarea id="TempGruenMin" style="font-size:25px" rows="1"></textarea>
<p id="pUnd1" style="font-size:25px">und</p>
<textarea id="TempGruenMax" style="font-size:25px" rows="1"></textarea>
<p id="pErklaerung2" style="font-size:25px">Grüner Luftfeuchtigkeiten Bereich: zwischen</p>
<textarea id="LuftGruenMin" style="font-size:25px" rows="1"></textarea>
<p id="pUnd2" style="font-size:25px">und</p>
<textarea id="LuftGruenMax" style="font-size:25px" rows="1"></textarea>
<span class="cbtn" id="e8" style="font-size:25px">
<a href="/speichern" class="button" id="buttonSpeichern" style="font-size:25px">Speichern</a>
</span>
</form>
Python
from flask import render_template, request
from app import app
import RPi.GPIO as GPIO
import Adafruit_DHT as dht
import time,sys
import traceback,sched
import string
import threading
import time
GPIO.setmode(GPIO.BCM)
DHTSensor = dht.DHT11
Threadbeenden = True
TempVor = 0
LuftVor = 0
minimumGruenerBereichTemperatur = 26
maximalGruenerBereichTemperatur = 27
minimumGruenerBereichLuftfeuchtigkeit = 35
maximalGruenerBereichLuftfeuchtigkeit = 38
ledRedPin = 26
ledBluePin = 19
ledGreenPin = 13
ledRedStatus = 0
ledBlueStatus = 0
ledGreenStatus = 0
buttonStartStatus = 'active'
buttonStopStatus = 'disable'
Temperatur = '--°C'
Luftfeuchtigkeit = '--%'
Threadbeenden = True
labTempVordergrundFarbe = 'BLACK'
labLuftVordergrundFarbe = 'BLACK'
labTempHintergrundFarbe = 'WHITE'
labLuftHintergrundFarbe = 'WHITE'
GPIO.setup(ledRedPin, GPIO.OUT)
GPIO.setup(ledBluePin, GPIO.OUT)
GPIO.setup(ledGreenPin, GPIO.OUT)
GPIO.output(ledRedPin, GPIO.LOW)
GPIO.output(ledBluePin, GPIO.LOW)
GPIO.output(ledGreenPin, GPIO.LOW)
@app.route('/')
@app.route('/index')
def index():
ledRedStatus = GPIO.input(ledRedPin)
ledBlueStatus = GPIO.input(ledBluePin)
ledGreenStatus = GPIO.input(ledGreenPin)
templateData = {
'ledRed' : ledRedStatus,
'ledBlue' : ledBlueStatus,
'ledGreen' : ledGreenStatus,
'buttonStart' : buttonStartStatus,
'buttonStop' : buttonStopStatus,
'temperatur' : Temperatur,
'luftfeuchtigkeit' : Luftfeuchtigkeit,
'labTempHF' : labTempHintergrundFarbe,
'labTempVF' : labTempVordergrundFarbe,
'labLuftHF' : labLuftHintergrundFarbe,
'labLuftVF' : labLuftVordergrundFarbe
}
return render_template('index.html', title='Home', **templateData)
@app.route('/<devicename>')
def action(devicename):
global Threadbeenden
global DHTSensor
global Luftfeuchtigkeit
global minimumGruenerBereichLuftfeuchtigkeit
global minimumGruenerBereichTemperatur
global maximalGruenerBereichLuftfeuchtigkeit
global maximalGruenerBereichTemperatur
global Temperatur
global ledBluePin
global ledBlueStatus
global ledGreenPin
global ledGreenStatus
global ledRedPin
global ledRedStatus
global labLuftVordergrundFarbe
global labTempVordergrundFarbe
global labLuftHintergrundFarbe
global labTempHintergrundFarbe
if devicename == 'start':
buttonStopStatus = ButtonEnabeln()
buttonStartStatus = ButtonDisabeln()
while Threadbeenden == False:
Luftfeuchtigkeit, Temperatur = dht.read_retry(DHTSensor, 23)
if Threadbeenden == True:
break
Luft = Luftfeuchtigkeit + '%'
Temp = Temperatur + '°C'
Luftfeuchtigkeit = Luft
Temperatur = Temp
if Temperatur is not None and Luftfeuchtigkeit is not None:
if Temperatur < int(minimumGruenerBereichTemperatur):
if (Threadbeenden is True):
break
labTempHintergrundFarbe = 'BLUE'
labTempVordergrundFarbe = 'WHITE'
GPIO.output(ledGreenPin, 0)
ledGreenStatus = 0
GPIO.output(ledBluePin, 1)
ledBlueStatus = 1
GPIO.output(ledRedPin, 0)
ledRedStatus = 0
elif (Temperatur >= int(minimumGruenerBereichTemperatur)) and (Temperatur <= int(maximalGruenerBereichTemperatur)):
if (Threadbeenden is True):
break
labTempHintergrundFarbe = 'GREEN'
labTempVordergrundFarbe = 'WHITE'
GPIO.output(ledGreenPin, 1)
ledGreenStatus = 1
GPIO.output(ledBluePin, 0)
ledBlueStatus = 0
GPIO.output(ledRedPin, 0)
ledRedStatus = 0
else:
if (Threadbeenden is True):
break
labTempHintergrundFarbe = 'RED'
labTempVordergrundFarbe = 'WHITE'
GPIO.output(ledGreenPin, 0)
ledGreenStatus = 0
GPIO.output(ledBluePin, 0)
ledBlueStatus = 0
GPIO.output(ledRedPin, 1)
ledRedStatus = 1
if Luftfeuchtigkeit < int(minimumGruenerBereichLuftfeuchtigkeit):
if (Threadbeenden is True):
break
labLuftHintergrundFarbe = 'BLUE'
labLuftVordergrundFarbe = 'WHITE'
elif (Luftfeuchtigkeit >= int(minimumGruenerBereichLuftfeuchtigkeit)) and (Luftfeuchtigkeit <= int(maximalGruenerBereichLuftfeuchtigkeit)):
if (Threadbeenden is True):
break
labLuftHintergrundFarbe = 'GREEN'
labLuftVordergrundFarbe = 'WHITE'
else:
if (Threadbeenden is True):
break
labLuftHintergrundFarbe = 'RED'
labLuftVordergrundFarbe = 'WHITE'
time.sleep(1.0)
templateData = {
'ledRed' : ledRedStatus,
'ledBlue' : ledBlueStatus,
'ledGreen' : ledGreenStatus,
'buttonStart' : buttonStartStatus,
'buttonStop' : buttonStopStatus,
'temperatur' : Temperatur,
'luftfeuchtigkeit' : Luftfeuchtigkeit,
'labTempHF' : labTempHintergrundFarbe,
'labTempVF' : labTempVordergrundFarbe,
'labLuftHF' : labLuftHintergrundFarbe,
'labLuftVF' : labLuftVordergrundFarbe
}
render_template('index.html', title='Home', **templateData)
return render_template('index.html', title='Home', **templateData)
if devicename == 'stop':
Threadbeenden = True
ledRedStatus = 0
ledBlueStatus = 0
ledGreenStatus = 0
buttonStartStatus = ButtonEnabeln()
buttonStopStatus = ButtonDisabeln()
Temperatur = '--°C'
Luftfeuchtigkeit = '%'
labLuftHintergrundFarbe = 'WHITE'
labLuftVordergrundFarbe = 'BLACK'
labTempHintergrundFarbe = 'WHITE'
labTempVordergrundFarbe = 'BLACK'
GPIO.output(ledGreenPin, 0)
GPIO.output(ledBluePin, 0)
GPIO.output(ledRedPin, 0)
templateData = {
'ledRed' : ledRedStatus,
'ledBlue' : ledBlueStatus,
'ledGreen' : ledGreenStatus,
'buttonStart' : buttonStartStatus,
'buttonStop' : buttonStopStatus,
'temperatur' : Temperatur,
'luftfeuchtigkeit' : Luftfeuchtigkeit,
'labTempHF' : labTempHintergrundFarbe,
'labTempVF' : labTempVordergrundFarbe,
'labLuftHF' : labLuftHintergrundFarbe,
'labLuftVF' : labLuftVordergrundFarbe
}
return render_template('index.html', title='Home', **templateData)
def ButtonEnabeln():
return 'active'
def ButtonDisabeln():
return 'disable'
目前没有回答
相关问题 更多 >
编程相关推荐