#include <DHT.h>
#define LDR_PIN A0
#define MQ2_PIN A1
#define DHT_PIN 2
#define LED_PIN 9
#define BUZZER_PIN 10
#define DHT_TYPE DHT11 // Bisa diganti DHT22 jika pakai tipe lain
DHT dht(DHT_PIN, DHT_TYPE);
void setup() {
Serial.begin(9600);
dht.begin();
pinMode(LED_PIN, OUTPUT);
pinMode(BUZZER_PIN, OUTPUT);
}
void loop() {
// Baca sensor
int ldrValue = analogRead(LDR_PIN);
int mq2Value = analogRead(MQ2_PIN);
float temp = dht.readTemperature();
float hum = dht.readHumidity();
// Print data ke Serial Monitor
Serial.print("LDR: ");
Serial.print(ldrValue);
Serial.print(" | MQ2: ");
Serial.print(mq2Value);
Serial.print(" | Temp: ");
Serial.print(temp);
Serial.print(" *C");
Serial.print(" | Humidity: ");
Serial.print(hum);
Serial.println(" %");
// Logika LED dan buzzer:
// LED menyala kalau gelap (LDR value kecil)
// Buzzer bunyi kalau gas terdeteksi (MQ2 value tinggi)
// Buzzer juga bunyi kalau suhu di atas 30 derajat
bool isDark = (ldrValue < 300); // Threshold untuk gelap, bisa disesuaikan
bool gasDetected = (mq2Value > 400); // Threshold MQ2, sesuaikan juga
bool tempHigh = (temp > 30);
if (isDark) {
digitalWrite(LED_PIN, HIGH);
} else {
digitalWrite(LED_PIN, LOW);
}
if (gasDetected || tempHigh) {
digitalWrite(BUZZER_PIN, HIGH);
} else {
digitalWrite(BUZZER_PIN, LOW);
}
delay(1000); // Delay 1 detik
}