update microcontroller code

This commit is contained in:
Muhammad Izza Alfiansyah 2024-05-21 06:21:11 +07:00
parent 5d2c845a26
commit 835b254c9a
2 changed files with 23 additions and 16 deletions

View File

@ -186,7 +186,6 @@ void runFermentasi() {
} else { } else {
digitalWrite(BUZZERPIN, HIGH); digitalWrite(BUZZERPIN, HIGH);
cekKematangan(); cekKematangan();
cekKegagalan();
insertKondisiTapai(); insertKondisiTapai();
} }
@ -262,14 +261,23 @@ void insertKondisiTapai() {
if (pengujian == true) { if (pengujian == true) {
getDataPengujian(); getDataPengujian();
cekKegagalan();
} }
} }
// melakukan cek kematangan // melakukan cek kematangan
void cekKematangan() { void cekKematangan() {
// jika sudah lebih dari 3 * 6 jam (18 jam) JSONVar dataPengujianAwal = dataPengujian[0];
if (dataPengujian.length() > 3) { int epochTimeAwal = (int) dataPengujianAwal["created_time"];
if (persentaseKadarGas >= 5.28) { int epochTimeSekarang = timeClient.getEpochTime();
int epochTimeDiff = epochTimeSekarang - epochTimeAwal;
int lamaJam = epochTimeDiff / 3600;
// jika sudah lebih dari 24 jam
if (lamaJam > 24) {
if (persentaseKadarGas >= 5.28 || lamaJam > 72) {
status = "Matang"; status = "Matang";
String dataAwalJson = db.from("kondisi_tapai").select("*").order("created_time", "asc", true).limit(1).doSelect(); String dataAwalJson = db.from("kondisi_tapai").select("*").order("created_time", "asc", true).limit(1).doSelect();
@ -297,20 +305,19 @@ void cekKematangan() {
void cekKegagalan() { void cekKegagalan() {
JSONVar dataPengujianAwal = dataPengujian[0]; JSONVar dataPengujianAwal = dataPengujian[0];
int epochTimeAwal = (int) dataPengujianAwal["created_time"]; int epochTimeAwal = (int) dataPengujianAwal["created_time"];
int epochTimeSekarang = timeClient.getEpochTime();
for (int i = 0; i < dataPengujian.length(); i++) { int epochTimeDiff = epochTimeSekarang - epochTimeAwal;
int epochTime = (int) dataPengujian[i]["created_time"]; int lamaJam = epochTimeDiff / 3600;
int epochTimeDiff = epochTime - epochTimeAwal;
int lamaJam = epochTimeDiff / 3600;
float kadarGas = (double) dataPengujian[i]["kadar_gas"]; float regresiKadarGas = 0.0025 * pow(lamaJam, 2.0) - 0.0397 * lamaJam - 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 (lamaJam > 12) { if (lamaJam > 12) {
if (kadarGas > (regresiKadarGas + nilaiPerempat) || kadarGas < (regresiKadarGas - nilaiPerempat)) { // jika kadar gas tidak naik secara signifikan
status = "Gagal"; // if (persentaseKadarGas > (regresiKadarGas + nilaiPerempat) || persentaseKadarGas < (regresiKadarGas - nilaiPerempat)) {
} if (persentaseKadarGas < (regresiKadarGas - nilaiPerempat)) {
status = "Gagal";
} }
} }

View File

@ -221,7 +221,7 @@ float getKadarGas() {
// konversi tegangan ke persen berdasarkan rumus yang telah ditentukan // konversi tegangan ke persen berdasarkan rumus yang telah ditentukan
float getPersentaseKadarGas(float voltase) { float getPersentaseKadarGas(float voltase) {
float persentase = 0.2043 * pow(voltase, 2.0) + 0.0611 * voltase - 0.0249; float persentase = 0.1727 * pow(voltase, 2.0) + 0.1805 * voltase - 0.137;
float hasil = constrain(persentase * 100, 0, 100); float hasil = constrain(persentase * 100, 0, 100);
return hasil; return hasil;