#include <LiquidCrystal_I2C.h>
#include <Servo.h>
#include"DHT.h"
#define DHTPIN 2
#define DHTTYPE DHT22
DHT dht(DHTPIN,DHTTYPE);
float hum;
float temp;
int relay1=4;
int relay2=5;
int relay3=6;
int led1=8;
int led2=9;
int led3=10;
LiquidCrystal_I2C lcd(0x27, 16, 2);
Servo servonest;
void setup() {
Serial.begin(9600);
servonest.attach(12);
Serial.println("ตรวจสอบความชื้นและอุณหภูมิ");
dht.begin();
pinMode(relay1,OUTPUT);
pinMode(relay2,OUTPUT);
pinMode(relay3,OUTPUT);
pinMode(led1,OUTPUT);
pinMode(led2,OUTPUT);
pinMode(led3,OUTPUT);
lcd.init();
lcd.backlight();
lcd.setCursor(4, 0);
lcd.print("FIRSTZA");
lcd.setCursor(2, 1);
lcd.print("SE.2/2 NO.1");
delay(3000);
lcd.init();
lcd.backlight();
lcd.setCursor(3, 0);
lcd.print("Humidity &");
lcd.setCursor(2, 1);
lcd.print("Temperature");
delay(3000);
}
void loop() {
long duration, cm;
delay(1000);
hum=dht.readHumidity();
temp=dht.readTemperature();
lcd.init();
lcd.backlight();
lcd.setCursor(1, 0);
lcd.print("Humidity:");
lcd.setCursor(10, 0);
lcd.print(hum);
lcd.setCursor(15, 0);
lcd.print("%");
lcd.setCursor(2, 1);
lcd.print("Temp:");
lcd.setCursor(7, 1);
lcd.print(temp);
lcd.setCursor(12, 1);
lcd.print("C.");
Serial.print("Humidity");
Serial.print(hum);
Serial.print("%, Temp :");
Serial.print(temp);
Serial.println("Celsius");
if(hum>=40&&hum<=60){servonest.write(90);
digitalWrite(led1,1);
digitalWrite(led2,0);
digitalWrite(led3,0);}
else if(hum>=60&&hum<=100){servonest.write(45);
digitalWrite(led1,0);
digitalWrite(led2,1);
digitalWrite(led3,0);
}
else if(hum<40){servonest.write(180);
digitalWrite(led1,0);
digitalWrite(led2,0);
digitalWrite(led3,1);
}
if(temp>=0&&temp<=20){digitalWrite(relay1,1);
digitalWrite(relay2,0);
digitalWrite(relay3,0);}
else if(temp>=20&&temp<=40){digitalWrite(relay1,0);
digitalWrite(relay2,1);
digitalWrite(relay3,0);}
else if(temp>=40&&temp<=50){digitalWrite(relay1,0);
digitalWrite(relay2,0);
digitalWrite(relay3,1);}
else{digitalWrite(relay1,0);
digitalWrite(relay2,0);
digitalWrite(relay3,0);}
}