import time
from machine import Pin, I2C
import dht
from ssd1306 import SSD1306_I2C
# Inisialisasi DHT22
dht_sensor = dht.DHT22(Pin(15)) # Sesuaikan dengan pin yang digunakan
# Inisialisasi I2C untuk OLED
i2c = I2C(0, scl=Pin(22), sda=Pin(21)) # Sesuaikan pin SDA dan SCL
oled = SSD1306_I2C(128, 64, i2c)
def update_display(temperature, humidity):
# Membersihkan layar OLED
oled.fill(0)
# Menampilkan data suhu dan kelembaban
oled.text("Temperature:", 0, 0)
oled.text(str(temperature) + " C", 0, 10)
oled.text("Humidity:", 0, 30)
oled.text(str(humidity) + " %", 0, 40)
# Update tampilan OLED
oled.show()
while True:
try:
# Baca data dari sensor DHT22
dht_sensor.measure()
temperature = dht_sensor.temperature()
humidity = dht_sensor.humidity()
# Print ke serial (opsional)
print("Temperature:", temperature, "C")
print("Humidity:", humidity, "%")
# Update display
update_display(temperature, humidity)
except OSError as e:
print("Gagal membaca sensor:", e)
# Tunggu 2 detik sebelum membaca ulang
time.sleep(2)