display temp from ttyACM0
This commit is contained in:
parent
8a35a4027b
commit
49c6460303
25
main.js
25
main.js
@ -4,15 +4,30 @@ var gauge = document.getElementById('temp-gauge');
|
||||
// Randomly add a data point every 500ms
|
||||
var random = new TimeSeries();
|
||||
setInterval(function() {
|
||||
var nr = Math.random() * 100;
|
||||
random.append(new Date().getTime(), nr);
|
||||
gauge.dataset.value = nr;
|
||||
fetch("/temps.json").then(function (resp) {
|
||||
return resp.json();
|
||||
}).then(function (resp) {
|
||||
console.log(resp)
|
||||
var nr = Math.random() * 100;
|
||||
nr = resp.pop()
|
||||
random.append(new Date().getTime(), nr);
|
||||
gauge.dataset.value = nr;
|
||||
});
|
||||
}, 500);
|
||||
|
||||
function createTimeline() {
|
||||
var chart = new SmoothieChart();
|
||||
chart.addTimeSeries(random, { strokeStyle: 'rgba(0, 255, 0, 1)', fillStyle: 'rgba(0, 255, 0, 0.2)', lineWidth: 4 });
|
||||
var chart = new SmoothieChart({grid:{fillStyle:'transparent'}});
|
||||
chart.addTimeSeries(random, { strokeStyle: 'rgba(0, 0, 0, 1)', fillStyle: 'rgba(0, 0, 0, 0.1)', lineWidth: 4 });
|
||||
chart.streamTo(document.getElementById("chart"), 500);
|
||||
}
|
||||
|
||||
fetch("/temps.json").then(function (resp) {
|
||||
return resp.json();
|
||||
}).then(function (resp) {
|
||||
console.log(resp)
|
||||
for (val of resp) {
|
||||
random.append(new Date().getTime(), val)
|
||||
}
|
||||
});
|
||||
|
||||
createTimeline();
|
||||
|
27
main.py
27
main.py
@ -35,6 +35,8 @@ from html import escape as html_escape
|
||||
from collections import deque
|
||||
from urllib.parse import parse_qs
|
||||
|
||||
import serial
|
||||
|
||||
max_nr_messages = 25
|
||||
|
||||
html = """<!DOCTYPE html>
|
||||
@ -101,6 +103,18 @@ html = """<!DOCTYPE html>
|
||||
</html>
|
||||
"""
|
||||
|
||||
|
||||
temps = deque(maxlen=10)
|
||||
|
||||
def stream(dev):
|
||||
with serial.Serial(dev, timeout=1) as s:
|
||||
while True:
|
||||
temperature = s.readline().decode().strip()
|
||||
print("temperature", temperature)
|
||||
temps.append(temperature)
|
||||
|
||||
|
||||
|
||||
def application(env, start_response):
|
||||
|
||||
if env["REQUEST_METHOD"] == "POST":
|
||||
@ -132,7 +146,9 @@ def application(env, start_response):
|
||||
messages.appendleft(html_escape(message.strip()))
|
||||
#start_response("200 OK", [('Content-Type', 'application/json')])
|
||||
|
||||
|
||||
if env["PATH_INFO"] == "/temps.json":
|
||||
start_response('200 OK', [('Content-Type', 'application/json')])
|
||||
return [json.dumps(list(temps)).encode()]
|
||||
|
||||
if env["PATH_INFO"] == "/favicon.ico":
|
||||
start_response('200 OK', [('Content-Type', 'image/x-icon')])
|
||||
@ -158,6 +174,15 @@ def application(env, start_response):
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
import threading
|
||||
t = threading.Thread(target=stream, args=["/dev/ttyACM0"])
|
||||
|
||||
# classifying as a daemon, so they will die when the main dies
|
||||
t.daemon = True
|
||||
|
||||
# begins, must come after daemon definition
|
||||
t.start()
|
||||
|
||||
from wsgiref.simple_server import make_server
|
||||
|
||||
httpd = make_server('0.0.0.0', 8080, application)
|
||||
|
Loading…
Reference in New Issue
Block a user