【CAVEDU講堂】在 OLED顯示Raspberry Pi4主機狀態訊息

作者/圖片來源:CAVEDU 教育團隊

如果你是樹莓派玩家,想要一開機就想知道樹莓派網路IP位址,以便直接SSH遠端連線,或下載安裝套件時,知道目前容量有多少,亦或者想知道目前樹莓派的溫度是否過高,本技術文將教學如何將上述的資訊顯示在OLED顯示器中喔。

目前本技術文,以Raspberry Pi4為主,如果有讀者使用Raspberry Pi3或其他系列改造,也請在留言區留言,交流一下大家是如何做出來的吧。

*本次作品分享來源為:https://www.the-diy-life.com/diy-raspberry-pi-4-desktop-case-with-oled-stats-display/?fbclid=IwAR1gWu8XxtggtDWrRfzrjlMvvS8D6xDbas58zB7ux6Ze2Kyd0Ev6SCD-IgQ ,特此感謝原作者Michael Klements

材料表

  • Rpi4 4GB或8GB[1]*1
  • 超強力樹莓派散熱器[2]*1
  • OLED Display 0.96”[3]*1

本技術文完整的步驟,可以分成下列7個步驟:

  • 下載並安裝套件
  • 執行範例OLED程式
  • 改寫範例程式,並新增顯示Raspberry Pi4溫度
  • 製作成Shell執行檔
  • 設定開機後可以自動執行程式
  • 縮放字體大小
  • 更改字體字型

在上述1~5步驟中,就已經可以將Raspberry Pi4的相關訊息顯示在OLED上,並可以開機後自動執行程式。而最後的步驟中,可以將OLED顯示的字體縮放,或是從網路上下載字型,本技術文也一併分享給各位讀者。

[提醒] 在進行下列步驟前,建議讀者先接上螢幕、鍵盤及滑鼠來設定Raspberry Pi4連上Wi-Fi熱點,再使用遠端連線軟體連進Raspberry Pi4操作[4],會比較方便。本文會使用的遠端連線軟體MobaXterm來輸入指令,而修改程式出處,因需要行數說明,所以使用Raspberry Pi4圖形化介面來講解。

那麼,本文開始。

1.下載並安裝套件

  • 移動至Adafruit_Python_SSD1306資料夾:$cd Adafruit_Python_SSD1306
  • 安裝相關套件:

$sudo python3 setup.py install
$sudo pip3 install – –upgrade Adafruit_BBIO (需注意兩個減號)

2.執行範例OLED程式

  • OLED範例程式是放在「examples」資料夾中,所以要先移動到「examples」資料夾再執行stats.py程式:
    $cd examples

$python3 stats.py

3.改寫範例程式,並新增顯示Raspberry Pi4溫度

(斜線粗體字為需要新增的程式)

  • 可以成功執行stats.py程式後,在顯示的字串面前會產生”b”字元,這代表此字串為byte類型,需轉成UTF-8編碼,可將”b”字元去除,修改下列幾段程式:

$sudo nano stats.py

編輯檔案的第122行~第125行

  • 若再次執行程式,可以發現”b”字元已經去除,正常顯示畫面。

$python3 stats.py

  • 新增溫度程式:

$sudo nano stats.py

在檔案的第119行、第120行及第125新增溫度變數程式

4.製作成sh執行檔

  • 製作成sh執行檔,是為了第7步驟順利更改OLED字型所做的準備。其優點為,若要更改字型,需匯入字型檔至Python檔案中,可將這些步驟指令寫入sh執行檔中。

首先,先在「examples」資料夾中建立名為LCD的sh執行檔:

$sudo nano OLED.sh

  • 按下CTRL+X,再按Y,再按Enter離開。
  • 編輯完sh執行檔,接下來需要開權限:

$sudo chomd +x OLED.sh

  • 測試sh執行檔是否能開啟,以便之後步驟操作:

$sh OLED.sh

5.設定開機後可以自動執行程式

  • 在Linux系統中,開機後自動開啟任務排程或定期執行程式是透過crond服務來啟動,若要設定crond服務排程的指令,就必須使用crontab指令 。透過這個crontab指令,就可以將LCD.sh檔案在開機後自動執行,其指令為:

$crontab -e

  • 第一次執行時,按下Enter鍵,會進到crontab的檔案進行編輯,在最後一行輸入以下指令:

@reboot sh /home/pi/Adafruit_Python_SSD1306/examples/OLED.sh &

  • 設定完,也可以查看排程的服務

$crontab -l

  • 設定完crond排程後重開機:

$sudo reboot

  • 重新開機後,就會看見OLED顯示Raspberry Pi4的所有資訊了,接下來以下步驟則是說明如何縮放字體大小和更改字型。

6.縮放字體大小

  • 修改字體大小程式片段,可以將第47行加”#”註解,將第50行取消註解。

$sudo nano stats.py

7.更改字型

到網站https://www.dafont.com/bitmap.php下載字型檔。本文以下載Perfect DOS VGA 437 字型檔為例,這放在Bitmap第一頁的最後一個檔案下載。

  • 檔案為壓縮檔,解壓縮後會有兩個ttf字型檔,建議下載至電腦,再透過MobaXterm傳到Raspberry Pi4中。
    而Raspberry Pi4路徑為“/home/pi/Adafruit_Python_SSD1306/examples/”。

簡單來說,就是要和stats.py檔案在同一個資料夾。

  • 改寫程式,先編輯stats.py 檔案

$sudo stats.py

將檔案的第99行的預設字型註解,在第104行新增以下的程式碼。

重新開機後,可以看見字型已更改。

當然,讀者亦可以在網路上下載更多更有趣的字型來玩玩看喔,最後以下影片為RaspberryPi4開機後OLED顯示資訊的過程,這次的教學就到這裡囉。

相關連結

(本文經CAVEDU同意轉載,原文連結;責任編輯:謝涵如)

CAVEDU 教育團隊

Author: CAVEDU 教育團隊

CAVEDU 教育團隊是由一群對教育充滿熱情的大孩子所組成的機器人科學教育團隊。致力推動國內機器人教育。

Share This Post On

發表