#include "DHT.h"
#define DHTPIN 2
#define DHTTYPE DHT22
#include<LiquidCrystal_I2C.h>
#include <Servo.h>
DHT dht(DHTPIN,DHTTYPE);
LiquidCrystal_I2C lcd(0x27,16,2);
Servo myservo;
int led1=11;
int led2=10;
int led3=9;
int relay1=3;
int relay2=4;
int relay3=5;
float hum;
float temp;
const int SCREEN_WIDTH = 128;
const int SCREEN_HEIGHT = 64;
void setup() {
Serial.begin(9600);
dht.begin();
Serial.println("ตรวจสอบความชื้นและอุณหภูมิ");
pinMode(relay1, OUTPUT);
pinMode(relay2, OUTPUT);
pinMode(relay3, OUTPUT);
myservo.attach(6);
pinMode(led1,OUTPUT);
pinMode(led2,OUTPUT);
pinMode(led3,OUTPUT);
lcd.init();
lcd.backlight();
lcd.setCursor(4,0);
lcd.print("WAWAVE");
lcd.setCursor(2,1);
lcd.print("SE.2/3 NO.23");
delay(3000);
lcd.clear();
lcd.init();
lcd.backlight();
lcd.setCursor(3,0);
lcd.print("Humidity &");
lcd.setCursor(2,1);
lcd.print("Temperature &");
delay(3000);
lcd.clear();
}
void loop() {
delay(1000);
hum= dht.readHumidity();
temp= dht.readTemperature();
lcd.init();
lcd.backlight();
lcd.setCursor(0,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(10,1);
lcd.print(temp);
lcd.setCursor(15,1);
lcd.print("C.");
Serial.print("Humidity: ");
Serial.print(hum);
Serial.print(" %,Temperature: ");
Serial.print(temp);
Serial.println(" C ");
if(hum>=40&&hum<=60){
myservo.write(90);
digitalWrite(led1,1);
digitalWrite(led2,0);
digitalWrite(led3,0);
}
else if(hum>60&&hum<=100){
myservo.write(45);
digitalWrite(led1,0);
digitalWrite(led2,1);
digitalWrite(led3,0);
}
else{
myservo.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);
}
}