# Mengimpor library DHT untuk membaca sensor DHT22
import dht
# Mengimpor kelas Pin untuk mengakses GPIO ESP32
from machine import Pin
# Mengimpor fungsi sleep untuk memberikan jeda waktu
from time import sleep
# Menentukan GPIO 14 sebagai pin input untuk sensor DHT22
dhtPin = Pin(14, Pin.IN)
# Membuat objek sensor DHT22 yang terhubung ke GPIO 14
dhtSensor = dht.DHT22(dhtPin)
# Membuat objek LED pada GPIO 15 sebagai pin output
led = Pin(15, Pin.OUT)
# Perulangan utama yang akan berjalan terus-menerus
while True:
try:
# Meminta sensor DHT22 melakukan pengukuran
dhtSensor.measure()
# Mengambil nilai suhu dalam satuan derajat Celsius
suhu = dhtSensor.temperature()
# Mengambil nilai kelembaban dalam persen (%)
kelembaban = dhtSensor.humidity()
# Menampilkan hasil pembacaan ke Serial Monitor
print()
print(f" Suhu: {suhu:5.2f}°C")
print(f"Kelembaban: {kelembaban:5.2f}%")
# Mengecek apakah suhu lebih dari 30°C
if suhu > 30:
# Jika benar, LED dinyalakan
led.on()
# Menampilkan status LED ke Serial Monitor
print("LED ON (Suhu > 30°C)")
else:
# Jika suhu 30°C atau kurang, LED dimatikan
led.off()
# Menampilkan status LED ke Serial Monitor
print("LED OFF (Suhu <= 30°C)")
# Menangani error jika pembacaan sensor gagal
except OSError as e:
print("Gagal membaca DHT22!")
# Menunggu 1 detik sebelum pembacaan berikutnya
sleep(1)