#include "DHT.h"
#include <LiquidCrystal_I2C.h>
#define DHT_TYPE DHT22
#define DHT_PIN 27
#define BLUE_PIN 14
#define RED_PIN 12
LiquidCrystal_I2C lcd(0x27, 16, 2);
DHT dht(DHT_PIN, DHT_TYPE);
void setup() {
Serial.begin(115200);
dht.begin();
lcd.init();
lcd.clear();
lcd.backlight();
lcd.setCursor(0, 0);
lcd.print("Starting...");
pinMode(RED_PIN, OUTPUT);
pinMode(BLUE_PIN, OUTPUT);
}
void displayLCD(float temperature, float humidity) {
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Temp: ");
lcd.print(temperature);
lcd.print(" C");
lcd.setCursor(0, 1);
lcd.print("Humidity: ");
lcd.print(humidity);
lcd.print(" %");
}
void loop() {
delay(2000);
float t = dht.readTemperature();
float h = dht.readHumidity();
if (isnan(t) || isnan(h)) {
Serial.println("Fail to read data from DHT sensor!");
return;
}
// Temperature: ?? / Humidity: ??
Serial.print("Temperature :");
Serial.print(t);
Serial.print(" / Humidity: ");
Serial.println(h);
displayLCD(t, h);
if (t >= 25 && t <= 30) {
digitalWrite(RED_PIN, LOW);
digitalWrite(BLUE_PIN, HIGH);
} else {
digitalWrite(RED_PIN, HIGH);
digitalWrite(BLUE_PIN, LOW);
}
}