#include <DHT.h> // Pastikan Anda sudah menginstal library DHT dari Library Manager Arduino IDE
// Inisialisasi pin sensor DHT22
#define DHTPIN 2 // Pin digital tempat DHT22 terhubung (misalnya pin D2)
#define DHTTYPE DHT22 // Tipe sensor adalah DHT22
// Inisialisasi pin LED
const int ledPin = 3; // Pin digital tempat LED terhubung (misalnya pin D3)
// Inisialisasi objek DHT
DHT dht(DHTPIN, DHTTYPE);
void setup() {
Serial.begin(9600); // Memulai komunikasi serial dengan baud rate 9600
pinMode(ledPin, OUTPUT); // Mengatur pin LED sebagai OUTPUT
dht.begin(); // Menginisialisasi sensor DHT
Serial.println("Sistem Monitoring Suhu dengan DHT22 dan LED");
Serial.println("----------------------------------------");
}
void loop() {
// Tunggu sebentar di antara pembacaan (minimal 2 detik untuk DHT22 agar stabil)
delay(2000);
// Ambil data kelembaban dan suhu dari sensor DHT22
float humidity = dht.readHumidity();
float temperature = dht.readTemperature(); // Pembacaan suhu dalam Celsius secara default
// Cek apakah data suhu atau kelembaban valid (bukan NaN - Not a Number)
if (isnan(humidity) || isnan(temperature)) {
Serial.println("Gagal membaca dari sensor DHT! Pastikan kabel terhubung dengan benar.");
// Tidak melakukan apa-apa dengan LED jika pembacaan gagal
return; // Keluar dari loop dan coba lagi di iterasi berikutnya
}
// Tampilkan suhu dan kelembaban di serial monitor
Serial.print("Kelembaban: ");
Serial.print(humidity);
Serial.print(" %\t");
Serial.print("Suhu: ");
Serial.print(temperature);
Serial.println(" *C");
// Cek suhu dan menyalakan LED jika suhu di atas atau sama dengan 50 derajat Celsius
if (temperature >= 50) { // Menggunakan '>=' sesuai instruksi "lebih dari/="
digitalWrite(ledPin, HIGH); // Nyalakan LED (HIGH = 5V)
Serial.println("PERINGATAN: Suhu Tinggi! LED ON.");
} else {
digitalWrite(ledPin, LOW); // Matikan LED (LOW = 0V)
Serial.println("Suhu Normal. LED OFF.");
}
}