#include <DHT.h> // ใช้ DHT Sensor Library
// กำหนดพินสำหรับเซ็นเซอร์ DHT22
#define DHTPIN 13
#define DHTTYPE DHT22
#define LED_PIN 2 // พินสำหรับหลอดไฟ
#define BUZZER_PIN 4 // พินสำหรับบัซเซอร์
// กำหนดพินสำหรับเซ็นเซอร์ MQ-2
#define MQ2_PIN 14 // พินสำหรับอ่านค่าจาก MQ-2 (Analog)
// สร้างออบเจกต์ DHT
DHT dht(DHTPIN, DHTTYPE);
void setup() {
Serial.begin(9600); // เริ่มต้น Serial Monitor ที่ความเร็ว 9600
Serial.println("DHT22 and MQ-2 Test!");
dht.begin(); // เริ่มต้นการทำงานของเซ็นเซอร์ DHT22
pinMode(LED_PIN, OUTPUT); // ตั้งค่า LED_PIN เป็น Output
pinMode(BUZZER_PIN, OUTPUT); // ตั้งค่า BUZZER_PIN เป็น Output
}
void loop() {
// อ่านค่าอุณหภูมิและความชื้น
float humidity = dht.readHumidity();
float temperature = dht.readTemperature();
// ตรวจสอบว่าอ่านค่าล้มเหลวหรือไม่
if (isnan(humidity) || isnan(temperature)) {
Serial.println("Failed to read from DHT sensor!");
} else {
// แสดงค่าความชื้นและอุณหภูมิ
Serial.print("Humidity: ");
Serial.print(humidity, 1);
Serial.println(" %");
Serial.print("Temperature: ");
Serial.print(temperature, 1);
Serial.println(" *C");
}
// อ่านค่าจากเซ็นเซอร์ MQ-2
int mq2Value = analogRead(MQ2_PIN); // อ่านค่าจากพิน Analog
Serial.print("MQ-2 Gas Sensor Value: ");
Serial.println(mq2Value);
// ตรวจสอบเงื่อนไขสำหรับการเตือน
if (mq2Value > 400 || temperature >= 70.0) { // ตรวจสอบแก๊สหรืออุณหภูมิสูงกว่า 70 องศา
digitalWrite(LED_PIN, HIGH); // เปิดไฟ LED
digitalWrite(BUZZER_PIN, HIGH); // เปิดบัซเซอร์
if (temperature >= 70.0) {
Serial.println("ALERT! High temperature detected!");
}
if (mq2Value > 400) {
Serial.println("ALERT! Gas or smoke detected by MQ-2!");
}
} else {
digitalWrite(LED_PIN, LOW); // ปิดไฟ LED
digitalWrite(BUZZER_PIN, LOW); // ปิดบัซเซอร์
}
delay(2000); // รอ 2 วินาทีก่อนอ่านค่าครั้งถัดไป
}