163 lines
4.8 KiB
JavaScript
163 lines
4.8 KiB
JavaScript
// Declare alle functies
|
|
// lege variabel kan nog ingevult worden
|
|
// getal is een float of int
|
|
// [] betekent array
|
|
let port;
|
|
let reader;
|
|
let decoder = new TextDecoder("utf-8");
|
|
let counterElement = document.getElementById("counter");
|
|
let readibleoutput = 0;
|
|
let xArray = [];
|
|
let tempArray = [];
|
|
let humidArray = [];
|
|
let lichtArray = [];
|
|
let humid = 0;
|
|
let licht = 0;
|
|
let TempAdvies;
|
|
let HumidAdvies;
|
|
let LichtAdvies;
|
|
let VolledigAdvies;
|
|
let Soort;
|
|
let Waardes;
|
|
let TempWaardes;
|
|
let LuchtVochtigsheidWaardes;
|
|
let LichtWaardes;
|
|
// Request a port and open a connection.
|
|
async function connect() {
|
|
//vraag aan de browser om een serial port te selecteren
|
|
port = await navigator.serial.requestPort();
|
|
await port.open({ baudRate: 9600 });
|
|
reader = port.readable.getReader();
|
|
console.log("Port is open!");
|
|
readLoop()
|
|
}
|
|
|
|
// Read data
|
|
async function readLoop() {
|
|
let buffer = [];
|
|
|
|
// loop until reader.cancel() is called
|
|
while (true) {
|
|
// Wait for data
|
|
const { value, done } = await reader.read();
|
|
|
|
|
|
for (let iByte = 0; iByte < value.length; iByte++) {
|
|
let singleByte = value[iByte];
|
|
//functie maken er van met boolean!!!
|
|
if (singleByte != 10) {
|
|
buffer.push(singleByte);
|
|
}
|
|
|
|
else {
|
|
let sensorString = decoder.decode(new Uint8Array(buffer));
|
|
let SensorValues;
|
|
|
|
//zet alle data in een json array
|
|
try {
|
|
SensorValues = JSON.parse(sensorString);
|
|
} catch (e) {
|
|
console.log("json niet geparserd");
|
|
}
|
|
|
|
if (SensorValues) {
|
|
console.log(SensorValues)
|
|
|
|
//zet alle data in een array
|
|
tempArray.push(SensorValues[0])
|
|
humidArray.push(SensorValues[1])
|
|
lichtArray.push(SensorValues[2])
|
|
|
|
|
|
|
|
}
|
|
|
|
buffer = [];
|
|
// var array = sensorString.split(','),
|
|
// temp = array[0], humid = array[1], licht = array[2];
|
|
// console.log(temp);
|
|
// console.log(humid);
|
|
// console.log(licht);
|
|
document.getElementById("temp").innerHTML = SensorValues[0];
|
|
document.getElementById("humid").innerHTML = SensorValues[1];
|
|
document.getElementById("licht").innerHTML = SensorValues[2];
|
|
plotly(tempGraph, tempArray)
|
|
plotly(humidGraph, humidArray)
|
|
plotly(lightGraph, lichtArray)
|
|
Advies(SensorValues[0], SensorValues[1], SensorValues[2])
|
|
|
|
VolledigAdvies = TempAdvies + HumidAdvies + LichtAdvies;
|
|
document.getElementById("Advies").innerHTML = VolledigAdvies;
|
|
|
|
}
|
|
|
|
// Show the received data in the console
|
|
|
|
// Exit the loop when done
|
|
if (done) {
|
|
console.log('[readLoop] DONE', done);
|
|
reader.releaseLock();
|
|
break;
|
|
}
|
|
}
|
|
|
|
}
|
|
}
|
|
|
|
// Sluit de poort
|
|
async function disconnect() {
|
|
await reader.cancel();
|
|
await port.close();
|
|
console.log("Port is closed!");
|
|
}
|
|
//plotly grafiek
|
|
function plotly(graph, dataArray) {
|
|
Plotly.newPlot(graph, [{
|
|
y: dataArray,
|
|
mode: 'lines',
|
|
line: { color: '#80CAF6' }
|
|
}]);
|
|
}
|
|
|
|
//eigen library maken voor serial
|
|
|
|
|
|
async function Advies(TempWaardes, LuchtVochtigsheidWaardes, LichtWaardes) {
|
|
|
|
|
|
if (TempWaardes = -10 < 0) {
|
|
// document.getElementById("TempAdvies").innerHTML = "Ga naar binnen of trek een dikke jas aan. Het is vriest!";
|
|
TempAdvies = "Ga naar binnen of trek een dikke jas aan. Het is vriest!"
|
|
}
|
|
if (TempWaardes = 0 < 10) {
|
|
// document.getElementById("TempAdvies").innerHTML = "Het is redelijk koud, pak een jas";
|
|
TempAdvies = "Het is redelijk koud, pak een jas.";
|
|
}
|
|
if (TempWaardes = 10 < 20) {
|
|
TempAdvies = "Je kan zonder jas rondlopen. Een hoodie zou perfect zijn.";
|
|
}
|
|
if (TempWaardes = 20 < 35) {
|
|
TempAdvies = "Het is lekker warm je kan in een shirt rondlopen.";
|
|
}
|
|
|
|
if (LuchtVochtigsheidWaardes = 0 < 10) {
|
|
HumidAdvies = "De lucht is kurkdroog."
|
|
}
|
|
if (LuchtVochtigsheidWaardes = 10 < 50) {
|
|
HumidAdvies = "De lucht voelt normaal aan."
|
|
}
|
|
if (LuchtVochtigsheidWaardes = 50 < 75) {
|
|
HumidAdvies = "De lucht voelt wat vochtig aan."
|
|
}
|
|
if (LuchtVochtigsheidWaardes = 75 < 100) {
|
|
HumidAdvies = "De lucht voelt heel vochtig aan."
|
|
}
|
|
|
|
if (LichtWaardes = 0 < 400) {
|
|
LichtAdvies = "Zet het licht aan holbewoner."
|
|
}
|
|
|
|
|
|
|
|
}
|