From 0b079798cd16e49764039c8b0555a78e054977a8 Mon Sep 17 00:00:00 2001 From: Sam Hos Date: Fri, 29 Mar 2024 14:38:01 +0100 Subject: [PATCH] added script + image --- web/newWebsite/arrow.png | Bin 0 -> 22829 bytes web/newWebsite/index.html | 4 +- web/newWebsite/liveGraph.js | 85 ++++++++++++++++++++++++++++++++++++ 3 files changed, 88 insertions(+), 1 deletion(-) create mode 100644 web/newWebsite/arrow.png create mode 100644 web/newWebsite/liveGraph.js diff --git a/web/newWebsite/arrow.png b/web/newWebsite/arrow.png new file mode 100644 index 0000000000000000000000000000000000000000..600ce568d81dcd1e4306fbbcf84b03dac72315c2 GIT binary patch literal 22829 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 bpk}Y2va+75Y|JZ|lt)~g-1pWvgq{8mFkxU% literal 0 HcmV?d00001 diff --git a/web/newWebsite/index.html b/web/newWebsite/index.html index 2519ffb..52122e5 100644 --- a/web/newWebsite/index.html +++ b/web/newWebsite/index.html @@ -27,7 +27,9 @@ - + + + \ No newline at end of file diff --git a/web/newWebsite/liveGraph.js b/web/newWebsite/liveGraph.js new file mode 100644 index 0000000..e2aac1d --- /dev/null +++ b/web/newWebsite/liveGraph.js @@ -0,0 +1,85 @@ +class liveGraph { + // Constructor to initialize the graph + constructor(id) { + this.timeArray = []; + this.tempArray = []; + this.humiArray = []; + this.eco2Array = []; + this.tvocArray = []; + this.cnt = 0; + this.nodeId = "liveGraph" + id; + } + // Fuction to create a graph + makeGraph() { + // Create a new line for temperature + Plotly.plot(this.nodeId, [ + { + x: this.timeArray, // Use timeArray as x values + y: this.tempArray, + mode: "lines", + line: { color: "#FF0000" }, + name: "Temperature", + }, + ]); + // Create a new line for humidity + Plotly.plot(this.nodeId, [ + { + x: this.timeArray, // Use timeArray as x values + y: this.humiArray, + mode: "lines", + line: { color: "#80CAF6" }, + name: "Humidity", + }, + ]); + // Create a new line for eCO2 + Plotly.plot(this.nodeId, [ + { + x: this.timeArray, // Use timeArray as x values + y: this.eco2Array, + mode: "lines", + line: { color: "#FFA500" }, + name: "eCO2 / 10", + }, + ]); + // Create a new line for TVOC + Plotly.plot(this.nodeId, [ + { + x: this.timeArray, // Use timeArray as x values + y: this.tvocArray, + mode: "lines", + line: { color: "#000000" }, + name: "TVOC / 10", + }, + ]); + } + + // Function to update the graph with new values got from updateData function + updateGraph() { + let time = new Date(); + this.timeArray.push(new Date()); + + let update = { + x: [[this.timeArray]], + y: [[this.tempArray], [this.humiArray], [this.eco2Array], [this.tvocArray]] + }; + + let olderTime = time.setMinutes(time.getMinutes() - 1); + let futureTime = time.setMinutes(time.getMinutes() + 1); + let minuteView = { + xaxis: { + type: "date", + range: [olderTime, futureTime], + }, + }; + Plotly.relayout(this.nodeId, minuteView); + if (this.cnt === 10) clearInterval(interval); + } + // function to get the new data for graph + updateData(temperature, humidity, eCO2, TVOC) { + // Update the graph + this.tempArray.push(temperature); + this.humiArray.push(humidity); + this.eco2Array.push(eCO2 / 10); + this.tvocArray.push(TVOC / 10); + } + } \ No newline at end of file