from machine import Pin, Timer
from dht import DHT22

# Inisialisasi timer
tim = Timer(0)

# Inisialisasi GPIO
leds = [Pin(pin, Pin.OUT) for pin in [13, 12, 14, 27, 26, 25, 33, 32]]  # Pin untuk LED Bar graph

# Inisialisasi sensor DHT22
sensor = DHT22(Pin(21))


# Fungsi callback
def mycallback(t):
    global global_temp
    sensor.measure()
    temp = sensor.temperature()
    hum = sensor.humidity()
    print("Suhu: {}°C, Kelembaban: {}%".format(temp, hum))
    # Matikan semua LED terlebih dahulu
    for pin in leds:
        pin.off()
    
    # Pengontrol LED Bar graph berdasarkan rentang suhu
    if temp >= 100:
        # Nyalakan semua LED
        for pin in leds:
            pin.on()
    elif temp >= 90:
        # LED8 ON
        for i in range(8):
            leds[i].on()
    elif temp >= 80:
        # LED7 ON
        for i in range(7):
            leds[i].on()
    elif temp >= 70:
        # LED6 ON
        for i in range(6):
            leds[i].on()
    elif temp >= 60:
        # LED5 ON
        for i in range(5):
            leds[i].on()
    elif temp >= 50:
        # LED4 ON
        for i in range(4):
            leds[i].on()
    elif temp >= 40:
        # LED3 ON
        for i in range(3):
            leds[i].on()
    elif temp >= 30:
        # LED2 ON
        for i in range(2):
            leds[i].on()
    elif temp >= 20:
        # LED1 ON
        leds[0].on()

# Setel periode pemanggilan fungsi callback menjadi 2000 milidetik (2 detik)
tim.init(period=2000, callback=mycallback)