from machine import Pin, I2C
import time
from dht20 import DHT20
from ssd1306 import SSD1306_I2C

# 1. I2Cの共通設定（周波数は400kHzでどちらも正常に動きます）
i2c = I2C(0, scl=Pin(9), sda=Pin(8), freq=400000)

# 2. ディスプレイとセンサーの初期化
WIDTH = 128
HEIGHT = 64
oled = SSD1306_I2C(WIDTH, HEIGHT, i2c)
dht20 = DHT20(i2c)

print("温湿度表示プログラムを開始します。")

while True:
    # 3. データの取得
    t = dht20.temperature
    h = dht20.humidity
    
    # 4. ディスプレイの画面を一度クリア
    oled.fill(0)
    
    # 5. 文字列を作って画面に配置
    # text()関数は「文字列」しか表示できないため、str()を使って数値から文字に変換します
    str_t = "Temp: " + str(t) + " C"
    str_h = "Humi: " + str(h) + " %"
    
    oled.text(str_t, 0, 10, 1) # 上側に気温を表示
    oled.text(str_h, 0, 30, 1) # 下側に湿度を表示
    
    # 6. 画面を更新して表示を確定
    oled.show()
    
    # コンソール（画面）にも確認用に出力
    print("T:", t, " H:", h)
    
    # センサーのサンプリング間隔に合わせて1秒待つ
    time.sleep(1)