#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include <DHT.h>
#define DHTPIN 2
#define DHTTYPE DHT22
DHT dht(DHTPIN,DHTTYPE);
//dht11 DHT11;
LiquidCrystal_I2C lcd(0x27, 16, 2);
void setup() {
Serial.begin(9600);
dht.begin();
lcd.init();
lcd.backlight();
lcd.setCursor(0,0);
lcd.print("Temp: ");
lcd.setCursor(0,1);
lcd.print("Humidity: ");
}
void loop() {
int chk = dht.read(7);
lcd.setCursor(6,0);
float tmp = dht.readTemperature();
float hum = dht.readHumidity();
Serial.println(tmp);
Serial.println(hum);
lcd.print(dht.readTemperature());
lcd.setCursor(9,0);
lcd.print("C");
// if(dht.readTemperature()>25){
// }
lcd.setCursor(9,1);
lcd.setCursor(10,1);
lcd.print(dht.readHumidity());
if(tmp >23.0){
delay(2000); // Delay for the user to see the first screen
// Clear the screen for the second message
lcd.clear();
String message = "Temp is high! So do some indoor activities";
// Print warning message
//Serial.println(message.length());
if(message.length() > 16){
lcd.clear();
String message1 = message.substring(0,16);
String message2 = message.substring(17,message.length());
lcd.setCursor(0, 0);
lcd.print(message1);
// Serial.println(message1);
if(message2.length() > 16){
String message3 = message2.substring(0,16);
String message4 = message2.substring(16,message2.length());
lcd.setCursor(0, 1);
lcd.print(message3);
// lcd.clear();
lcd.setCursor(1, 1);
lcd.print(message4);
Serial.println(message3);
Serial.println(message3.length());
Serial.println(message4);
Serial.println(message4.length());
}
}
// lcd.setCursor(0, 0);
// lcd.print("Temp is high!");
// lcd.setCursor(0,1);
// lcd.print(" So dosomeindooractivities");
// Serial.println("Temp is high");
delay(2000); // Keep the warning message for a while
// Clear again and return to showing temp and humidity
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Temp: ");
lcd.setCursor(0, 1);
lcd.print("Humidity: ");
}
delay(2000);
}