#include "DHT.h"
#include <LiquidCrystal_I2C.h>
#define DHT_TYPE DHT22
#define DHT_PIN 27
#define RED_PIN 12
#define BLUE_PIN 13
LiquidCrystal_I2C lcd(0x27,16,2);
DHT dht(DHT_PIN , DHT_TYPE);
void initLCD(){
lcd.init();
lcd.backlight();
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Starting...");
}
void displayLCD(int col,int row,float temp){
lcd.clear();
lcd.setCursor(col,row);
lcd.print(temp);
}
void interfaceLCD(int col,int row,float hamu){
lcd.setCursor(col,row);
lcd.print(hamu);
}
void setup() {
Serial.begin(115200);
dht.begin();
pinMode(RED_PIN, OUTPUT);
pinMode(BLUE_PIN, OUTPUT);
initLCD(); }
void loop() {
delay(2000);
float t = dht.readTemperature();
float h = dht.readHumidity();
if(isnan(t) || isnan(h)){
Serial.println("Fail to read data form DHT sensor");
return; }
displayLCD(8 , 0 , t);
interfaceLCD(8 , 1 , h );
if(t <= 25 || t >= 30){
digitalWrite(RED_PIN, HIGH);
digitalWrite(BLUE_PIN, LOW);
}
else { digitalWrite(BLUE_PIN, HIGH);
digitalWrite(RED_PIN, LOW);
}
Serial.print("Temperature: ");
Serial.print(t);
Serial.print((" / Humidity: "));
Serial.print(h);
}