筆者是從不知道樹莓派是什麼,也不懂電路開始的😅 光是用程式碼讓一顆燈泡亮起來,就折騰了一陣子了😅
此篇文章主要紀錄拿到樹莓派後,做的一系列事情,這篇文章適合跟筆者一樣新手的孩子們。目標是讓 Express.js 框架建構的專案,在樹莓派開機時自動 Run 起來,專案內容主要是監控、控制 GPIO。專案內容非本文章重點,本文先以樹莓派為主。
好低,我們開始吧!
Outline
* 什麼是樹莓派?
* 安裝作業系統
* 專案環境建置
* 打開 SSH 功能
* 安裝 Node.js
* 安裝 PM2,讓樹莓派自動 Run 專案
* 安裝 pm2-logrotate,控制 PM2 產生的 log 檔案
* 那些需要額外處理的事情!!
* 轉接至 HDMI 後,無法正常輸出聲音
* 每過十分鐘,我的樹莓派總是會自己暗掉
* 無法開機,卡在四顆樹莓的開機畫面
* 後記
* 參考文件
➤ 什麼是樹莓派?
樹莓派是基於 Linux 系統的小型電腦,由英國樹莓派基金會開發,麻雀雖小,五臟俱全。一般電腦能夠做的事情,樹莓派幾乎都能夠運作。以樹莓派4 為例,具備有 WIFI、USB2/3、HDMI 等。
樹莓派除了可當作一般電腦操作外(玩遊戲、看影片等),因具備 GPIO ,可另外串接其他設備, 用於開發智能家電監控系統或其他有創意的應用。價格也十分親民,滿推薦大家入手一塊玩玩看。
💡提醒:樹莓派插電後即開機。如果不是特殊狀況(ex:死當到失控了),請正確關機,且無綠燈閃爍才能拔掉插頭。如果希望開關機按鈕,可以買附有電源控制的電源線(點我查看賣場商品資訊)。
💡提醒:樹莓派4 HDMI 為 Micro HDMI,購買時可以連轉接頭一起購買。
➤ 安裝作業系統
如果想省略這個步驟,有些廠商直接販賣燒錄好的 SD card。如果要自己燒錄的話,請繼續往下看。
STEP1:下載官方推薦的 Raspberry Pi Imager 燒錄軟體(點我去下載)
STEP2:將 SD card 插入讀卡機
STEP3:選擇欲燒錄的作業系統、SD Card,點擊 WRITE 開始燒錄
STEP4:將 SD card 從讀卡機退出,並插入樹莓派
STEP5:重新啟動樹莓派,進行初始化設置
✔︎ set Country
✔︎ Change Password
✔︎ Set UP Screen
✔︎ Select WiFi Network(此步驟可以Skip 跳過,稍後再設定)
✔︎ Update Software(如果上一步驟的網路尚未設置,則此步驟跳過)
➤ 專案環境建置
打開 SSH 功能
首先,先開啟樹莓派的 SSH 功能,就可以回到熟悉的電腦操作了!打開 SSH 功能有兩種方式,從 terminal 指令操作或是從 UI 介面設定。
STEP1:開啟樹莓派的 SSH 功能
● 方式一:打開 terminal,輸入指令 sudo raspi-config
看見以下畫面,接著選擇 Interfacinng Options > P2 SSH > 選擇開啟
● 方式二: UI 介面設定
點選左上方樹莓派 icon > 偏好設定 > Raspberry Pi 設定>介面>啟用SSH
STEP2:嘗試 SSH 遠端登入樹莓派
於樹莓派 terminal 輸入 ifconfig 查看樹莓派 IP 資訊。此範例 IP 為 192.168.1.123
回到自己的電腦,打開 terminal,輸入指令 ssh pi@192.168.X.XXX
,並按照提示輸入樹莓派密碼,即可登入。
💡小提醒:自己的電腦與樹莓派需要使用同一個 WIFI 唷!
💡小提醒:開啟 SSH 功能以後,重新開機皆會收到 SSH 警告訊息,點選確定即可。
安裝 Node.js
STEP1:首先確認是否擁有 Node.js,打開 terminal,輸入指令安裝 node -v
STEP2:如果沒有的話,打開 terminal,輸入指令安裝
$curl -sL https://deb.nodesource.com/setup_10.x | sudo bash -
$sudo apt install nodejs
STEP3:再次查看版本,確認安裝完成
有了 Node.js 以後,專案就可以運行了 🎉
安裝 PM2,讓樹莓派自動 Run 專案
PM2 為 Node.js 應用管理工具。可透過 PM2 監控、控制流程。
STEP1:安裝 PM2。打開 terminal,輸入指令安裝。
$sudo npm install --global pm2
STEP2:進到專案資料夾,啟動服務,並為你的專案命名(專案顯示於 PM2 的名稱,即下方指令中的 xxx )
$pm2 start --name xxx app.js --watch
STEP3:設定為開機自動啟動
$pm2 startup
如看到以下提示指令,請依照指令複製貼上
STEP4:儲存此設定
pm2 save
💡常用指令
- 顯示 log
pm2 logs
- 重新運行專案
pm2 restart project_name
- 停止運行專案
pm2 stop project_name
安裝 pm2-logrotate,控制 PM2 產生的 log 檔案
運行 PM2 時,會產生許多 log 紀錄,因此我們需要控制這些 log 檔案。可以設置檔案大小(max_size)、retain(log 檔案數量)、compress(壓縮 log 檔案)、workerInterval()
STEP1:安裝 pm2-logrotate。打開 terminal,輸入指令安裝
$pm2 install pm2-logrotate
STEP2:設置(以下為筆者的設定,其他保持預設值,更多設置可以參考文件 點我看連結)
$pm2 set pm2-logrotate:max_size 512K
$pm2 set pm2-logrotate:retain 2
$pm2 set pm2-logrotate:compress true
➤ 那些需要額外處理的事情!!
使用樹莓派時,筆者遇到一些問題,紀錄以下:
❓轉接至 HDMI 後,無法正常輸出聲音
參考官方設定:Audio configuration 進行設定吧。
- 方式一:改變聲音輸出
- 右鍵點選畫面右上聲音 icon,將聲音輸出設定為 HDMI
- 打開 terminal ,輸入指令
amixer cset numid=3 2
其中數字 2 代表為 HDMI 輸出,若想使用耳機,則可設置為 1 - 打開 terminal,輸入指令
sudo raspi-config
看見以下畫面,接著選擇 Advanced Options > Audio > HDMI
以上三點擇一設置即可,筆者為了確保三點都有設置。
- 方式二:
如果方式一設置完成後,仍無法正確輸出聲音,接著需將聲音以強制設定的方式,設定為 HDMI 輸出。
於 terminal 輸入sudo nano /boot/config.txt
,將 hdmi_drive 設置為2。記得將 # 拿掉唷,#代表註解。
- 方式三:
如果方式一、二設置完成後,仍無法正確輸出聲音。接著試試看都市傳說吧!樹莓派4 有兩個 micro HDMI 孔,傳說接近電源的那一孔,才能起作用… 以上訊息來自討論區,無法確定是否屬實。不過筆者還是確保安心的,使用了接近電源的那一孔了。
❓每過十分鐘,我的樹莓派總是會自己暗掉
好吧,其實這點不能算是怪怪的事情,而是解法讓筆者覺得怪怪的 😅總共有三種解法,僅第三種對筆者是起作用的,不確定大家狀況是否一致,先一律奉上。
- 方式一:
打開 terminal,輸入指令nano /etc/lightdm/lightdm.conf
,新增 xserver-command=X -s 0 -dpms ,重新開機 - 方式二:
打開 terminal,輸入指令
$ cd /etc/profile.d
$ touch screen.sh
$ nano screen.sh
於檔案中寫入,接著重新開機。
xsetdpms 0 0 0
xsets off
- 方式三:安裝 xscreensaver 介面
1. 打開 terminal,輸入指令sudo apt-get install xscreensaver
2. 左上點擊樹莓派icon > 偏好設定 > 螢幕保護程式
3. 將 Mode 改為 Disable Screen Saver
❓無法開機,卡在四顆樹莓的開機畫面
目前試過四台樹莓派,其中一台遇過一次無法開機的狀況,目前參考這個討論串(點我查看),重新燒錄記憶卡後解決,為暫時可行的解法,如果較為正規正確的解法,歡迎分享💯
➤ 後記
關於樹莓派還有許多可以深入研究的議題、好用的工具。目前筆者僅將它應用 Express.js 專案,主要是為了利用 GPIO 控制、接收電路變化。如果有更深入的認識或應用再紀錄分享🤩,如果你有其他應用,也歡迎跟我分享🎉
以上是今天的小分享,有任何問題都歡迎留言指教,謝謝 😊