#include "DHTesp.h"
#define LED_PIN 2
#define SW_PIN 4
#define LDR_PIN 34
#define DHT_PIN 14
DHTesp dhtSensor;
int pressCount = 1;
bool lastState = HIGH;
void setup() {
Serial.begin(115200);
pinMode(LED_PIN, OUTPUT);
pinMode(SW_PIN, INPUT_PULLUP);
dhtSensor.setup(DHT_PIN, DHTesp::DHT22);
Serial.println("System Ready...");
}
void loop() {
bool currentState = digitalRead(SW_PIN);
// LED ติดค้างเมื่อกดปุ่ม
if (currentState == LOW) {
digitalWrite(LED_PIN, HIGH);
} else {
digitalWrite(LED_PIN, LOW);
}
// ตรวจจับการกด (จากปล่อย → กด)
if (lastState == HIGH && currentState == LOW) {
if (pressCount == 1) {
int LDRvalue = analogRead(LDR_PIN);
Serial.println("Light Value in the Room = " + String(LDRvalue) + " lux");
}
else if (pressCount == 2) {
TempAndHumidity data = dhtSensor.getTempAndHumidity();
Serial.println("Humidity Value in the Room = " + String(data.humidity, 1) + " %H");
}
else if (pressCount == 3) {
TempAndHumidity data = dhtSensor.getTempAndHumidity();
Serial.println("Temperature Value in the Room = " + String(data.temperature, 1) + " °C");
}
else if (pressCount == 4) {
TempAndHumidity data = dhtSensor.getTempAndHumidity();
float tempF = data.temperature * 1.8 + 32;
Serial.println("Temperature Value in the Room = " + String(tempF, 1) + " °F");
}
pressCount++;
if (pressCount > 4) {
pressCount = 1; // วนกลับครั้งที่ 1 ใหม่
}
delay(250); // ลดเด้งปุ่ม
}
lastState = currentState;
}