# 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)
# Inisialisasi LED
led1 = Pin(13, Pin.OUT) # LED 1
led2 = Pin(15, Pin.OUT) # LED 2
led3 = Pin(16, Pin.OUT) # LED 3
# Perulangan utama
while True:
try:
# Membaca data dari sensor DHT22
dhtSensor.measure()
# Mengambil nilai suhu dan kelembaban
suhu = dhtSensor.temperature()
kelembaban = dhtSensor.humidity()
# Menampilkan hasil pembacaan
print()
print(f" Suhu: {suhu:5.2f}°C")
print(f"Kelembaban: {kelembaban:5.2f}%")
# Suhu lebih dari 30°C
if suhu > 30:
led1.on()
led2.on()
led3.on()
print("3 LED ON (Suhu > 30°C)")
# Suhu antara 20°C sampai 30°C
elif suhu >= 20:
led1.on()
led2.on()
led3.off()
print("2 LED ON (20°C - 30°C)")
# Suhu antara 10°C sampai kurang dari 20°C
elif suhu >= 10:
led1.on()
led2.off()
led3.off()
print("1 LED ON (10°C - 20°C)")
# Suhu kurang dari 10°C
else:
led1.off()
led2.off()
led3.off()
print("Semua LED OFF (Suhu < 10°C)")
except OSError as e:
print("Gagal membaca DHT22!")
# Menunggu 1 detik sebelum membaca lagi
sleep(1)