/**
ESP32 + DHT22 Example for Wokwi
https://wokwi.com/arduino/projects/322410731508073042
*/
#include "DHTesp.h" /*memasukan DHTesp*/
#include <LiquidCrystal_I2C.h>/*memasukan liquid crystal i2c*/
const int DHT_PIN = 15;/*memberikan konstanta pin 15*/
int lcdColumns = 16;/*penetapan lcd kolom pin 16*/
int lcdRows = 2;/*penetepan lcd baris pada pin 2*/
LiquidCrystal_I2C lcd(0x27, lcdColumns, lcdRows);
DHTesp dhtSensor;
void setup() {/*put your code in here*/
Serial.begin(115200);/*mengirimkan data ke port serial*/
dhtSensor.setup(DHT_PIN, DHTesp::DHT22);/*menetapkan pin setup pada dht22*/
// initialize LCD
lcd.init();/*inisialisasi lcd*/
// turn on LCD backlight
lcd.backlight();/*menghidupkan backlight lcd*/
}
void loop() {/*menjalankan program yang sudah dibuat*/
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); /*memberi waktu delay*/
// 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); /*memberi waktu delay*/
// clears the display to print new message
lcd.clear(); /*mengahpus tampilan lcd*/
// set cursor to first column, second row
lcd.setCursor(0,1); /*mengatur lcd bagian bawah*/
delay(1000); /*memberi waktu delay*/
lcd.clear(); /*menghapus tampilan lcd*/
if (data.temperature < 20){ /*memasukan fungsi if jika suhu dibawah 20*/
lcd.print("Suhu Dingin"); /*menampilkan teks suhu dingin pada lcd*/
}
else if (data.temperature > 32){ /*memasukan fungsi if bila suhu lebih dari 32*/
lcd.print("Suhu Panas"); /*menampilkan teks suhu panas pada lcd*/
}
else if (data.temperature > 20 < 32){ /*memasukan fungsi if bila suhu berada diantara 20 dan 32*/
lcd.print("Suhu Normal"); /*menampilkan teks suhu normal pada lcd*/
}
delay(1000); /*memberi waktu delay*/
}