2023-12-13 16:32:12 +00:00
|
|
|
<!DOCTYPE html>
|
|
|
|
<html>
|
2023-12-18 13:49:09 +00:00
|
|
|
<meta charset="UTF-8" />
|
2023-12-14 18:27:07 +00:00
|
|
|
<head>
|
|
|
|
<title>therminator</title>
|
2023-12-15 22:15:54 +00:00
|
|
|
<link rel="stylesheet" type="text/css" href="/style.css" />
|
2023-12-24 17:23:51 +00:00
|
|
|
<link rel="icon" type="image/x-icon" href="/favicon.ico" />
|
2023-12-14 18:27:07 +00:00
|
|
|
</head>
|
|
|
|
<body>
|
|
|
|
<script src="https://cdn.jsdelivr.net/npm/chart.js"></script>
|
2023-12-24 17:23:51 +00:00
|
|
|
<div id="lightbox">
|
|
|
|
<div id="credits">
|
|
|
|
<span id="closebtn" onclick="hideCredits()">[X]</span>
|
|
|
|
<img src="favicon.ico" />
|
|
|
|
<h1>/* therminator */</h1>
|
|
|
|
<h3>a modular ESP8266/ESP32+MAX31855 logging thermometer</h3>
|
|
|
|
<br />
|
|
|
|
<p>
|
|
|
|
licensed under the MIT license copyright (c) 2023
|
|
|
|
<a href="https://huskee.gay">huskee</a>
|
|
|
|
</p>
|
|
|
|
<br />
|
|
|
|
<p>
|
|
|
|
huge thanks to azisi from
|
|
|
|
<a href="https://hackerspace.gr">hackerspace.gr</a> for the idea ❤️
|
|
|
|
</p>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
|
|
|
|
<h1 style="user-select: none" onclick="showCredits()">/* therminator */</h1>
|
2023-12-15 22:15:54 +00:00
|
|
|
<p>last sensor update: <span id="time"></span></p>
|
2023-12-19 20:45:27 +00:00
|
|
|
<div id="du">
|
|
|
|
<p>current data update interval (ms): <span id="updInt"></span></p>
|
|
|
|
<p>
|
|
|
|
set data update interval (ms):
|
2023-12-23 17:49:32 +00:00
|
|
|
<select id="upd" onchange="setUpdateInterval();">
|
2023-12-19 20:45:27 +00:00
|
|
|
<option>100</option>
|
|
|
|
<option>200</option>
|
|
|
|
<option selected>500</option>
|
|
|
|
<option>1000</option>
|
2023-12-23 23:24:04 +00:00
|
|
|
<option>2000</option>
|
|
|
|
<option>5000</option>
|
|
|
|
<option>10000</option>
|
2023-12-19 20:45:27 +00:00
|
|
|
</select>
|
|
|
|
</p>
|
|
|
|
</div>
|
|
|
|
<div id="cu">
|
|
|
|
<p>current chart update interval (ms): <span id="cupdInt"></span></p>
|
|
|
|
<p>
|
|
|
|
set chart update interval (ms):
|
2023-12-23 17:49:32 +00:00
|
|
|
<select id="chartUpd" onchange="location.reload()">
|
2023-12-19 20:45:27 +00:00
|
|
|
<option>200</option>
|
2023-12-23 23:24:04 +00:00
|
|
|
<option>500</option>
|
|
|
|
<option selected>1000</option>
|
|
|
|
<option>2000</option>
|
|
|
|
<option>5000</option>
|
2023-12-19 20:45:27 +00:00
|
|
|
</select>
|
|
|
|
</p>
|
|
|
|
</div>
|
|
|
|
<br />
|
2023-12-23 17:49:32 +00:00
|
|
|
<div id="record">
|
|
|
|
<button id="startRec" onclick="startRecording()">Start recording</button>
|
|
|
|
<button id="stopRec" onclick="stopRecording()">Stop recording</button>
|
|
|
|
<span id="recInfo"
|
|
|
|
><svg class="blinking" width="20px" height="20px">
|
|
|
|
<circle cx="10" cy="10" r="7" fill="red" />
|
|
|
|
Sorry, your browser does not support inline SVG.
|
|
|
|
</svg>
|
2023-12-23 23:24:04 +00:00
|
|
|
<p>Recording CSV data to <span id="filename"></span></p></span
|
2023-12-24 17:23:51 +00:00
|
|
|
><span id="timeLeft">Time left: <span id="timeLeftCtr"></span></span>
|
2023-12-23 17:49:32 +00:00
|
|
|
</div>
|
|
|
|
<div id="timedCheck">
|
|
|
|
<input type="checkbox" id="timedRec" /><label for="timedRec"
|
|
|
|
>Timed recording</label
|
|
|
|
>
|
|
|
|
</div>
|
|
|
|
<span id="timedSettings">
|
|
|
|
<label for="timer">Stop recording after (min): </label
|
|
|
|
><input type="text" id="timer" />
|
2023-12-23 23:24:04 +00:00
|
|
|
</span>
|
2023-12-19 20:45:27 +00:00
|
|
|
<table>
|
|
|
|
<tr>
|
|
|
|
<td class="chart-container">
|
2023-12-23 17:49:32 +00:00
|
|
|
<h2>Channel A <span id="error-tempA"></span></h2>
|
2023-12-19 20:45:27 +00:00
|
|
|
<label for="labelA">label: </label
|
|
|
|
><input type="text" value="tempA" id="labelA" />
|
|
|
|
<canvas id="chartA"></canvas>
|
|
|
|
</td>
|
|
|
|
<td class="chart-container">
|
2023-12-23 17:49:32 +00:00
|
|
|
<h2>Channel B <span id="error-tempB"></span></h2>
|
2023-12-19 20:45:27 +00:00
|
|
|
<label for="labelB">label: </label
|
|
|
|
><input type="text" value="tempB" id="labelB" />
|
|
|
|
<canvas id="chartB"></canvas>
|
|
|
|
</td>
|
|
|
|
</tr>
|
2023-12-24 17:23:51 +00:00
|
|
|
<tr>
|
|
|
|
<td class="chart-container">
|
|
|
|
<h2>Channel C <span id="error-tempC"></span></h2>
|
|
|
|
<label for="labelC">label: </label
|
|
|
|
><input type="text" value="tempC" id="labelC" />
|
|
|
|
<canvas id="chartC"></canvas>
|
|
|
|
</td>
|
|
|
|
<td class="chart-container">
|
|
|
|
<h2>Channel D <span id="error-tempD"></span></h2>
|
|
|
|
<label for="labelD">label: </label
|
|
|
|
><input type="text" value="tempD" id="labelD" />
|
|
|
|
<canvas id="chartD"></canvas>
|
|
|
|
</td>
|
|
|
|
</tr>
|
|
|
|
<tr>
|
|
|
|
<td class="chart-container">
|
|
|
|
<h2>Channel E <span id="error-tempE"></span></h2>
|
|
|
|
<label for="labelE">label: </label
|
|
|
|
><input type="text" value="tempE" id="labelE" />
|
|
|
|
<canvas id="chartE"></canvas>
|
|
|
|
</td>
|
|
|
|
<td class="chart-container">
|
|
|
|
<h2>Channel F <span id="error-tempF"></span></h2>
|
|
|
|
<label for="labelF">label: </label
|
|
|
|
><input type="text" value="tempF" id="labelF" />
|
|
|
|
<canvas id="chartF"></canvas>
|
|
|
|
</td>
|
|
|
|
</tr>
|
|
|
|
<tr id="chanGH">
|
|
|
|
<td class="chart-container">
|
|
|
|
<h2>Channel G <span id="error-tempG"></span></h2>
|
|
|
|
<label for="labelG">label: </label
|
|
|
|
><input type="text" value="tempG" id="labelG" />
|
|
|
|
<canvas id="chartG"></canvas>
|
|
|
|
</td>
|
|
|
|
<td class="chart-container">
|
|
|
|
<h2>Channel H <span id="error-tempH"></span></h2>
|
|
|
|
<label for="labelH">label: </label
|
|
|
|
><input type="text" value="tempH" id="labelH" />
|
|
|
|
<canvas id="chartH"></canvas>
|
|
|
|
</td>
|
|
|
|
</tr>
|
2023-12-19 20:45:27 +00:00
|
|
|
</table>
|
2023-12-14 18:27:07 +00:00
|
|
|
<script src="script.js"></script>
|
|
|
|
</body>
|
|
|
|
</html>
|