# ex_3_5_02_oled_layout.py (จำลอง: https://wokwi.com/projects/469957577403450369)
from machine import Pin, I2C
import ssd1306
i2c = I2C(0, sda=Pin(21), scl=Pin(22), freq=400000)
oled = ssd1306.SSD1306_I2C(128, 64, i2c, addr=0x3c)
def center_x(text, font_w=8, screen_w=128):
return max(0, (screen_w - len(text) * font_w) // 2)
def right_x(text, font_w=8, screen_w=128):
return max(0, screen_w - len(text) * font_w)
title = "SMART FARM"
value = "27.5 C"
oled.fill(0)
oled.text(title, center_x(title), 0) # หัวเรื่องจัดกึ่งกลางบรรทัดบนสุด
oled.hline(0, 10, 128, 1) # เส้นคั่นใต้หัวเรื่อง
oled.text("Temp:", 0, 24) # ป้ายชื่อชิดซ้าย
oled.text(value, right_x(value), 24) # ค่าตัวเลขชิดขวาแถวเดียวกัน
oled.rect(0, 40, 128, 16, 1) # กรอบสี่เหลี่ยมล้อมสถานะ
oled.text("STATUS: OK", 4, 44) # ข้อความในกรอบ เยื้องซ้าย 4 พิกเซล
oled.show()