#include <LiquidCrystal_I2C.h>
//memasukkan library untuk mengendalikan LCD melalui I2C
#include <DHT.h>
//memasukkan library untuk mengakses sensor DHT
#define DHTPIN 8//menetapkan pin 8 untuk sensor DHT
#define DHTTYPE DHT22 //jenis sensor DHT yang digunakan (DHT 22)
DHT dht (DHTPIN, DHTTYPE); //diinisialisasi dengan pin dan jenis sensor
LiquidCrystal_I2C lcd(0x27, 20, 4);
//alamat I2C LCD 0x2,jumlah kolom 20,dan jumlah baris 4
void setup() { // konfigurasi awal saat program pertama kali dijalankan
// put your setup code here, to run once:
Serial.begin(9600);// membuka komunikasi serial dengan baud rate 9600
Serial.println("Sistem Monitoring Suhu dan kelembaban");//tampil di Serial Monitor
lcd.begin(20, 4);//menginisialisasi LCD dengan jumlah kolom 20 dan jumlah baris 4
dht.begin();//inisialisasi, mempersiapkan sensor DHT untuk pembacaan suhu dan kelembaban
}
void loop() { // kode utama yang akan dieksekusi berulang kali setelah tahap setup()
// put your main code here, to run repeatedly:
float t = dht.readTemperature(); // baca nilai Suhu
float h = dht.readHumidity(); // baca nilai Kelembaban
delay(1000);// jeda 1000 milidetik (1 detik) sebelum proses pembacaan suhu dan kelembaban diulang
//Menampilkan di LCD
lcd.setCursor(0,2);// menempatkan kursor pada baris ke-3 (indeks 2) dan kolom ke-1 (indeks 0) pada LCD
lcd.println("Suhu =");//menampilkan teks "Suhu =" di LCD
lcd.print(t);//nilai suhu yang telah dibaca (t)
lcd.println(" C");//ditampilkan dalam derajat Celsius
lcd.setCursor(0,3);//menempatkan kursor pada baris ke-4 (indeks 3) dan kolom ke-1 (indeks 0) pada LCD
lcd.println("Kelembaban=");//menampilkan teks "Kelembaban=" di LCD
lcd.print(h);//nilai kelembaban yang telah dibaca (h)
lcd.println(" %");//ditampilkan dalam persentase
//Menampilkan di serial monitor
Serial.println("Suhu = ");//menampilkan teks "Suhu = " di Serial Monitor
Serial.print(t);//nilai suhu yang telah dibaca (t)
Serial.println(" C");//ditampilkan dalam derajat Celsius
Serial.println("Kelembaban = ");//menampilkan teks "Kelembaban = " di Serial Monitor
Serial.print(h);//nilai kelembaban yang telah dibaca (h)
Serial.println(" %");//ditampilkan dalam persentase
}