#include <DHT.h>
#include <LiquidCrystal_I2C.h>
#define DHTPIN 15
#define DHTTYPE DHT22
DHT dht(DHTPIN, DHTTYPE);
#define mqPin (32)
#define buzzer (25)
LiquidCrystal_I2C lcd(0x27, 16, 2);
int merah (18);
int hijau (5);
float suhu;
float kelembapan;
void setup() {
Serial.begin(115200);
dht.begin();
pinMode(mqPin, INPUT);
pinMode(merah, OUTPUT);
pinMode(hijau, OUTPUT);
lcd.init();
lcd.backlight();
}
void loop() {
float suhu = dht.readTemperature();
float kelembapan = dht.readHumidity();
int asap = analogRead(mqPin);
Serial.print("Nilai Suhu Terbaca: " + String(suhu));
Serial.print(" ");
Serial.print("Nilai Kelembapan Terbaca: " + String(kelembapan));
delay(500);
Serial.print(" ");
Serial.print("Output MQ-2: ");
Serial.println(asap);
if (asap > 1000)
{
digitalWrite(merah, HIGH);
delay (200);
digitalWrite(merah, LOW);
delay (200);
digitalWrite(merah, HIGH);
delay (200);
digitalWrite(merah, LOW);
delay (200);
digitalWrite(hijau, LOW);
delay (200);
tone(buzzer, 1000,0);
lcd.clear();
lcd.setCursor (0,0);
lcd.print("deteksi gas/asap");
lcd.setCursor (0,1);
lcd.print(asap);
delay (2000);
}
else if (suhu > 30 || kelembapan > 70)
{
digitalWrite(merah, HIGH);
delay (3000);
digitalWrite(merah, LOW);
digitalWrite(hijau, LOW);
tone(buzzer, 5000, 500);
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Suhu/Kelembapan");
lcd.setCursor(0,1);
lcd.print("Tinggi!");
delay (2000);
}
else
{
digitalWrite(merah, LOW);
digitalWrite(hijau, LOW);
tone(buzzer, 0,0);
lcd.clear();
lcd.print("kondisi normal");
delay (2000);}
lcd.setCursor(0,0);
lcd.print("Suhu:");
lcd.print(suhu);
lcd.print("*C");
lcd.setCursor(9,0);
lcd.print("A:");
lcd.print(asap);
lcd.setCursor(0,1);
lcd.print("Humi: ");
lcd.setCursor(7,1);
lcd.print(kelembapan);
lcd.setCursor(14,1);
lcd.print("%");
}