#include <DHT.h>
#include <LiquidCrystal_I2C.h>
#include <Servo.h>
#define YELLOWLIGHT_PIN 13
#define BLUELIGHT_PIN 12
#define DHT_PIN 5
#define DHT_TYPE DHT22
#define I2C_ID 0x27
#define LCD_COLUMNS 16
#define LCD_LINES 2
LiquidCrystal_I2C lcd(I2C_ID, LCD_COLUMNS, LCD_LINES);
DHT dht(DHT_PIN, DHT_TYPE);
Servo servo;
byte degree[] = { B00111, B00101, B00111, B00000, B00000, B00000, B00000, B00000 };
void setup() {
pinMode(YELLOWLIGHT_PIN, OUTPUT);
pinMode(BLUELIGHT_PIN, OUTPUT);
lcd.init();
lcd.backlight();
lcd.createChar(0, degree);
dht.begin();
servo.attach(3);
servo.write(0);
}
void loop() {
delay(10);
float h = dht.readHumidity();
float t = dht.readTemperature();
lcd.setCursor(0, 0);
lcd.print("Humid:");
lcd.setCursor(7, 0);
lcd.print(h);
lcd.setCursor(13, 0);
lcd.print("%");
lcd.setCursor(0, 1);
lcd.print("Temp:");
lcd.setCursor(6, 1);
lcd.print(t);
lcd.setCursor(11, 1);
lcd.write(degree);
lcd.setCursor(12, 1);
lcd.print("C");
if (h < 50) {
digitalWrite(YELLOWLIGHT_PIN, HIGH);
digitalWrite(BLUELIGHT_PIN, LOW);
servo.write(90);
delay(100);
} else {
digitalWrite(YELLOWLIGHT_PIN, LOW);
digitalWrite(BLUELIGHT_PIN, HIGH);
servo.write(0);
}
delay(100);
}