#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include <DHT.h>
// Definisikan pin untuk sensor DHT22 dan LED
#define DHTPIN 4 // Pin yang terhubung ke data sensor DHT22
#define DHTTYPE DHT22 // Tipe sensor DHT22
#define LEDPIN 2 // Pin yang terhubung ke LED merah
DHT dht(DHTPIN, DHTTYPE);
// Inisialisasi LCD dengan alamat I2C 0x27
LiquidCrystal_I2C lcd(0x27, 16, 2);
void setup() {
// Inisialisasi komunikasi serial untuk debugging (opsional)
Serial.begin(115200);
// Inisialisasi DHT sensor
dht.begin();
// Setel pin LED sebagai output
pinMode(LEDPIN, OUTPUT);
// Inisialisasi LCD
lcd.init(); // Menginisialisasi LCD
lcd.backlight(); // Mengaktifkan lampu latar LCD
Serial.println("DHT22 sensor, LCD, and LED setup completed");
}
void loop() {
// Tunggu beberapa saat antara pembacaan sensor
delay(2000);
// Baca suhu dan kelembaban dari DHT22
float h = dht.readHumidity();
float t = dht.readTemperature();
// Periksa apakah ada pembacaan yang gagal dan keluar lebih awal (untuk mencoba lagi)
if (isnan(h) || isnan(t)) {
Serial.println("Failed to read from DHT sensor!");
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("DHT Read Error");
return;
}
// Tampilkan nilai suhu dan kelembaban di Serial Monitor
Serial.print("Humidity: ");
Serial.print(h);
Serial.print(" %\t");
Serial.print("Temperature: ");
Serial.print(t);
Serial.println(" *C ");
// Tampilkan nilai suhu di LCD
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Temp: ");
lcd.print(t);
lcd.print(" *C");
lcd.setCursor(0, 1);
lcd.print("Humidity: ");
lcd.print(h);
lcd.print(" %");
// Jika suhu lebih dari 30 derajat Celcius, nyalakan LED merah
if (t > 30) {
digitalWrite(LEDPIN, HIGH);
} else {
digitalWrite(LEDPIN, LOW);
}
}
Loading
esp32-devkit-v1
esp32-devkit-v1