#include "DHTesp.h" //Library DHTesp
#include <LiquidCrystal_I2C.h> //Library LiquidCrystal
const int DHT_PIN = 15; //deklarasi DHT pada pin 15
int lcdColumns = 16;//variabel tipe integer dgn nilai 16
int lcdRows = 2;//variabel tipe integer dengan nilai 2
LiquidCrystal_I2C lcd(0x27, lcdColumns, lcdRows);
DHTesp dhtSensor;
void setup() {
Serial.begin(115200);//mealui port serial menentukan kecepatan dan penerimaan data
dhtSensor.setup(DHT_PIN, DHTesp::DHT22);//untuk setting oin setup pada DHT22
// initialize LCD
lcd.init();//Menginstalasi LCD
// turn on LCD backlight
lcd.backlight();//menghidupkan backlight LCD
}
void loop() {
TempAndHumidity data = dhtSensor.getTempAndHumidity();// untuk data suhu dan kelembapan
Serial.println("Temp: " + String(data.temperature, 2) + "°C");//menampilkan nilai suhu
Serial.println("Humidity: " + String(data.humidity, 1) + "%");//menampilkan nila kelembapan
Serial.println("---");//menampilkan garis "---"
delay(1000);//untuk waktu jeda 1000 mili detik
// set cursor to first column, first row
lcd.setCursor(0, 0);//untuk mengatur kursor ke baris pertama
// print message
lcd.print("Temp: " + String(data.temperature, 2) + " C");//untuk menampilkan putput "Temp:" pada baris pertama
delay(1000);//untuk waktu jeda 1000 milidetik
// clears the display to print new message
lcd.clear();//untuk mengosongkan tampilan pada pesan baru
// set cursor to first column, second row
lcd.setCursor(0,1);//untuk mengatur kursor ke baris ke dua
lcd.print("Humidity: " + String(data.humidity, 1));//untuk menampilkan putput "Humidity:"
delay(1000);//untuk waktu jeda 1000 milidetik
lcd.clear();//untuk mengosongkan tampilan pada pesan baru
if (data.temperature < 20){ //kondisijika temperature lebih besar dari 20
lcd.print("Suhu di Ruangan: ");//untuk manampilkan output "Suhu di Ruangan:"
lcd.setCursor(0,1);// untuk menampilkan kursor pada baris kedua
lcd.println("Dingin");//menampilakn output "Dingin" pada LCD
delay(1000);//untuk jeda waktu 1000 milidetik
lcd.clear();//untuk mengosongkan tampilan pada pesan baru
}
else if (data.temperature > 32){ //kondisi jika temperatur lebih besar dari 32
lcd.print("Suhu di Ruangan: ");//untuk manampilkan output "Suhu di Ruangan:"
lcd.setCursor(0,1);//untuk mengatur kursor ke baris kedua
lcd.println("Panas");//untuk menampilkan output "panas"
delay(1000);
lcd.clear();
}
else if (data.temperature > 20 < 32){//kondisi jika tempertur diantara 20 lebih kecil dari 32
lcd.print("Suhu di Ruangan: ");//untuk manampilkan output "Suhu di Ruangan:"
lcd.setCursor(0,1);
lcd.println("Normal");//untuk menampilkan output "Normal"
delay(1000);//jeda waktu 1000 milidetik
lcd.clear();//mengsongkan tampilan pada pesan baru
}
delay(1000);
}