From 5d2c845a263e7acfbb41c517c02f74ce859a477f Mon Sep 17 00:00:00 2001 From: Muhammad Izza Alfiansyah Date: Sat, 11 May 2024 12:54:33 +0700 Subject: [PATCH] add checking system running or not --- .../sketch_apr22a/sketch_apr22a.ino | 59 +++++++++++----- microdebugging/microdebugging.ino | 67 +++++++++++++------ website/src/App.tsx | 4 +- 3 files changed, 92 insertions(+), 38 deletions(-) diff --git a/microcontroller/sketch_apr22a/sketch_apr22a.ino b/microcontroller/sketch_apr22a/sketch_apr22a.ino index 83e9031..a2a69e5 100644 --- a/microcontroller/sketch_apr22a/sketch_apr22a.ino +++ b/microcontroller/sketch_apr22a/sketch_apr22a.ino @@ -34,6 +34,7 @@ bool pengujian; float kadarGasVoltase; String status = "Menunggu"; JSONVar dataPengujian; +JSONVar pengaturan; void setup(){ pinMode(MQPIN, INPUT); @@ -81,8 +82,27 @@ void setup(){ } void loop(){ + getPengaturan(); timeClient.update(); + bool running = (bool) pengaturan[0]["running"]; + + if (running) { + runFermentasi(); + } else { + lcd.clear(); + lcd.setCursor(0, 0); + lcd.print("Aku siap!"); + delay(1000); + + lcd.clear(); + lcd.setCursor(7, 1); + lcd.print("Aku siap!"); + delay(1000); + } +} + +void runFermentasi() { // mendapatkan nilai kadar gas float kadarGas = getKadarGas(); kadarGasVoltase = kadarGas / 4095.0 * 3.3; @@ -205,9 +225,13 @@ float getPersentaseKadarGas(float voltase) { return hasil; } +void getPengaturan() { + String dataJson = db.from("pengaturan").select("*").limit(1).doSelect(); + JSONVar data = JSON.parse(dataJson); + pengaturan = data; +} + void callUser(bool matang = true) { - String pengaturanJson = db.from("pengaturan").select("*").limit(1).doSelect(); - JSONVar pengaturan = JSON.parse(pengaturanJson); String web_url = pengaturan[0]["web_url"]; String text; @@ -243,26 +267,29 @@ void insertKondisiTapai() { // melakukan cek kematangan void cekKematangan() { - if (persentaseKadarGas >= 5.28) { - status = "Matang"; + // jika sudah lebih dari 3 * 6 jam (18 jam) + if (dataPengujian.length() > 3) { + if (persentaseKadarGas >= 5.28) { + status = "Matang"; - String dataAwalJson = db.from("kondisi_tapai").select("*").order("created_time", "asc", true).limit(1).doSelect(); - String dataAkhirJson = db.from("kondisi_tapai").select("*").order("created_time", "desc", true).limit(1).doSelect(); + String dataAwalJson = db.from("kondisi_tapai").select("*").order("created_time", "asc", true).limit(1).doSelect(); + String dataAkhirJson = db.from("kondisi_tapai").select("*").order("created_time", "desc", true).limit(1).doSelect(); - JSONVar dataAwal = JSON.parse(dataAwalJson); - JSONVar dataAkhir = JSON.parse(dataAkhirJson); + JSONVar dataAwal = JSON.parse(dataAwalJson); + JSONVar dataAkhir = JSON.parse(dataAkhirJson); - JSONVar req; - req["berhasil"] = true; - req["waktu_awal"] = (int) dataAwal[0]["created_time"]; - req["waktu_akhir"] = (int) dataAkhir[0]["created_time"]; + JSONVar req; + req["berhasil"] = true; + req["waktu_awal"] = (int) dataAwal[0]["created_time"]; + req["waktu_akhir"] = (int) dataAkhir[0]["created_time"]; - String json = JSON.stringify(req); + String json = JSON.stringify(req); - callUser(true); - db.insert("histori_fermentasi", json, false); + callUser(true); + db.insert("histori_fermentasi", json, false); - pengujian = true; + pengujian = true; + } } } diff --git a/microdebugging/microdebugging.ino b/microdebugging/microdebugging.ino index 4db9287..f1da9dd 100644 --- a/microdebugging/microdebugging.ino +++ b/microdebugging/microdebugging.ino @@ -2,8 +2,8 @@ #include #include // #include -#include -#include +// #include +// #include // #include // #include // #include @@ -33,7 +33,8 @@ float persentaseKadarGas; bool pengujian; float kadarGasVoltase; String status = "Menunggu"; -JSONVar dataPengujian; +// JSONVar dataPengujian; +// JSONVar pengaturan; void setup(){ pinMode(MQPIN, INPUT); @@ -74,15 +75,34 @@ void setup(){ // inisialisasi waktu // timeClient.begin(); - // inisialisasi supabase + // // inisialisasi supabase // db.begin(SUPABASE_URL, SUPABASE_ANON_KEY); // getDataPengujian(); } void loop(){ + // getPengaturan(); // timeClient.update(); + // bool running = (bool) pengaturan[0]["running"]; + + // if (running) { + runFermentasi(); + // } else { + // lcd.clear(); + // lcd.setCursor(0, 0); + // lcd.print("Aku siap!"); + // delay(1000); + + // lcd.clear(); + // lcd.setCursor(7, 1); + // lcd.print("Aku siap!"); + // delay(1000); + // } +} + +void runFermentasi() { // mendapatkan nilai kadar gas float kadarGas = getKadarGas(); kadarGasVoltase = kadarGas / 4095.0 * 3.3; @@ -207,9 +227,13 @@ float getPersentaseKadarGas(float voltase) { return hasil; } +// void getPengaturan() { +// String dataJson = db.from("pengaturan").select("*").limit(1).doSelect(); +// JSONVar data = JSON.parse(dataJson); +// pengaturan = data; +// } + // void callUser(bool matang = true) { -// String pengaturanJson = db.from("pengaturan").select("*").limit(1).doSelect(); -// JSONVar pengaturan = JSON.parse(pengaturanJson); // String web_url = pengaturan[0]["web_url"]; // String text; @@ -245,26 +269,29 @@ float getPersentaseKadarGas(float voltase) { // // melakukan cek kematangan // void cekKematangan() { -// if (persentaseKadarGas >= 5.28) { -// status = "Matang"; +// // jika sudah lebih dari 3 * 6 jam (18 jam) +// if (dataPengujian.length() > 3) { +// if (persentaseKadarGas >= 5.28) { +// status = "Matang"; -// String dataAwalJson = db.from("kondisi_tapai").select("*").order("created_time", "asc", true).limit(1).doSelect(); -// String dataAkhirJson = db.from("kondisi_tapai").select("*").order("created_time", "desc", true).limit(1).doSelect(); +// String dataAwalJson = db.from("kondisi_tapai").select("*").order("created_time", "asc", true).limit(1).doSelect(); +// String dataAkhirJson = db.from("kondisi_tapai").select("*").order("created_time", "desc", true).limit(1).doSelect(); -// JSONVar dataAwal = JSON.parse(dataAwalJson); -// JSONVar dataAkhir = JSON.parse(dataAkhirJson); +// JSONVar dataAwal = JSON.parse(dataAwalJson); +// JSONVar dataAkhir = JSON.parse(dataAkhirJson); -// JSONVar req; -// req["berhasil"] = true; -// req["waktu_awal"] = (int) dataAwal[0]["created_time"]; -// req["waktu_akhir"] = (int) dataAkhir[0]["created_time"]; +// JSONVar req; +// req["berhasil"] = true; +// req["waktu_awal"] = (int) dataAwal[0]["created_time"]; +// req["waktu_akhir"] = (int) dataAkhir[0]["created_time"]; -// String json = JSON.stringify(req); +// String json = JSON.stringify(req); -// callUser(true); -// db.insert("histori_fermentasi", json, false); +// callUser(true); +// db.insert("histori_fermentasi", json, false); -// pengujian = true; +// pengujian = true; +// } // } // } diff --git a/website/src/App.tsx b/website/src/App.tsx index c5526d0..f4f5090 100644 --- a/website/src/App.tsx +++ b/website/src/App.tsx @@ -123,6 +123,7 @@ export default function (props: JSX.HTMLAttributes) { } } else { setCanNavigate(true); + await checkStatusDevice(); } } }; @@ -132,9 +133,8 @@ export default function (props: JSX.HTMLAttributes) { }; onMount(async () => { - await checkPengaturan(); await getLastHistori(); - await checkStatusDevice(); + await checkPengaturan(); }); return (