樹莓派默認是不帶顯示屏的,如果想要查看系統的一些信息,需要使用電腦登錄到樹莓派,或者通過 HDMI 連接外接顯示器查看。這樣做總是有點麻煩,我們可以通過外接一個 OLED 屏來顯示一些關鍵參數或者圖片。本文將詳細介紹操作方法。
OLED 模組介紹
OLED 屏主要有兩種:128×32 和 128×64 ,主要顏色是白、黃、藍。OLED 屏的特點是功耗低,價格便宜,使用 I2C 接口與主機連接。本文所使用的是 128×64 尺寸的屏幕,外形如下:

它的接口很簡單,只有 4 個 Pin 腳:VCC,GND,SDA,SCL,所以它與樹莓派的連接也很簡單,如下圖所示(本文使用樹莓派 3B):

開啟 I2C 接口
樹莓派默認是不開啟 I2C 接口的,所以我們需要手動打開它。執行以下命令:
$ sudo apt-get install -y python-smbus
$ sudo apt-get install -y i2c-tools
$ sudo raspi-config
然后按以下動圖方式開啟 I2C 功能。

安裝 OLED 屏的 Python 庫
為了在 OLED 屏上顯示文字或圖像,我們需要使用到 Adafruit 的 Python 庫,這個庫支持所有的 SSD1306 相關的顯示屏,包括 128×32 和 128×64 屏幕。
首先我們需要下載這個庫:
$ git clone https://github.com/adafruit/Adafruit_Python_SSD1306.git
然后進入到目錄,再進行安裝:
$ cd Adafruit_Python_SSD1306
$ sudo python3 setup.py install # 如果使用 Python2 ,則使用對應命令
找到 OLED 模組地址
安裝好 Python 庫之后,我們可以使用 i2cdetect 命令來找到 OLED 屏的物理地址:
$ i2cdetect -y 1
我們會得到類似這樣的輸出:

不同的模組可能得到不同的輸出。這里我們的 I2C 地址就是 0x3C。如果你使用的是初代樹莓派(256MB的樹莓派1代B),那么需要使用下面的命令:
$ i2cdetect -y 0
使用 OLED 屏顯示圖像及文字
在剛剛下載的那個庫文件里,有一個 examples 目錄,在那個目錄里,我們可以看到以下內容:
- animate.py
- buttons.py
- image.py
- shapes.py
- stats.py
這幾個文件我們可以直接運行,比如:
$ python3 shapes.py
這幾個文件運行的結果如下圖示:

屏幕尺寸適配
以上的幾個示例文件里,它們都默認你的屏幕尺寸是 128×32 ,但它們依然可以跑在 128×64 的屏幕上。如果我們想要看得更舒服一點,我們可以將尺寸進行適配。
在每個 Python 文件里,都有下面這么一段代碼:

這里也寫得很清楚了,上下兩行代碼分別代表 128×32 和 128×64 的屏幕,使用何種尺寸的屏幕,只需將對應的代碼前面的 # 去掉即可。
公眾號:良許Linux
