#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include <DHT.h>
#include <TimeLib.h>
int led1 = 3; // green
int led2 = 4; //red
#define TIME_HEADER "T" // Header tag for serial time sync message
#define TIME_REQUEST 7 // ASCII bell character requests a time sync message
// Set the LCD address to 0x27 or 0x3F for a 16 chars and 2 line display
const int rs = 12, en = 11, d4 = 5, d5 = 4, d6 = 3, d7 = 2;
LiquidCrystal_I2C LCD = LiquidCrystal_I2C(0x27, 20, 4);
DHT dht(2, DHT22);
float temp_c;
float temp_f;
float humidity;
void setup()
{
pinMode(led1, OUTPUT);
pinMode(led2, OUTPUT);
digitalWrite(led1,LOW);
digitalWrite(led2,LOW);
// initialize the LCD
LCD.init();
LCD.init();
LCD.backlight();
LCD.setCursor(4, 0);
LCD.print("Data Center");
dht.begin();
Serial.begin(9600);
}
void loop() {
float MAXT;
float MAXH;
float maxtemp;
temp_c = dht.readTemperature(); // คำสั่ง readTemperature เป็นคำสั่งอ่านค่าอุณหภูมิในหน่วยองศาเซลเซียส
temp_f = dht.readTemperature(true); // หากต้องการค่าอุณหภูมิในหน่วยองศาฟาเรนไฮต์ให้ใส่ true ลงไปในวงเล็บของคำสั่ง
humidity = dht.readHumidity(); // คำสั่ง readHumidity เป็นคำสั่งอ่านค่าความชื้นในอากาศเป็นเปอร์เซ็นต์
digitalWrite(led1,HIGH);
digitalWrite(led2,LOW);
LCD.setCursor(0, 2);
LCD.print("Temp");
LCD.print(temp_c);
LCD.print("|");
LCD.setCursor(10, 2);
LCD.print("|Humi");
LCD.print(humidity);
while(temp_c > 30){
LCD.setCursor(1, 3);
LCD.print("Max");
LCD.print(temp_c);
LCD.print("|");
LCD.setCursor(10, 3);
LCD.print("| Max");
LCD.print(humidity);
digitalWrite(led1,LOW);
digitalWrite(led2,HIGH);
delay(1000);
return(temp_c);
}
}