add save condition to supabase

This commit is contained in:
Muhammad Izza Alfiansyah 2024-05-03 09:56:28 +07:00
parent 7b703487fb
commit 671be4010d
1 changed files with 23 additions and 11 deletions

View File

@ -2,8 +2,8 @@
#include <LiquidCrystal_I2C.h> #include <LiquidCrystal_I2C.h>
#include <DHT.h> #include <DHT.h>
#include <WiFi.h> #include <WiFi.h>
// #include <Arduino_JSON.h> #include <Arduino_JSON.h>
// #include <assert.h> #include <assert.h>
#define BOARD "ESP-32" #define BOARD "ESP-32"
#define MQPIN 34 #define MQPIN 34
@ -62,10 +62,12 @@ void setup(){
} }
void loop(){ void loop(){
// mendapatkan nilai kadar gas
float kadarGas = getKadarGas(); float kadarGas = getKadarGas();
float kadarGasVoltase = kadarGas / 4095.0 * 3.3; float kadarGasVoltase = kadarGas / 4095.0 * 3.3;
persentaseKadarGas = getPersentaseKadarGas(kadarGasVoltase); persentaseKadarGas = getPersentaseKadarGas(kadarGasVoltase);
// menampilkan kadar gas pada LCD
lcd.clear(); lcd.clear();
lcd.setCursor(0, 0); lcd.setCursor(0, 0);
lcd.print("G : "); lcd.print("G : ");
@ -77,9 +79,11 @@ void loop(){
delay(2000); delay(2000);
// membaca nilai suhu dan kelembaban
suhu = dht.readTemperature(); suhu = dht.readTemperature();
kelembaban = dht.readHumidity(); kelembaban = dht.readHumidity();
// menampilkan suhu dan kelembaban pada LCD
lcd.clear(); lcd.clear();
lcd.setCursor(0, 0); lcd.setCursor(0, 0);
lcd.print("S : "); lcd.print("S : ");
@ -90,29 +94,33 @@ void loop(){
lcd.print(kelembaban, 1); lcd.print(kelembaban, 1);
lcd.print(" %"); lcd.print(" %");
// menyalakan lampu jika suhu di bawah 30
if (suhu <= 30) { if (suhu <= 30) {
digitalWrite(LAMPPIN, LOW); digitalWrite(LAMPPIN, LOW);
} else { } else {
digitalWrite(LAMPPIN, HIGH); digitalWrite(LAMPPIN, HIGH);
} }
// menyalakan kipas jika suhu di atas 40
if (suhu >= 40) { if (suhu >= 40) {
digitalWrite(FANPIN, LOW); digitalWrite(FANPIN, LOW);
} else { } else {
digitalWrite(FANPIN, HIGH); digitalWrite(FANPIN, HIGH);
} }
// debugging menampilkan data pada serial
Serial.println("Voltase Kadar Gas : " + String(kadarGasVoltase)); Serial.println("Voltase Kadar Gas : " + String(kadarGasVoltase));
Serial.println("Persentase Kadar Gas : " + String(persentaseKadarGas) + " %"); Serial.println("Persentase Kadar Gas : " + String(persentaseKadarGas) + " %");
Serial.println("Suhu : " + String(suhu) + " C"); Serial.println("Suhu : " + String(suhu) + " C");
Serial.println("Kelembaban : " + String(kelembaban) + " %"); Serial.println("Kelembaban : " + String(kelembaban) + " %");
// insertKondisiTapai(); insertKondisiTapai();
delay(2000); delay(2000);
lcd.clear(); lcd.clear();
} }
// mendapatkana nilai rata-rata kadar gas dari 100 data sampel yang diambil
float getKadarGas() { float getKadarGas() {
int total = 100; int total = 100;
int valueTotal = 0; int valueTotal = 0;
@ -127,6 +135,7 @@ float getKadarGas() {
return valueAvg; return valueAvg;
} }
// 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.0611 * voltase - 0.0249; float persentase = 0.2043 * pow(voltase, 2) + 0.0611 * voltase - 0.0249;
float hasil = constrain(persentase * 100, 0, 100); float hasil = constrain(persentase * 100, 0, 100);
@ -134,12 +143,15 @@ float getPersentaseKadarGas(float voltase) {
return hasil; return hasil;
} }
// void insertKondisiTapai() { // menyimpan kondisi tapai pada database
// req["suhu"] = suhu; void insertKondisiTapai() {
// req["kelembaban"] = kelembaban; JSONVar req;
// req["kadar_gas"] = persentaseKadarGas;
// req["pengujian"] = false;
// String json = JSON.stringify(req); req["suhu"] = (float) suhu;
// db.insert("kondisi_tapai", json, false); req["kelembaban"] = (float) kelembaban;
// } req["kadar_gas"] = (float) persentaseKadarGas;
req["pengujian"] = false;
String json = JSON.stringify(req);
db.insert("kondisi_tapai", json, false);
}