#include "DHT.h"
//กำหนดค่าพินของเซ็นเซอร์
#define DHTPIN 4
//กำหนดชนิดของเซนเซอร์
#define DHTTYPE DHT22
#define REDPIN 9
#define GREENPIN 10
#define BLUEPIN 11
//สร้างวัตถุ DHT
DHT dht(DHTPIN, DHTTYPE);
void setup() {
Serial.begin(115200);
//เรื่มต้นการทำงานเซนเซอร์
dht.begin();
pinMode(REDPIN, OUTPUT);
pinMode(GREENPIN, OUTPUT);
pinMode(BLUEPIN, OUTPUT);
}
void loop() {
//อ่านค่าทุกๆ 2 วินาที
delay(2000);
// อ่านค่าอุณหภูมิและความชื้น
float h = dht.readHumidity();
float t = dht.readTemperature();
if (isnan(h) || isnan(t)) {
return;
}
//แสดงค่าอุณหภูมิและความชื้นใน Serial Monitor
Serial.print("Humidity: ");
Serial.print(h);
Serial.print(" %\t");
Serial.print("Temperature");
Serial.print(t);
Serial.println(" *C");
updateLED(t, h);
}
void updateLED(float temperature, float humidity) {
int redValue = 0;
int greenValue = 0;
int blueValue = 0;
if (temperature < 20) {
blueValue = map(temperature, 0, 20, 255, 0);
}else if (temperature >= 20 && temperature < 30) {
greenValue = map(temperature, 20, 30, 255, 0);
}else {
redValue = map(temperature, 30, 50, 0, 255);
}
if (humidity < 30) {
blueValue = max(blueValue, map(humidity, 0, 30, 255, 0)); // Dry Humidity
}else if (humidity >= 30 && humidity < 60) {
greenValue = max(greenValue, map(humidity, 30, 60, 255, 0)); // Moderate Humidity
}else {
redValue = max(redValue, map(humidity, 60, 100, 0, 255));// HIGH humid
}
analogWrite(REDPIN , redValue);
analogWrite(GREENPIN, greenValue);
analogWrite(BLUEPIN, blueValue);
}