fixed website and microcontroller
This commit is contained in:
parent
b760962101
commit
c3953d7523
|
@ -274,14 +274,16 @@ void cekKegagalan() {
|
||||||
for (int i = 0; i < dataPengujian.length(); i++) {
|
for (int i = 0; i < dataPengujian.length(); i++) {
|
||||||
int epochTime = (int) dataPengujian[i]["created_time"];
|
int epochTime = (int) dataPengujian[i]["created_time"];
|
||||||
int epochTimeDiff = epochTime - epochTimeAwal;
|
int epochTimeDiff = epochTime - epochTimeAwal;
|
||||||
int jam = epochTimeDiff / 3600;
|
int lamaJam = epochTimeDiff / 3600;
|
||||||
|
|
||||||
float kadarGas = (double) dataPengujian[i]["kadar_gas"];
|
float kadarGas = (double) dataPengujian[i]["kadar_gas"];
|
||||||
float regresiKadarGas = 0.0025 * pow(jam, 2.0) - 0.0397 * jam - 0.1222;
|
float regresiKadarGas = 0.0025 * pow(lamaJam, 2.0) - 0.0397 * lamaJam - 0.1222;
|
||||||
float nilaiPerempat = regresiKadarGas / 4.0;
|
float nilaiPerempat = regresiKadarGas / 4.0;
|
||||||
|
|
||||||
if (kadarGas > (regresiKadarGas + nilaiPerempat) || kadarGas < (regresiKadarGas - nilaiPerempat)) {
|
if (lamaJam > 12) {
|
||||||
status = "Gagal";
|
if (kadarGas > (regresiKadarGas + nilaiPerempat) || kadarGas < (regresiKadarGas - nilaiPerempat)) {
|
||||||
|
status = "Gagal";
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -86,7 +86,7 @@ export default function (props: JSX.HTMLAttributes<HTMLDivElement>) {
|
||||||
.limit(1);
|
.limit(1);
|
||||||
setTimeout(() => {
|
setTimeout(() => {
|
||||||
res(data);
|
res(data);
|
||||||
}, 5000);
|
}, 10000);
|
||||||
});
|
});
|
||||||
|
|
||||||
const { data: lastData2 } = await supabase
|
const { data: lastData2 } = await supabase
|
||||||
|
@ -95,11 +95,13 @@ export default function (props: JSX.HTMLAttributes<HTMLDivElement>) {
|
||||||
.order("created_time", { ascending: false })
|
.order("created_time", { ascending: false })
|
||||||
.limit(1);
|
.limit(1);
|
||||||
|
|
||||||
if (lastData1![0].created_time == lastData2![0].created_time) {
|
if (lastHistori()?.selesai) {
|
||||||
alert("Device offline!");
|
if (lastData1![0].created_time == lastData2![0].created_time) {
|
||||||
|
alert("Device offline!");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// await checkStatusDevice();
|
await checkStatusDevice();
|
||||||
};
|
};
|
||||||
|
|
||||||
onMount(async () => {
|
onMount(async () => {
|
||||||
|
|
|
@ -29,14 +29,19 @@ export default function () {
|
||||||
Menampilkan hasil fermentasi yang telah dilakukan.
|
Menampilkan hasil fermentasi yang telah dilakukan.
|
||||||
</p>
|
</p>
|
||||||
<Table
|
<Table
|
||||||
headers={["Tanggal", "Lama Fermentasi", "Rentang Suhu", "Status"]}
|
headers={[
|
||||||
|
"Tanggal",
|
||||||
|
"Lama Fermentasi" /*, "Rentang Suhu"*/,
|
||||||
|
"Status",
|
||||||
|
]}
|
||||||
items={items().map((item) => [
|
items={items().map((item) => [
|
||||||
getDates(item.created_at),
|
getDates(item.created_at),
|
||||||
Math.round((item.waktu_akhir - item.waktu_awal) / 3600) + " Jam",
|
Math.round((item.waktu_akhir - item.waktu_awal) / 3600) + " Jam",
|
||||||
item.rentang_suhu + " C",
|
// item.rentang_suhu + " C",
|
||||||
<span
|
<span
|
||||||
class={
|
class={
|
||||||
"uppercase " + item.berhasil ? "text-green-500" : "text-red-500"
|
"uppercase " +
|
||||||
|
(item.berhasil ? "text-green-500" : "text-red-500")
|
||||||
}
|
}
|
||||||
>
|
>
|
||||||
{item.berhasil ? "SUKSES" : "GAGAL"}
|
{item.berhasil ? "SUKSES" : "GAGAL"}
|
||||||
|
|
|
@ -4,6 +4,7 @@ import EyeDropperIcon from "../icons/EyeDropperIcon";
|
||||||
import { Chart, registerables } from "chart.js";
|
import { Chart, registerables } from "chart.js";
|
||||||
import supabase from "../utils/supabase";
|
import supabase from "../utils/supabase";
|
||||||
import { getTimes } from "../utils/dates";
|
import { getTimes } from "../utils/dates";
|
||||||
|
import { Histori } from "../types/Histori";
|
||||||
|
|
||||||
export default function () {
|
export default function () {
|
||||||
let canvas: any;
|
let canvas: any;
|
||||||
|
@ -13,6 +14,21 @@ export default function () {
|
||||||
const [kadarGas, setKadarGas] = createSignal<number[]>([]);
|
const [kadarGas, setKadarGas] = createSignal<number[]>([]);
|
||||||
const [timeStamps, setTimeStamps] = createSignal<any[]>([]);
|
const [timeStamps, setTimeStamps] = createSignal<any[]>([]);
|
||||||
|
|
||||||
|
const [lastHistori, setLastHistori] = createSignal<Histori | null>(null);
|
||||||
|
|
||||||
|
const getLastHistori = async () => {
|
||||||
|
const { data } = await supabase
|
||||||
|
.from("histori_fermentasi")
|
||||||
|
.select("*")
|
||||||
|
.limit(1)
|
||||||
|
.eq("selesai", false)
|
||||||
|
.order("created_at", { ascending: false });
|
||||||
|
|
||||||
|
if (!!data) {
|
||||||
|
setLastHistori(data[0]);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
const getData = async () => {
|
const getData = async () => {
|
||||||
const { data } = await supabase
|
const { data } = await supabase
|
||||||
.from("kondisi_tapai")
|
.from("kondisi_tapai")
|
||||||
|
@ -107,12 +123,14 @@ export default function () {
|
||||||
|
|
||||||
setTimeout(async () => {
|
setTimeout(async () => {
|
||||||
await renderChart();
|
await renderChart();
|
||||||
}, 1000);
|
await getLastHistori();
|
||||||
|
}, 4000);
|
||||||
};
|
};
|
||||||
|
|
||||||
onMount(async () => {
|
onMount(async () => {
|
||||||
Chart.register(...registerables);
|
Chart.register(...registerables);
|
||||||
renderChart();
|
await renderChart();
|
||||||
|
await getLastHistori();
|
||||||
});
|
});
|
||||||
|
|
||||||
return (
|
return (
|
||||||
|
@ -129,8 +147,23 @@ export default function () {
|
||||||
</Show>
|
</Show>
|
||||||
<div class={"space-y-5" + (kadarGas().length > 0 ? "" : "hidden")}>
|
<div class={"space-y-5" + (kadarGas().length > 0 ? "" : "hidden")}>
|
||||||
<div class="flex flex-wrap gap-5">
|
<div class="flex flex-wrap gap-5">
|
||||||
<div class="bg-red-500 lg:w-1/2 w-full h-52 rounded shadow text-white flex items-center justify-center">
|
<div
|
||||||
<div class="uppercase text-3xl">belum matang</div>
|
class={
|
||||||
|
(lastHistori()?.selesai == false
|
||||||
|
? lastHistori()?.berhasil
|
||||||
|
? "bg-green-500"
|
||||||
|
: "bg-red-500"
|
||||||
|
: "bg-orange-500") +
|
||||||
|
" lg:w-1/2 w-full h-52 rounded shadow text-white flex items-center justify-center"
|
||||||
|
}
|
||||||
|
>
|
||||||
|
<div class="uppercase text-3xl">
|
||||||
|
{lastHistori()?.selesai == false
|
||||||
|
? lastHistori()?.berhasil
|
||||||
|
? "Matang"
|
||||||
|
: "Gagal"
|
||||||
|
: "Menunggu"}
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="grid grid-cols-2 grow gap-5 ">
|
<div class="grid grid-cols-2 grow gap-5 ">
|
||||||
<div class="bg-white rounded shadow min-h-24 flex flex-col items-center justify-center py-8">
|
<div class="bg-white rounded shadow min-h-24 flex flex-col items-center justify-center py-8">
|
||||||
|
|
Loading…
Reference in New Issue