#include <LiquidCrystal_I2C.h>
#include <DHT.h>
#define DHTPIN 5 // Digital pin connected to the DHT sensor
#define DHTTYPE DHT22 // DHT 22 (AM2302), AM2321
// Set the LCD address to 0x27 for a 16 chars and 2 line display
LiquidCrystal_I2C lcd(0x27, 16, 2);
DHT dht(DHTPIN, DHTTYPE);
void setup() {
Serial.begin(115200);
Serial.println(F("DHT22 test!"));
dht.begin();
lcd.init();
//intro gak penting
lcd.setCursor(0,0);
lcd.print(F(" monitor suhu"));
lcd.setCursor(0,1);
lcd.print(F(" & kelembapan"));
delay(2000);
lcd.clear();
delay(1000);
lcd.backlight();
delay(1000);
lcd.setCursor(0,0); lcd.print(F("dicoba"));
lcd.setCursor(0,1); lcd.print(F("saja"));
delay(1000);
lcd.noBacklight();
delay(1000);
lcd.clear();
delay(1000);
}
void loop() {
// delay antar perhitungan
delay(1000);
// Pengambilan nilai suhu dan kelembapan
float suhu = dht.readTemperature();
float lembap = dht.readHumidity();
// Check if any reads failed and exit early (to try again).
if (isnan(suhu) || isnan(lembap)) {
Serial.println(F("Failed to read from DHT sensor!"));
lcd.setCursor(0,0); lcd.print(F(" Tidak terbaca"));
return;
}
Serial.print(F("Suhu: "));
Serial.println(suhu);
Serial.print(F("Kelembapan: "));
Serial.println(lembap);
//Display data ke LCD =>tampung di data string
String print_suhu = "suhu: " + String(suhu) + " C";
String print_humd = "lembap: " + String(lembap) + " %";
lcd.setCursor(0,0); lcd.print(print_suhu);
lcd.setCursor(0,1); lcd.print(print_humd);
}