#include <DHT.h>
#define DHTPIN 4
#define DHTTYPE DHT22 //เปลี่ยนชนิด DHT11 หรือ DHT22
DHT dht(DHTPIN, DHTTYPE);
const int outputPin = 2;
const float TEMP_ON = 30.0; // อุณหภูมิที่เริ่มเปิดเอาต์พุต
const float TEMP_OFF = 28.0; // อุณหภูมิที่ปิด (ต่ำกว่าเล็กน้อย เพื่อลดการสลับถี่)
bool outputOn = false;
void setup() {
Serial.begin(115200);
dht.begin();
pinMode(outputPin, OUTPUT);
digitalWrite(outputPin, LOW); // เริ่มต้น ปิดเอาต์พุต
}
void loop() {
float h = dht.readHumidity();
float t = dht.readTemperature();
if (isnan(h) || isnan(t)) {
Serial.println("อ่านค่า DHT11 ไม่ได้");
delay(1000);
return;
}
Serial.print("Temp: ");
Serial.print(t);
Serial.print(" °C , OUTPUT: ");
Serial.println(outputOn ? "ON" : "OFF");
// Logic ควบคุมแบบ Hysteresis
if (!outputOn && t >= TEMP_ON) {
outputOn = true;
digitalWrite(outputPin, HIGH); // LED แสดงว่าพัดลมทำงาน
}
else if (outputOn && t <= TEMP_OFF) {
outputOn = false;
digitalWrite(outputPin, LOW);
}
delay(1000);
}