Raspberry Pi 硬體組裝與螢幕串接
為什麼要學硬體組裝?
💡 比喻:學煮菜之前,要先認識廚具 你不會連鍋子、瓦斯爐都不認識就開始炒菜吧? 同樣地,寫 IoT 程式之前,你得先把硬體組裝起來。 這一章就是帶你從「開箱」到「畫面亮起來」的完整流程。
開箱清單(買什麼)
💡 比喻:煮一道菜需要的食材清單 少了任何一樣,這道菜就煮不成。Pi 也是一樣,每個配件都有它的用途。
必買清單:
┌─────────────────────────────────────────────────────┐
│ 1. Raspberry Pi 4/5 本體(推薦 4GB RAM 以上) │
│ → 這是「大腦」,所有運算都靠它 │
│ │
│ 2. 電源供應器(USB-C 5V 3A) │
│ → 這是「心臟」,供電不足會當機 │
│ │
│ 3. MicroSD 卡(32GB 以上,推薦 SanDisk) │
│ → 這是「硬碟」,裝系統和資料 │
│ │
│ 4. 散熱片 + 風扇(或被動散熱外殼) │
│ → 這是「冷氣」,Pi 跑久了會很燙 │
│ │
│ 5. 外殼 │
│ → 這是「衣服」,保護電路板不被碰到 │
│ │
│ 6. HDMI 線(Micro HDMI → HDMI) │
│ → 這是「眼睛的神經」,把畫面送到螢幕 │
│ │
│ ⚠️ 注意:Pi 4/5 用的是 Micro HDMI,不是一般的 HDMI! │
│ 很多人第一次買錯線,記得確認接頭大小。 │
└─────────────────────────────────────────────────────┘
螢幕類型比較表
💡 比喻:買電視也有分液晶、OLED、投影機,螢幕也有不同類型
| 類型 | 接法 | 優點 | 缺點 | 適合場景 | 價格 |
|---|---|---|---|---|---|
| HDMI 螢幕 | HDMI 線直接插 | 最簡單、解析度高 | 佔空間 | POS 主螢幕 | NT$2000-5000 |
| 官方 7 吋觸控螢幕 | DSI 排線 | 觸控、官方支援 | 只有 7 吋 | POS 觸控 | NT$2500 |
| GPIO 3.5/5 吋小螢幕 | GPIO Pin + SPI | 小巧 | 解析度低、需驅動 | 客顯、狀態顯示 | NT$400-800 |
| USB 螢幕 | USB 線 | 即插即用 | 需驅動 | 副螢幕 | NT$1500-3000 |
怎麼選?
你要做什麼?
│
├─ POS 收銀主螢幕 → 7 吋觸控螢幕(DSI)或 HDMI 觸控螢幕
│
├─ 客人看的顯示器 → GPIO 小螢幕 或 HDMI 第二螢幕
│
├─ 工廠看板 → HDMI 大螢幕(接電視也行)
│
└─ 自己開發測試 → 任何 HDMI 螢幕(家裡的電腦螢幕就行)
HDMI 螢幕接法(最簡單)
💡 比喻:跟接電視一樣簡單,HDMI 線兩頭一插就好
步驟
步驟 1:插 HDMI 線
┌──────────────┐ ┌──────────────┐
│ Raspberry Pi │ │ HDMI 螢幕 │
│ │ │ │
│ [Micro HDMI]──────────────[HDMI] │
│ │ HDMI線 │ │
└──────────────┘ └──────────────┘
步驟 2:螢幕接電源(接插頭)
步驟 3:Pi 接電源 → 開機 → 畫面出現!
步驟 4(選配):觸控螢幕加 USB 線
┌──────────────┐ ┌──────────────┐
│ Raspberry Pi │ │ 觸控 HDMI 螢幕│
│ │ │ │
│ [Micro HDMI]──────────────[HDMI] │
│ [USB-A]───────────────────[USB] │
│ │ 觸控訊號 │ │
└──────────────┘ └──────────────┘
config.txt 設定解析度
# 編輯 Pi 的設定檔 // 調整螢幕輸出設定
sudo nano /boot/config.txt // 開啟設定檔
# 常用解析度設定 // 根據螢幕選擇
hdmi_group=2 // 設定為 DMT 模式(電腦螢幕用)
hdmi_mode=82 // 設定為 1920x1080 60Hz
# 如果螢幕沒畫面 // 強制輸出 HDMI 訊號
hdmi_force_hotplug=1 // 即使沒偵測到螢幕也強制輸出
# 常用 hdmi_mode 對照 // 選擇適合的解析度
# hdmi_mode=4 → 640x480 // 小螢幕用
# hdmi_mode=16 → 1024x768 // 7 吋螢幕用
# hdmi_mode=82 → 1920x1080 // Full HD
# hdmi_mode=85 → 1280x720 // HD
# 儲存後重新開機 // 讓設定生效
sudo reboot // 重新啟動 Pi
官方 7 吋觸控螢幕接法(DSI 排線)
💡 比喻:這就像把兩台機器用「臍帶」連起來 DSI 排線就是 Pi 和螢幕之間的臍帶,傳送畫面訊號。
接線圖
Pi 本體(背面)
┌──────────────────────┐
│ │
│ ┌────────────┐ │
│ │ DSI 接口 │ │ ← 扁平排線插這裡
│ └────────────┘ │
│ │
│ ┌────────────────┐ │
│ │ GPIO 40Pin │ │ ← 電源線接這裡(5V + GND)
│ │ ○○○○○○○○○○○○○ │ │
│ │ ○○○○○○○○○○○○○ │ │
│ └────────────────┘ │
│ │
└──────────────────────┘
↕ DSI 排線(15pin 扁平排線)
┌──────────────────────┐
│ 觸控螢幕控制板 │
│ │
│ ┌────────────┐ │
│ │ DSI 接口 │ │ ← 排線另一端插這裡
│ └────────────┘ │
│ │
│ [5V] [GND] │ ← 跳線從 Pi 的 GPIO 接過來
│ │
│ ┌────────────────┐ │
│ │ │ │
│ │ 7 吋觸控面板 │ │
│ │ │ │
│ └────────────────┘ │
└──────────────────────┘
詳細步驟
# 步驟 1:關閉 Pi 電源 // 安全第一!帶電操作可能燒壞
# ⚠️ 一定要先拔電源線!
# 步驟 2:打開 DSI 接口的固定夾 // 輕輕往上撥開
# Pi 和螢幕板上各有一個 DSI 接口
# 固定夾是黑色的小蓋子,往上輕輕掀開
# 步驟 3:插入排線 // 注意金手指方向!
# ⚠️ 金手指(金色接點)朝向接口的接點方向
# Pi 端:金手指朝向 USB 接口那一側
# 螢幕端:金手指朝向螢幕面板那一側
# 如果插反了,螢幕不會亮,但不會燒壞
# 步驟 4:壓下固定夾 // 把排線固定住
# 輕輕按下黑色固定夾,聽到「喀」一聲
# 步驟 5:接電源跳線 // 從 Pi 的 GPIO 供電給螢幕
# 用杜邦線(母對母)連接:
# Pi GPIO Pin 2 (5V) → 螢幕板的 5V // 供電(紅線)
# Pi GPIO Pin 6 (GND) → 螢幕板的 GND // 接地(黑線)
GPIO 電源接線對照
Pi GPIO 接腳(左上角往下數):
Pin 1 (3.3V) ● ● Pin 2 (5V) ← 接到螢幕 5V(紅線)
Pin 3 (SDA) ● ● Pin 4 (5V)
Pin 5 (SCL) ● ● Pin 6 (GND) ← 接到螢幕 GND(黑線)
Pin 7 (GPIO4) ● ● Pin 8
... ...
# 步驟 6:開機 // 系統會自動偵測 DSI 螢幕
sudo reboot // 重新開機
# 步驟 7:如果畫面上下顛倒 // 加一行設定即可
sudo nano /boot/config.txt // 開啟設定檔
# 在最後面加上 // 旋轉螢幕 180 度
display_rotate=2 // 0=正常 1=90度 2=180度 3=270度
sudo reboot // 重新開機讓設定生效
# 確認觸控功能 // 用手指點螢幕看有沒有反應
# 如果觸控沒反應,檢查排線是否插好
GPIO 小螢幕接法(SPI)
💡 比喻:這是最麻煩的接法,像拼拼圖一樣,每條線都要對準位置 但好處是螢幕很小、很便宜,適合做「客顯」或狀態顯示。
Pin 對應表
GPIO 小螢幕接線圖:
Raspberry Pi GPIO 3.5 吋 SPI 螢幕
┌────────────────┐ ┌──────────────┐
│ │ │ │
│ Pin 1 (3.3V) ─────────── VCC │ ← 電源 3.3V
│ │ │ │
│ Pin 6 (GND) ─────────── GND │ ← 接地
│ │ │ │
│ Pin 19 (MOSI) ─────────── SDA/DIN │ ← 資料輸出
│ │ │ │
│ Pin 23 (SCLK) ─────────── SCL/CLK │ ← 時脈訊號
│ │ │ │
│ Pin 24 (CE0) ─────────── CS │ ← 晶片選擇
│ │ │ │
│ Pin 22 (GPIO25)─────────── DC/RS │ ← 資料/命令切換
│ │ │ │
│ Pin 18 (GPIO24)─────────── RST │ ← 重置
│ │ │ │
│ Pin 12 (GPIO18)─────────── BL │ ← 背光控制
│ │ │ │
└────────────────┘ └──────────────┘
⚠️ 重要:VCC 接 3.3V,不是 5V!接 5V 會燒壞螢幕!
安裝驅動
# 下載 LCD 驅動程式 // 從 GitHub 取得驅動
git clone https://github.com/goodtft/LCD-show.git // 克隆驅動庫
cd LCD-show // 進入驅動目錄
# 安裝 3.5 吋螢幕驅動 // 會自動修改系統設定並重開機
sudo ./LCD35-show // 安裝 3.5 吋驅動
# 如果要切回 HDMI 輸出 // 改回一般螢幕
sudo ./LCD-hdmi // 切換回 HDMI
# 安裝 5 吋螢幕驅動 // 另一種尺寸的指令
sudo ./LCD5-show // 安裝 5 吋驅動
# 確認螢幕解析度 // 查看目前顯示設定
fbset // 顯示 framebuffer 設定
POS 完整硬體接線圖
💡 比喻:這就像組裝一台電腦,每個週邊設備都要插到對的孔
┌──────────────────────────┐
│ Raspberry Pi 4 │
│ │
[觸控螢幕] ←─HDMI──│ HDMI 0 USB-A 上左 ──│──→ [熱感應印表機 USB]
│ HDMI 1 USB-A 上右 ──│──→ [條碼掃描器 USB]
[電源 5V3A] ──USB-C─│ USB-C USB-A 下左 ──│──→ [觸控螢幕 USB(觸控訊號)]
│ USB-A 下右 ──│──→ [備用 USB 裝置]
[網路線] ──RJ45─────│ LAN GPIO 40Pin──│──→ [擴充裝置]
│ WiFi 天線 ──│──→ [備用無線網路]
│ MicroSD 卡(底部) │
└──────────────────────────┘
│
│ 區域網路 / 網際網路
↓
┌──────────────┐
│ 雲端 Server │
│ (Railway) │
└──────────────┘
錢箱的接法(特別注意):
[熱感應印表機] ──RJ11 線── [錢箱]
↑ 錢箱不是直接接 Pi,而是透過印表機的 RJ11 孔控制!
印表機收到開錢箱指令後,會送電訊號給錢箱彈開。
散熱處理
💡 比喻:Pi 就像一個小暖爐,不散熱的話會過熱關機 POS 機要 24 小時運作,散熱特別重要!
散熱方案比較:
方案 1:貼散熱片(最便宜,NT$50)
┌──────┐
│ Pi │
│ [■■] │ ← 小銅片/鋁片貼在 CPU 和 RAM 上
└──────┘
✅ 便宜、安靜
❌ 散熱效果有限,高負載時可能不夠
方案 2:風扇外殼(NT$200-400)
┌──────┐
│ 風扇 │ ← 小風扇主動吹風
│ Pi │
└──────┘
✅ 散熱效果好
❌ 有風扇噪音,風扇壽命有限
方案 3:鋁合金散熱外殼(NT$300-600)
┌══════════┐
║ ║ ← 整個外殼就是散熱片
║ Pi ║ 透過金屬接觸導熱
║ ║
└══════════┘
✅ 散熱最好、完全無噪音、外觀好看
❌ 價格較高、比較重
🏪 POS 機建議:方案 3(鋁合金外殼)
原因:24 小時運作、無噪音、散熱足夠
config.txt 溫度監控設定
# 編輯設定檔 // 加入溫度控制
sudo nano /boot/config.txt // 開啟設定檔
# 溫度到 70°C 時降頻 // 保護 CPU 不過熱
temp_soft_limit=70 // 設定軟體溫度上限
# 溫度到 85°C 時強制關機 // 避免硬體損壞
# (Pi 預設就有這個保護,不用額外設定)
# 查看目前 CPU 溫度 // 隨時監控
vcgencmd measure_temp // 顯示 CPU 溫度
# 持續監控溫度 // 每秒刷新一次
watch -n 1 vcgencmd measure_temp // 即時溫度監控
# 查看 CPU 時脈 // 確認有沒有降頻
vcgencmd measure_clock arm // 顯示 CPU 頻率
SD 卡燒錄
💡 比喻:SD 卡就像 Pi 的硬碟,燒錄就像在新電腦裝 Windows
步驟
# 步驟 1:下載 Raspberry Pi Imager // 官方燒錄工具
# 到 https://www.raspberrypi.com/software/ 下載
# 支援 Windows / macOS / Linux
# 步驟 2:插入 SD 卡到電腦 // 用讀卡機
# 步驟 3:開啟 Raspberry Pi Imager // 選擇三個東西
# (1) 選擇 OS → Raspberry Pi OS Lite (64-bit) // 無桌面版,適合 Server
# (2) 選擇儲存裝置 → 你的 SD 卡 // 確認不要選錯碟
# (3) 按齒輪⚙️進入進階設定 // 最重要的步驟!
# 步驟 4:進階設定(⚠️ 一定要設定!) // 不設定的話開機後很難連線
# ☑️ 設定主機名稱 → pos-pi // 方便在網路上找到
# ☑️ 啟用 SSH → 使用密碼登入 // 遠端連線必備
# ☑️ 設定使用者帳號密碼 // 帳號: pi 密碼: 你自己設
# ☑️ 設定 WiFi → 輸入 WiFi 名稱和密碼 // 讓 Pi 連上網路
# ☑️ 設定語系 → Asia/Taipei // 時區設定
# 步驟 5:按「寫入」按鈕 // 開始燒錄(大約 5-10 分鐘)
# 燒錄完成後安全退出 SD 卡
# 步驟 6:把 SD 卡插入 Pi // 金手指朝上,輕輕推入底部插槽
# 然後接上電源 → 開機!
# 步驟 7:從電腦用 SSH 連線 // 確認 Pi 已經開機成功
ssh pi@pos-pi.local // 用主機名稱連線
# 或者用 IP 位址連線 // 如果 .local 找不到
ssh pi@192.168.1.xxx // 用實際 IP 連線
🤔 我這樣寫為什麼會錯?
常見錯誤 1:排線插反了
❌ 錯誤:DSI 排線金手指方向插反
┌──────────┐
│ DSI 接口 │
│ [排線反插] │ ← 金手指朝上(錯誤!)
└──────────┘
✅ 正確:金手指朝下,面向接口的金屬接點
┌──────────┐
│ DSI 接口 │
│ [排線正插] │ ← 金手指朝下對準接點
└──────────┘
💡 記憶法:金對金(金手指對金屬接點)
常見錯誤 2:電源不足
# ❌ 錯誤:用手機充電器(5V 1A) // 電流不夠
# 症狀:Pi 開機後隨機當機、螢幕閃爍、USB 裝置斷線
# 螢幕右上角出現閃電⚡符號 = 電力不足警告
# ✅ 正確:使用 5V 3A 的 USB-C 電源 // 官方推薦規格
# Pi 4 建議 5V 3A(15W)
# Pi 5 建議 5V 5A(25W)
# 接了觸控螢幕 + USB 裝置後,耗電更大!
# 檢查電壓是否正常 // 確認供電穩定
vcgencmd get_throttled // 查看節流狀態
# 回傳 0x0 表示正常 // 任何其他值表示曾經供電不足
常見錯誤 3:SD 卡太慢
# ❌ 錯誤:用老舊的 Class 4 SD 卡 // 讀寫速度太慢
# 症狀:開機要 3 分鐘、程式載入超慢、系統卡頓
# ✅ 正確:使用 Class 10 / U3 / A2 等級的 SD 卡
# 推薦品牌:SanDisk Extreme / Samsung EVO
# 容量至少 32GB
# 測試 SD 卡速度 // 確認讀寫效能
sudo dd if=/dev/zero of=/tmp/test bs=4M count=100 oflag=dsync // 測試寫入速度
# 好的卡應該有 40MB/s 以上 // 差的卡可能只有 5MB/s
常見錯誤 4:GPIO 接錯 Pin 導致短路
# ❌ 錯誤:5V 和 GND 接反,或 5V 接到 3.3V 裝置 // 可能燒壞零件!
# ⚠️ GPIO 沒有保護電路,接錯就是直接燒!
# ✅ 正確做法:
# 1. 接線前先斷電 // 一定要拔電源
# 2. 對照 GPIO 腳位圖 // 數清楚 Pin 編號
# 3. 先用三用電表量測 // 確認電壓正確
# 4. VCC 通常接紅線 // 統一顏色方便辨識
# 5. GND 通常接黑線 // 接地永遠用黑線
# 查看 GPIO 腳位配置 // 確認目前狀態
pinout // 顯示 Pi 的 GPIO 腳位圖(需要先安裝 gpiozero)
常見錯誤 5:沒有接地線
# ❌ 錯誤:只接 VCC(電源)沒接 GND(接地) // 電路不通
# 症狀:裝置完全沒反應,或訊號不穩定
# ✅ 正確:VCC 和 GND 一定要成對 // 就像水管要有進水口和出水口
# 電流從 VCC 流出,經過裝置,再從 GND 流回來
# 沒有 GND 就像水管沒有出水口,水流不動
# 記憶法:有電(VCC)就要有地(GND) // 永遠成對出現
實用小工具
# 查看 Pi 硬體資訊 // 確認你的 Pi 型號
cat /proc/cpuinfo // 顯示 CPU 資訊
# 查看記憶體使用量 // 確認有多少 RAM
free -h // 顯示記憶體使用狀況
# 查看儲存空間 // 確認 SD 卡剩餘空間
df -h // 顯示磁碟使用狀況
# 查看 USB 裝置 // 確認印表機、掃描器有被偵測到
lsusb // 列出所有 USB 裝置
# 查看 GPIO 狀態 // 確認腳位設定
raspi-gpio get // 顯示所有 GPIO 狀態
# 更新系統 // 保持最新狀態
sudo apt update && sudo apt upgrade -y // 更新所有套件