From bacb5d6fe5b61626cf8eb068f1601c1929ab083e Mon Sep 17 00:00:00 2001 From: Muhammad Izza Alfiansyah Date: Thu, 2 May 2024 16:29:56 +0700 Subject: [PATCH] regression for alcohol percen --- .../sketch_apr22a/sketch_apr22a.ino | 67 ++++++++++++------- 1 file changed, 44 insertions(+), 23 deletions(-) diff --git a/microcontroller/sketch_apr22a/sketch_apr22a.ino b/microcontroller/sketch_apr22a/sketch_apr22a.ino index e864898..08e71db 100644 --- a/microcontroller/sketch_apr22a/sketch_apr22a.ino +++ b/microcontroller/sketch_apr22a/sketch_apr22a.ino @@ -1,9 +1,8 @@ #include -#include #include #define BOARD "ESP-32" -#define MQPIN 36 +#define MQPIN 34 #define DHTPIN 4 #define LAMPPIN 26 #define FANPIN 25 @@ -11,6 +10,27 @@ LiquidCrystal_I2C lcd(0x27, 16, 2); DHT dht(DHTPIN, 22); +float getKadarGas() { + int total = 100; + int valueTotal = 0; + + for (int i = 0; i < total; i++) { + int value = analogRead(MQPIN); + valueTotal = valueTotal + value; + } + + float valueAvg = valueTotal / total; + + return valueAvg; +} + +float getPersentaseKadarGas(float voltase) { + float persentase = 0.2011 * pow(voltase, 2) + 0.0733 * voltase - 0.0363; + float hasil = constrain(persentase * 100, 0, 100); + + return hasil; +} + void setup(){ pinMode(MQPIN, INPUT); pinMode(LAMPPIN, OUTPUT); @@ -25,31 +45,41 @@ void setup(){ lcd.backlight(); lcd.setCursor(0, 0); - lcd.print("Memuat...."); + lcd.print("Memuat.........."); dht.begin(); - delay(5000); + delay(20000); } void loop(){ - int kadarGas = analogRead(MQPIN); - int kadarGasPersen = map(kadarGas, 250, 1023, 0, 100); + float kadarGas = getKadarGas(); + float kadarGasVoltase = kadarGas / 4095.0 * 3.3; + float persentaseKadarGas = getPersentaseKadarGas(kadarGasVoltase); lcd.clear(); lcd.setCursor(0, 0); - lcd.print("Kadar Gas : "); + lcd.print("G : "); + lcd.print(kadarGas); lcd.setCursor(0,1); - lcd.print(String(kadarGas)); + lcd.print("PG : "); + lcd.print(persentaseKadarGas, 1); + lcd.print(" %"); + + delay(1500); float suhu = dht.readTemperature(); + float kelembaban = dht.readHumidity(); - delay(2000); lcd.clear(); lcd.setCursor(0, 0); - lcd.print("Suhu : "); + lcd.print("S : "); + lcd.print(suhu, 1); + lcd.print(" C"); lcd.setCursor(0, 1); - lcd.print(String(suhu) + " C"); + lcd.print("K : "); + lcd.print(kelembaban, 1); + lcd.print(" %"); if (suhu <= 30) { digitalWrite(LAMPPIN, LOW); @@ -63,20 +93,11 @@ void loop(){ digitalWrite(FANPIN, HIGH); } - float kelembaban = dht.readHumidity(); - - delay(2000); - lcd.clear(); - lcd.setCursor(0, 0); - lcd.print("Kelembaban : "); - lcd.setCursor(0, 1); - lcd.print(String(kelembaban) + " %"); - - Serial.println("Kadar Gas : " + String(kadarGas)); - Serial.println("Persen Kadar Gas : " + String(kadarGasPersen) + " %"); + Serial.println("Voltase Kadar Gas : " + String(kadarGasVoltase)); + Serial.println("Persentase Kadar Gas : " + String(persentaseKadarGas) + " %"); Serial.println("Suhu : " + String(suhu) + " C"); Serial.println("Kelembaban : " + String(kelembaban) + " %"); - delay(2000); + delay(1500); lcd.clear(); } \ No newline at end of file