OLED顯示器實習

每一次NodeMCU輸出的時候都要透過電腦螢幕實在是不方便,在這一個單元中,我們把NodeMCU接上自己的小小的顯示器,透過它來顯示NodeMCU所取得的資訊,十分方便喔。

這次我們用的是底下這顆0.96吋的迷你LCD,它的型號是SSD1306:

要連接使用這個LCD需要4條線,在上方可以看到,分別是VCC、GND、SCL、以及SDA,如下所示:

它的背面即是這4個針腳,可以直接拿來連接杜邦線,或是插在麵包板上:

它的4支接腳中,不用說,VCC和GND分別是接到正負電源,但是另外兩支腳SCL以及SDA則可以自由地選擇要接到哪一個接腳,到時候程式中在建立物件時只要確實設定好就可以了。在這個例子中,我們把SCL接到D1(也就是GPIO5),然後把SDA接到D2(也就GPIO4)。接線之後的照片如下所示:

在上面的例子中,我們也順便把亮度感測器和溫濕度感測器也連接上去。連接完畢之後,就可以開始編寫程式了。

ssd1306的解析度是128x64,在MicroPython中已有內建的模組可以直接使用。以下是最基本的顯示訊息程式:

from machine import I2C, Pin
import ssd1306
i2c = I2C(scl=Pin(5), sda=Pin(4), freq=100000)
oled = ssd1306.SSD1306_I2C(128, 64, i2c)
oled.fill(0)
oled.text("Hello world!", 0, 0)
oled.show()

底下的程式碼是和溫濕度感測器一起工作的例子:

import dht, time
from machine import I2C, Pin
import ssd1306
i2c = I2C(scl=Pin(5), sda=Pin(4), freq=100000)
oled = ssd1306.SSD1306_I2C(128, 64, i2c)
d = dht.DHT11(Pin(0))
while True:
d.measure()
oled.fill(0)
oled.text("{},{}%".format(d.temperature(), d.humidity()), 0, 0)
oled.show()
time.sleep(0.5)