import machine
import dht
import time
from lcd_api import LcdApi
from i2c_lcd import I2cLcd
#Konfigurasi I2C untuk LCD 2004
i2c = machine.I2C(0, scl=machine.Pin(22), sda=machine.Pin(21), freq=400000)
I2C_ADDR = 0x27 #Ganti jika alamat I2C LCD brbeda
lcd = I2cLcd(i2c, I2C_ADDR, 4, 20)
#Setup DHT22
dht_pin = machine.Pin(15)
sensor = dht.DHT22(dht_pin)
#Setup Relay (atau LED indikator)
relay = machine.Pin(16,machine.Pin.OUT)
#Threshold suhu
TEMP_THRESHOLD = 30.0
lcd.clear()
lcd.putstr("Monitoring Suhu")
time.sleep(2)
while True:
try:
sensor.measure()
suhu = sensor.temperature()
kelembaban = sensor.humidity()
lcd.clear()
lcd.putstr("Suhu: {:.1f} C".format(suhu))
lcd.move_to(0, 1)
lcd.putstr("Lembab: {:.1f}%".format(kelembaban))
if suhu >= TEMP_THRESHOLD:
relay.value(1) #ON
lcd.move_to(0, 2)
lcd.putstr("Kipas: ON")
else:
relay.value(0) #OFF
lcd.move_to(0, 2)
lcd.putstr("Kipas: OFF")
except OSError as e:
lcd.clear()
lcd.putstr("Gagal membaca sensor")
time.sleep(2)