今日目標
過去兩週我們都是把數據印在電腦的Serial Monitor上,但一個獨立運作的IoT裝置通常需要一個屬於自己的小螢幕。
今天我們要學習使用最經典的0.96吋SSD1306 OLED顯示器,透過I2C通訊協定,在螢幕上顯示文字與基本圖像。
程式碼
import time
from machine import Pin, I2C
import ssd1306
i2c = I2C(0, scl=Pin(22), sda=Pin(21), freq=400000)
oled = ssd1306.SSD1306_I2C(128, 64, i2c)
print("=== SSD1306 OLED顯示系統啟動 ===")
oled.fill(0)
oled.text("Wokwi + MicroPython", 0, 0)
oled.text("30-Day IoT Series", 0, 12)
oled.fill_rect(0, 26, 128, 2, 1)
oled.text("Day 15: OLED", 0, 36)
oled.text("Status: ONLINE", 0, 50)
oled.show()
count=0
while True:
count+=1
oled.fill_rect(80, 50, 48, 12, 0)
if count%2==0:
oled.text("ON *", 80, 50)
else:
oled.text("ON ", 80, 50)
oled.show()
time.sleep(0.5)
心得
今天掌握了I2C通訊與ssd1306畫布操作後,我們就能拋棄電腦對Serial Monitor的依賴,打造出真正獨立運作的硬體產品。使用OLED要特別注意,所有繪圖語法(text(), fill_rect())只是修改記憶體中的畫面,最後必須呼叫oled.show()才能真正將畫面顯示在螢幕上。