from machine import Pin, I2C
import ssd1306
import time
import dht
# ESP32 Pin assignment
i2c = I2C(0, scl=Pin(22), sda=Pin(21))
oled_width = 128
oled_height = 64
oled = ssd1306.SSD1306_I2C(oled_width, oled_height, i2c)
# DHT22 sensor setup
dht_pin = Pin(4, Pin.IN)
dht_sensor = dht.DHT22(dht_pin)
# Daftar teks yang akan ditampilkan secara berurutan
texts = ["Hello, Tekom", "Kelembapan: ", "Suhu: "]
# Fungsi untuk menggulirkan teks
def scroll_text(text):
for i in range(oled_width + len(text) * 8):
oled.fill(0)
oled.text(text, oled_width - i, 10)
oled.show()
time.sleep(0.05)
while True:
# Baca data dari sensor DHT22
dht_sensor.measure()
humidity = dht_sensor.humidity()
temperature = dht_sensor.temperature()
# Format data kelembapan dan suhu
humidity_text = "{:.1f}%".format(humidity)
temperature_text = "{:.1f}C".format(temperature)
for text in texts:
if text == "Kelembapan: ":
scroll_text(text + humidity_text)
elif text == "Suhu: ":
scroll_text(text + temperature_text)
else:
scroll_text(text)
time.sleep(2)