#include "DHTesp.h" //memasukkan library DHTesp
#include <LiquidCrystal_I2C.h> //memasukkan library LiquidCrystal_I2C
const int DHT_PIN = 15; //deklarasi DHT_PIN pada pin 15
int lcdColumns = 16; //variabel lcdColumns bertipe data integer dengan nilai 16
int lcdRows = 2; //variabel lcdColumns bertipe data integer dengan nilai 2
LiquidCrystal_I2C lcd(0x27, lcdColumns, lcdRows);
DHTesp dhtSensor;
void setup() {/*put your code in here*/
Serial.begin(115200); //untuk menentukan kecepatan dan penerimaan data melalui port serial
dhtSensor.setup(DHT_PIN, DHTesp::DHT22); //menyeting pin setup pada DHT22
// initialize LCD
lcd.init(); //menginisialisasi lcd
// turn on LCD backlight
lcd.backlight(); //menghidupkan backlight lcd
}
void loop() {
TempAndHumidity data = dhtSensor.getTempAndHumidity(); //data suhu dan kelembaban
Serial.println("Temp: " + String(data.temperature, 2) + "°C"); //menampilkan nilai suhu
Serial.println("Humidity: " + String(data.humidity, 1) + "%"); //menampilkan nilai kelembaban
Serial.println("---"); //menampilkan garis "---""
delay(1000); //waktu jeda
// set cursor to first column, first row
lcd.setCursor(0, 0); //mengatur lcd bagian atas
// print message
lcd.print("Temp: " + String(data.temperature, 2) + " C"); //menampilkan teks suhu
delay(1000); //memberikan waktu jeda
// clears the display to print new message
lcd.clear(); //mengahapus teks pada lcd
// set cursor to first column, second row
lcd.setCursor(0,1); //mengatur lcd baris bawah
delay(1000); //memberi waktu jeda
lcd.clear(); //menghapus teks pada lcd
if (data.temperature < 20){ //menjalankan logika if, jika suhu kurang dari 20 derajat
lcd.print("Suhu Dingin"); //menampilkan teks "suhu dingin" pada lcd
}
else if (data.temperature > 32){ //menjalankan logika else, jika suhu lebih dari 32 derajat
lcd.print("Suhu Panas"); //menampilkan teks "suhu panas" pada lcd
}
else if (data.temperature > 20 < 32){ //menjalankan logika else if, jika suhu berada diantara 20 sampai 32 derajat
lcd.print("Suhu Normal"); //menampilkan teks "suhu normal" pada lcd
}
delay(1000); //memberi waktu jeda
}