regression for alcohol percen

This commit is contained in:
Muhammad Izza Alfiansyah 2024-05-02 16:29:56 +07:00
parent efee768233
commit bacb5d6fe5
1 changed files with 44 additions and 23 deletions

View File

@ -1,9 +1,8 @@
#include <LiquidCrystal_I2C.h> #include <LiquidCrystal_I2C.h>
#include <MQUnifiedsensor.h>
#include <DHT.h> #include <DHT.h>
#define BOARD "ESP-32" #define BOARD "ESP-32"
#define MQPIN 36 #define MQPIN 34
#define DHTPIN 4 #define DHTPIN 4
#define LAMPPIN 26 #define LAMPPIN 26
#define FANPIN 25 #define FANPIN 25
@ -11,6 +10,27 @@
LiquidCrystal_I2C lcd(0x27, 16, 2); LiquidCrystal_I2C lcd(0x27, 16, 2);
DHT dht(DHTPIN, 22); 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(){ void setup(){
pinMode(MQPIN, INPUT); pinMode(MQPIN, INPUT);
pinMode(LAMPPIN, OUTPUT); pinMode(LAMPPIN, OUTPUT);
@ -25,31 +45,41 @@ void setup(){
lcd.backlight(); lcd.backlight();
lcd.setCursor(0, 0); lcd.setCursor(0, 0);
lcd.print("Memuat...."); lcd.print("Memuat..........");
dht.begin(); dht.begin();
delay(5000); delay(20000);
} }
void loop(){ void loop(){
int kadarGas = analogRead(MQPIN); float kadarGas = getKadarGas();
int kadarGasPersen = map(kadarGas, 250, 1023, 0, 100); float kadarGasVoltase = kadarGas / 4095.0 * 3.3;
float persentaseKadarGas = getPersentaseKadarGas(kadarGasVoltase);
lcd.clear(); lcd.clear();
lcd.setCursor(0, 0); lcd.setCursor(0, 0);
lcd.print("Kadar Gas : "); lcd.print("G : ");
lcd.print(kadarGas);
lcd.setCursor(0,1); lcd.setCursor(0,1);
lcd.print(String(kadarGas)); lcd.print("PG : ");
lcd.print(persentaseKadarGas, 1);
lcd.print(" %");
delay(1500);
float suhu = dht.readTemperature(); float suhu = dht.readTemperature();
float kelembaban = dht.readHumidity();
delay(2000);
lcd.clear(); lcd.clear();
lcd.setCursor(0, 0); lcd.setCursor(0, 0);
lcd.print("Suhu : "); lcd.print("S : ");
lcd.print(suhu, 1);
lcd.print(" C");
lcd.setCursor(0, 1); lcd.setCursor(0, 1);
lcd.print(String(suhu) + " C"); lcd.print("K : ");
lcd.print(kelembaban, 1);
lcd.print(" %");
if (suhu <= 30) { if (suhu <= 30) {
digitalWrite(LAMPPIN, LOW); digitalWrite(LAMPPIN, LOW);
@ -63,20 +93,11 @@ void loop(){
digitalWrite(FANPIN, HIGH); digitalWrite(FANPIN, HIGH);
} }
float kelembaban = dht.readHumidity(); Serial.println("Voltase Kadar Gas : " + String(kadarGasVoltase));
Serial.println("Persentase Kadar Gas : " + String(persentaseKadarGas) + " %");
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("Suhu : " + String(suhu) + " C"); Serial.println("Suhu : " + String(suhu) + " C");
Serial.println("Kelembaban : " + String(kelembaban) + " %"); Serial.println("Kelembaban : " + String(kelembaban) + " %");
delay(2000); delay(1500);
lcd.clear(); lcd.clear();
} }