fout met vorige commit
This commit is contained in:
43
dht11.py
43
dht11.py
@@ -4,6 +4,7 @@ import board
|
||||
import RPi.GPIO as GPIO
|
||||
import http.server
|
||||
import threading
|
||||
import json
|
||||
|
||||
sensor = adafruit_dht.DHT11(board.D6)
|
||||
LED_PIN = 21
|
||||
@@ -13,20 +14,36 @@ GPIO.setmode(GPIO.BCM)
|
||||
GPIO.setup(LED_PIN, GPIO.OUT)
|
||||
GPIO.setup(FAN_PIN, GPIO.OUT)
|
||||
|
||||
sensor_data = {
|
||||
'tempc': 0.0,
|
||||
'tempf': 0.0,
|
||||
'humidity': 0.0,
|
||||
'led': False,
|
||||
'fan': False
|
||||
}
|
||||
|
||||
def check_data():
|
||||
while True:
|
||||
try:
|
||||
temperatuur_C = sensor.temperature
|
||||
temperatuur_F = temperatuur_C * (9/5) + 32
|
||||
humidity = sensor.humidity
|
||||
sensor_data['tempc'] = temperatuur_C
|
||||
sensor_data['tempf'] = temperatuur_F
|
||||
sensor_data['humidity'] = humidity
|
||||
except RuntimeError as err:
|
||||
print(err.args[0])
|
||||
if temperatuur_C > 20:
|
||||
GPIO.output(LED_PIN, GPIO.HIGH)
|
||||
GPIO.output(FAN_PIN, GPIO.HIGH)
|
||||
sensor_data['led'] = True
|
||||
sensor_data['fan'] = True
|
||||
else:
|
||||
GPIO.output(LED_PIN, GPIO.LOW)
|
||||
GPIO.output(FAN_PIN, GPIO.LOW)
|
||||
sensor_data['led'] = False
|
||||
sensor_data['fan'] = False
|
||||
|
||||
|
||||
class handler_class(http.server.BaseHTTPRequestHandler):
|
||||
def do_GET (self):
|
||||
@@ -35,7 +52,7 @@ class handler_class(http.server.BaseHTTPRequestHandler):
|
||||
self.send_header('Content-type', 'text/html; charset=utf-8')
|
||||
self.end_headers()
|
||||
website = """
|
||||
<DOCTYPE html>
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<title>IOT DHT11 sensor status<title>
|
||||
@@ -46,7 +63,31 @@ class handler_class(http.server.BaseHTTPRequestHandler):
|
||||
<p>Temp_C = <span id="tempc">--</span>C</p>
|
||||
<p>Temp_F = <span id="tempf">--</span>F</p>
|
||||
<p>humidity = <span id="humid">--</span>%</p>
|
||||
<p>LED = <span id="led">UIT</span></p>
|
||||
<p>FAN = <span id="fan">UIT</span></p>
|
||||
<script>
|
||||
setInterval(() => {
|
||||
fetch('/data')
|
||||
.then(res => res.json())
|
||||
.then(data => {
|
||||
document.getElementById('tempc').textContent = data.tempc.toFixed(1);
|
||||
document.getElementById('tempf').textContent = data.tempf.toFixed(1);
|
||||
document.getElementById('humidity').textContent = data.humid.toFixed(1);
|
||||
document.getElementById('led').textContent = data.led ? 'AAN' : 'UIT';
|
||||
document.getElementById('fan').textContent = data.fan ? 'AAN' : 'UIT';
|
||||
});
|
||||
}, 1000);
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
"""
|
||||
self.wfile.write(website.encode())
|
||||
elif self.path == '/data':
|
||||
self.send_response(200)
|
||||
self.send_header('Content-type', 'application/json')
|
||||
self.end_headers()
|
||||
self.wfile.write(json.dumps(sensor_data).encode())
|
||||
|
||||
def web_server():
|
||||
web_binding = ('', 8000)
|
||||
server = http.server.HTTPServer(web_binding, handler_class)
|
||||
|
||||
Reference in New Issue
Block a user