從零組裝一台 POS 機實戰
為什麼要自己組?
💡 比喻:自己組電腦 vs 買品牌電腦 品牌 POS 機動輒 NT$20,000-50,000,但其實裡面的零件跟 Pi 差不多。 自己組一台只要 NT$9,000 左右,還能完全客製化! 就像自己組電腦一樣,省錢又有成就感。
購買清單
💡 比喻:去超市買菜前要先列清單,免得漏買
┌─────────────────────────────────────────────────────────┐
│ POS 機完整購買清單 │
├──────────────────────┬──────────┬────────────────────────┤
│ 品項 │ 預估價格 │ 備註 │
├──────────────────────┼──────────┼────────────────────────┤
│ Raspberry Pi 4 4GB │ NT$2,000 │ 建議買 4GB 版本 │
│ 7 吋觸控螢幕(官方) │ NT$2,500 │ 含 DSI 排線 │
│ 熱感應印表機(58mm) │ NT$1,500 │ USB 介面,ESC/POS 協議 │
│ 條碼掃描器 │ NT$800 │ USB 介面,即插即用 │
│ 錢箱 │ NT$1,200 │ RJ11 介面,接印表機 │
│ USB-C 電源 5V 3A │ NT$300 │ 官方認證最好 │
│ MicroSD 卡 32GB │ NT$200 │ SanDisk Class 10 │
│ 鋁合金散熱外殼 │ NT$500 │ 含散熱柱 │
├──────────────────────┼──────────┼────────────────────────┤
│ 總計 │ NT$9,000 │ 比傳統 POS 便宜一半! │
└──────────────────────┴──────────┴────────────────────────┘
🛒 台灣購買管道:
蝦皮購物 → 搜尋「Raspberry Pi 4」「58mm 熱感應印表機」
露天拍賣 → 搜尋「樹莓派」「POS 印表機」
台灣樹莓派官方代理 → https://www.raspberrypi.com.tw/
光華商場 → 實體店面可以現場看
步驟一:組裝硬體
💡 比喻:就像組樂高,照著說明書一步一步來
1.1 安裝散熱外殼
步驟圖解:
(1) 拆開鋁合金外殼 // 通常分上下兩片
┌═══════════════┐
│ 上蓋(有散熱柱)│
└═══════════════┘
┌═══════════════┐
│ 下蓋(有螺絲孔)│
└═══════════════┘
(2) 把 Pi 放進下蓋 // 對準螺絲孔和接口位置
┌═══════════════┐
│ ┌───────────┐ │
│ │ Pi 本體 │ │
│ └───────────┘ │
└═══════════════┘
(3) 散熱柱對準 CPU 和 RAM // 塗一點散熱膏效果更好
(4) 蓋上上蓋,鎖螺絲 // 不要鎖太緊
完成!
┌═══════════════════════════┐
║ ║
║ [HDMI][HDMI] [USB][USB] ║ ← 所有接口都露出來
║ [USB-C][LAN] [USB][USB] ║
║ ║
└═══════════════════════════┘
1.2 接上觸控螢幕
(1) DSI 排線連接 Pi 和螢幕板 // 參考上一章的接法
(2) 跳線供電:Pin 2 (5V) → 螢幕 5V // 紅線
Pin 6 (GND) → 螢幕 GND // 黑線
(3) 用螢幕支架固定螢幕 // 調整到適合的角度
組裝後的樣子(側面圖):
┌─────────────┐
│ 7 吋螢幕 │ ← 面向客人/店員
│ (觸控) │
│ │
└──┬──────┬──┘
│ │ ← 螢幕支架
┌──┴──────┴──┐
║ Pi + 外殼 ║ ← 放在螢幕後面或下面
║ ║
└════════════┘
1.3 接上所有 USB 裝置
Pi USB 接口分配:
USB-A 上左 → 熱感應印表機(USB-B 線)
USB-A 上右 → 條碼掃描器(USB 線)
USB-A 下左 → 觸控螢幕 USB(觸控訊號)
USB-A 下右 → 備用(可接鍵盤 debug)
印表機 RJ11 → 錢箱 RJ11(錢箱線)
步驟二:系統安裝
2.1 燒錄系統
# 使用 Raspberry Pi Imager 燒錄 // 選擇 Raspberry Pi OS Lite 64-bit
# 進階設定:
# - 主機名稱: pos-pi // 方便識別
# - SSH: 啟用 // 遠端管理
# - WiFi: 設定好 // 連網
# - 使用者: pi // 預設帳號
# - 時區: Asia/Taipei // 台灣時區
# 燒好後插入 Pi,接電源開機 // 等待 1-2 分鐘
# 從電腦 SSH 連線進去 // 開始設定
ssh pi@pos-pi.local // 連線到 Pi
2.2 基本系統設定
# 更新系統 // 第一件事永遠是更新
sudo apt update // 更新套件清單
sudo apt upgrade -y // 升級所有套件
# 設定固定 IP(方便管理) // 不用每次找 IP
sudo nmcli con mod "Wired connection 1" \
ipv4.addresses 192.168.1.100/24 \
ipv4.gateway 192.168.1.1 \
ipv4.dns "8.8.8.8,8.8.4.4" \
ipv4.method manual // 設定固定 IP 為 192.168.1.100
# 重新啟動網路 // 讓設定生效
sudo nmcli con up "Wired connection 1" // 套用網路設定
# 確認 IP // 檢查是否正確
ip addr show eth0 // 顯示網路介面資訊
2.3 安裝 Node.js
# 安裝 Node.js 20 LTS // Print Agent 需要用到
curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash - // 加入 Node.js 套件庫
sudo apt install -y nodejs // 安裝 Node.js
# 確認版本 // 應該顯示 v20.x.x
node --version // 檢查 Node.js 版本
npm --version // 檢查 npm 版本
2.4 安裝 .NET Runtime
# 安裝 .NET 8 Runtime // 如果要跑 .NET 應用
curl -sSL https://dot.net/v1/dotnet-install.sh | bash /dev/stdin --channel 8.0 --runtime aspnetcore // 安裝 ASP.NET Core Runtime
# 加入環境變數 // 讓系統找得到 dotnet
echo 'export DOTNET_ROOT=$HOME/.dotnet' >> ~/.bashrc // 設定 .NET 路徑
echo 'export PATH=$PATH:$HOME/.dotnet' >> ~/.bashrc // 加入 PATH
source ~/.bashrc // 重新載入設定
# 確認安裝 // 應該顯示 8.0.x
dotnet --info // 顯示 .NET 資訊
2.5 安裝 Chromium(Kiosk 用)
# 安裝桌面環境(最小安裝) // Kiosk 模式需要圖形介面
sudo apt install -y --no-install-recommends xserver-xorg x11-xserver-utils xinit // 安裝 X11 基本元件
sudo apt install -y --no-install-recommends chromium-browser // 安裝 Chromium 瀏覽器
sudo apt install -y --no-install-recommends openbox // 安裝輕量視窗管理器
# 安裝觸控支援 // 讓觸控螢幕可以用
sudo apt install -y xdotool unclutter // 安裝觸控輔助工具
步驟三:設定 Kiosk 模式
💡 比喻:把 Pi 變成一台「專用機」,開機就只顯示 POS 畫面
# 建立 Kiosk 啟動腳本 // 開機自動執行
cat > /home/pi/kiosk.sh << 'KIOSK_EOF' // 寫入啟動腳本
#!/bin/bash // 指定用 bash 執行
# POS Kiosk 啟動腳本 // 腳本說明
# 隱藏滑鼠游標 // 觸控螢幕不需要游標
unclutter -idle 0.5 -root & // 0.5 秒不動就隱藏游標
# 停用螢幕保護 // POS 需要螢幕常亮
xset s off // 關閉螢幕保護
xset -dpms // 關閉電源管理
xset s noblank // 不要黑屏
# 啟動 Chromium Kiosk // 全螢幕顯示 POS
chromium-browser \
--kiosk \ // Kiosk 全螢幕模式
--noerrdialogs \ // 不顯示錯誤
--disable-infobars \ // 不顯示資訊列
--no-first-run \ // 跳過首次設定
--disable-translate \ // 不要翻譯提示
--disable-features=TranslateUI \ // 停用翻譯 UI
--check-for-update-interval=31536000 \ // 不檢查更新
--incognito \ // 無痕模式
--disable-pinch \ // 停用手指縮放
--overscroll-history-navigation=0 \ // 停用滑動換頁
'http://localhost:5000' // POS 網址
KIOSK_EOF
# 設定腳本可執行 // 給予執行權限
chmod +x /home/pi/kiosk.sh // 加上執行權限
# 設定自動登入並啟動 Kiosk // 開機自動進入
cat > /home/pi/.xinitrc << 'XINIT_EOF' // 寫入 X11 啟動設定
exec openbox-session & // 啟動視窗管理器
/home/pi/kiosk.sh // 執行 Kiosk 腳本
XINIT_EOF
# 設定自動登入後啟動 X // .bashrc 最後加上
echo '[[ -z \$DISPLAY && \$XDG_VTNR -eq 1 ]] && startx -- -nocursor' >> /home/pi/.bashrc // 自動啟動圖形介面
# 設定自動登入 // 不用打密碼
sudo raspi-config nonint do_boot_behaviour B2 // 設定自動登入到 Console
步驟四:安裝 Print Agent
# 建立 Print Agent 目錄 // 存放印表機代理程式
mkdir -p /home/pi/print-agent // 建立目錄
cd /home/pi/print-agent // 進入目錄
# 初始化 Node.js 專案 // 建立 package.json
npm init -y // 快速初始化
# 安裝必要套件 // 印表機和 WebSocket 相關
npm install escpos escpos-usb ws express // 安裝 ESC/POS 和通訊套件
# 建立設定檔 // 設定印表機連線參數
cat > config.json << 'CONFIG_EOF' // 寫入設定
{
"printer": {
"vendorId": "0x0416",
"productId": "0x5011"
},
"server": {
"port": 3001
}
}
CONFIG_EOF
# 確認印表機 USB 資訊 // 找到 vendorId 和 productId
lsusb // 列出 USB 裝置
# 會看到類似:Bus 001 Device 004: ID 0416:5011 Printer
# ^^^^ ^^^^
# 這兩個就是 vendorId 和 productId
步驟五:連接印表機 + 測試列印
# 給 USB 印表機權限 // 讓 Node.js 可以存取
sudo usermod -a -G lp pi // 把 pi 加入 lp 群組
# 建立 udev 規則 // 讓印表機不用 sudo 也能用
sudo cat > /etc/udev/rules.d/99-printer.rules << 'UDEV_EOF' // 寫入權限規則
SUBSYSTEM=="usb", ATTR{idVendor}=="0416", ATTR{idProduct}=="5011", MODE="0666" // 設定 USB 印表機權限
UDEV_EOF
# 重新載入 udev 規則 // 讓規則生效
sudo udevadm control --reload-rules // 重新載入
sudo udevadm trigger // 觸發規則
# 測試直接印列 // 不用程式,直接送文字
echo "POS 印表機測試成功!" > /dev/usb/lp0 // 直接送文字到印表機
# 如果印表機有吐出紙張,表示連接成功!
# 用 Python 測試(更可靠) // 快速測試用
python3 -c "
import usb.core # 匯入 USB 模組
dev = usb.core.find(idVendor=0x0416, idProduct=0x5011) # 找到印表機
if dev: # 如果找到
print('印表機已偵測到!') # 顯示成功訊息
else: # 如果沒找到
print('找不到印表機,請檢查 USB 連線') # 顯示錯誤訊息
" // 執行 Python 測試
步驟六:連接條碼掃描器 + 測試掃描
# 條碼掃描器通常是 USB HID 裝置 // 就像鍵盤一樣
# 插上 USB 就能用,不需要安裝驅動
# 確認掃描器被偵測到 // 檢查 USB 裝置清單
lsusb // 列出 USB 裝置
# 應該看到類似:Barcode Scanner 或 HID Device
# 測試掃描 // 開一個文字編輯器,掃描條碼
# 掃描器會像鍵盤一樣輸入條碼數字 + Enter
cat // 啟動簡單的文字輸入
# 然後拿條碼掃描器對著商品掃描
# 螢幕上會出現條碼數字,例如:4710088430014
# 按 Ctrl+C 結束
# 查看掃描器的輸入裝置 // 進階偵錯用
cat /proc/bus/input/devices // 列出所有輸入裝置
# 找到 Barcode 或 Scanner 相關的項目
# 測試掃描器的事件 // 確認按鍵訊號
sudo cat /dev/input/event0 // 讀取輸入事件(按 Ctrl+C 結束)
步驟七:連接錢箱 + 測試開啟
# 錢箱是透過印表機控制的 // 錢箱線接印表機的 RJ11 孔
# 印表機收到特定指令後,會送電訊號給錢箱
# 錢箱接線:
# 熱感應印表機背面有 RJ11 孔(像電話線插孔)
# 用 RJ11 線連接印表機和錢箱
# 測試開錢箱(ESC/POS 指令) // 送開錢箱指令給印表機
python3 -c "
# ESC/POS 開錢箱指令
import struct # 匯入結構模組
cmd = b'\x1b\x70\x00\x19\xfa' # ESC p 0 25 250 開錢箱指令
with open('/dev/usb/lp0', 'wb') as f: # 開啟印表機裝置
f.write(cmd) # 送出開錢箱指令
print('錢箱已開啟!') # 顯示成功訊息
" // 執行開錢箱指令
# 如果錢箱沒反應 // 偵錯步驟
# 1. 檢查 RJ11 線有沒有插好 // 兩端都要「喀」一聲
# 2. 試試另一組指令 // 不同印表機指令可能不同
python3 -c "
cmd = b'\x1b\x70\x01\x19\xfa' # 試試 Pin 1 而不是 Pin 0
with open('/dev/usb/lp0', 'wb') as f: # 開啟印表機裝置
f.write(cmd) # 送出替代指令
" // 嘗試替代指令
步驟八:部署 POS Web App
# 建立 POS 網站目錄 // 存放前端程式
mkdir -p /home/pi/pos-app // 建立目錄
# 方法 1:直接用 git clone // 從你的 Git 倉庫部署
cd /home/pi/pos-app // 進入目錄
git clone https://github.com/your-repo/pos-frontend.git . // 克隆前端專案
# 方法 2:用 scp 從電腦傳輸 // 如果沒有 Git 倉庫
# 在你的電腦上執行:
scp -r ./dist/* pi@pos-pi.local:/home/pi/pos-app/ // 傳輸打包好的檔案
# 安裝 serve 來提供靜態檔案 // 簡單的 HTTP 伺服器
sudo npm install -g serve // 全域安裝 serve
# 用 systemd 管理 POS 服務 // 讓它開機自動啟動
sudo cat > /etc/systemd/system/pos-web.service << 'SERVICE_EOF' // 寫入服務設定
[Unit] // 單元設定
Description=POS Web Application // 服務描述
After=network.target // 在網路啟動後才執行
[Service] // 服務設定
Type=simple // 簡單服務類型
User=pi // 用 pi 使用者執行
WorkingDirectory=/home/pi/pos-app // 工作目錄
ExecStart=/usr/bin/serve -s -l 5000 // 啟動指令,監聽 5000 埠
Restart=always // 崩潰時自動重啟
RestartSec=5 // 5 秒後重啟
[Install] // 安裝設定
WantedBy=multi-user.target // 多使用者模式啟動
SERVICE_EOF
# 啟動服務 // 讓 POS 開始運作
sudo systemctl daemon-reload // 重新載入 systemd 設定
sudo systemctl enable pos-web // 設定開機自動啟動
sudo systemctl start pos-web // 立即啟動服務
sudo systemctl status pos-web // 確認服務狀態
步驟九:測試完整流程
💡 比喻:餐廳開幕前的試營運,每個環節都要跑一遍
完整 POS 操作流程測試:
步驟 1:開機
Pi 接電 → 自動進入 Kiosk → 顯示 POS 畫面
✅ 確認:螢幕顯示 POS 首頁
步驟 2:掃描商品條碼
拿條碼掃描器 → 對準商品條碼 → 「嗶」一聲
✅ 確認:商品出現在購物車列表
步驟 3:加入購物車
可以連續掃描多個商品
✅ 確認:數量和小計正確
步驟 4:結帳
按「結帳」按鈕 → 選擇付款方式 → 確認
✅ 確認:金額計算正確
步驟 5:列印收據
結帳後自動列印 → 熱感應印表機出紙
✅ 確認:收據內容正確(品項、數量、金額、時間)
步驟 6:開錢箱
列印收據的同時 → 錢箱自動彈開
✅ 確認:錢箱有彈開
步驟 7:完成交易
關錢箱 → 回到 POS 首頁 → 等待下一位客人
✅ 確認:畫面回到首頁
# 自動化測試腳本 // 一次測試所有硬體
cat > /home/pi/test-hardware.sh << 'TEST_EOF' // 寫入測試腳本
#!/bin/bash // 指定 bash
echo "=== POS 硬體測試開始 ===" // 顯示開始訊息
echo "1. 測試螢幕..." // 測試螢幕
if [ -n "\$DISPLAY" ]; then // 檢查是否有顯示器
echo " ✅ 螢幕正常" // 螢幕正常
else // 沒有顯示器
echo " ❌ 沒有偵測到螢幕" // 顯示錯誤
fi // 結束判斷
echo "2. 測試印表機..." // 測試印表機
if [ -e /dev/usb/lp0 ]; then // 檢查印表機裝置
echo " ✅ 印表機已連接" // 印表機正常
echo "測試列印" > /dev/usb/lp0 // 送出測試文字
else // 沒有印表機
echo " ❌ 找不到印表機" // 顯示錯誤
fi // 結束判斷
echo "3. 測試條碼掃描器..." // 測試掃描器
if lsusb | grep -qi "scanner\|barcode\|HID"; then // 搜尋 USB 裝置
echo " ✅ 條碼掃描器已連接" // 掃描器正常
else // 沒有掃描器
echo " ⚠️ 未偵測到(可能顯示為 HID 裝置)" // 顯示警告
fi // 結束判斷
echo "4. 測試網路..." // 測試網路
if ping -c 1 8.8.8.8 > /dev/null 2>&1; then // 嘗試 ping Google
echo " ✅ 網路連線正常" // 網路正常
else // 沒有網路
echo " ❌ 無法連線到網路" // 顯示錯誤
fi // 結束判斷
echo "5. 系統資訊..." // 顯示系統資訊
echo " CPU 溫度: \$(vcgencmd measure_temp)" // 顯示 CPU 溫度
echo " 記憶體: \$(free -h | awk '/Mem/{print \$3\"/\"\$2}')" // 顯示記憶體
echo " SD 卡: \$(df -h / | awk 'NR==2{print \$3\"/\"\$2}')" // 顯示儲存空間
echo "=== 測試完成 ===" // 顯示完成訊息
TEST_EOF
# 設定腳本可執行 // 加上權限
chmod +x /home/pi/test-hardware.sh // 設定執行權限
# 執行測試 // 看結果
./test-hardware.sh // 執行硬體測試
步驟十:設定遠端管理
💡 比喻:就算人不在店裡,也能用手機遠端管理 POS 機
SSH 遠端連線
# 確認 SSH 已啟用 // 應該在燒錄時就設定好了
sudo systemctl status ssh // 檢查 SSH 服務狀態
# 從你的電腦連線 // 在電腦的終端機執行
ssh pi@pos-pi.local // 用主機名稱連線
# 或
ssh pi@192.168.1.100 // 用固定 IP 連線
# 設定 SSH Key 免密碼登入 // 更安全也更方便
# 在你的電腦上執行:
ssh-keygen -t ed25519 // 產生金鑰對
ssh-copy-id pi@pos-pi.local // 把公鑰複製到 Pi
# 之後連線就不用再輸入密碼了
遠端看螢幕(VNC)
# 安裝 VNC Server // 遠端桌面
sudo apt install -y realvnc-vnc-server // 安裝 VNC
# 啟用 VNC // 設定開機自動啟動
sudo raspi-config nonint do_vnc 0 // 啟用 VNC Server
# 在電腦上用 VNC Viewer 連線 // 下載 RealVNC Viewer
# 輸入 pos-pi.local 或 192.168.1.100 // 就能看到 Pi 的螢幕畫面
自動更新腳本
# 建立自動更新腳本 // 從 Git 拉最新版本並重啟
cat > /home/pi/update-pos.sh << 'UPDATE_EOF' // 寫入更新腳本
#!/bin/bash // 指定 bash
echo "開始更新 POS 系統..." // 顯示更新訊息
cd /home/pi/pos-app // 進入 POS 目錄
git pull origin main // 拉取最新程式碼
npm install // 安裝新的依賴
sudo systemctl restart pos-web // 重啟 POS 服務
echo "更新完成!" // 顯示完成訊息
UPDATE_EOF
chmod +x /home/pi/update-pos.sh // 設定執行權限
# 設定每天凌晨 3 點自動更新 // 用 crontab
(crontab -l 2>/dev/null; echo "0 3 * * * /home/pi/update-pos.sh >> /home/pi/update.log 2>&1") | crontab - // 加入排程
🤔 我這樣寫為什麼會錯?
常見錯誤 1:開機黑畫面
# ❌ 錯誤:開機後螢幕全黑,什麼都沒有 // 最常見的問題
# 可能原因:
# 1. SD 卡沒燒好 // 重新燒錄一次
# 2. 電源不足 // 換 5V 3A 的電源
# 3. HDMI 線沒插好 // 重新插拔
# 4. 螢幕沒開 // 確認螢幕有通電
# ✅ 偵錯步驟:
# 看 Pi 上的 LED 燈 // 紅燈和綠燈的意義
# 紅燈亮 = 有供電 // 如果紅燈不亮,電源有問題
# 綠燈閃爍 = 在讀取 SD 卡 // 如果綠燈不亮,SD 卡有問題
# 綠燈連續閃 4 下 = 找不到系統 // SD 卡燒錄失敗,重來
# 綠燈連續閃 7 下 = kernel 錯誤 // 系統檔案損壞
常見錯誤 2:Kiosk 模式跳出來了
# ❌ 錯誤:客人不小心按到鍵盤快捷鍵,跳出 Kiosk // 尷尬
# 例如按了 Alt+F4、Ctrl+W、F11
# ✅ 解決方案:停用所有快捷鍵 // 在 Chromium 啟動參數加上
chromium-browser \
--kiosk \ // Kiosk 模式
--disable-pinch \ // 停用手指縮放
--overscroll-history-navigation=0 \ // 停用滑動換頁
--ash-no-nudges \ // 停用提示訊息
--disable-features=Translate,GlobalMediaControls \ // 停用翻譯和媒體控制
'http://localhost:5000' // 開啟 POS 頁面
# 如果真的跳出來了 // 重啟 Kiosk
sudo systemctl restart kiosk // 重啟 Kiosk 服務
常見錯誤 3:印表機列印亂碼
# ❌ 錯誤:印出來的中文是亂碼 // 編碼問題
# 原因:印表機預設用 ASCII,不支援 UTF-8 中文
# ✅ 正確做法:設定印表機編碼 // 不同印表機設定不同
# 方法 1:使用 Big5 編碼 // 台灣繁體中文
python3 -c "
text = '測試中文列印' # 測試文字
encoded = text.encode('big5') # 轉成 Big5 編碼
with open('/dev/usb/lp0', 'wb') as f: # 開啟印表機
f.write(b'\x1c\x26') # 開啟中文模式指令
f.write(encoded) # 送出編碼後的文字
f.write(b'\n\n\n') # 空幾行
f.write(b'\x1d\x56\x00') # 切紙指令
" // 用 Big5 編碼列印中文
# 方法 2:使用圖片列印 // 最可靠的方式
# 把文字渲染成圖片,再送給印表機
# 這樣任何字型、任何語言都能印
常見錯誤 4:錢箱不會開
# ❌ 錯誤:送了指令但錢箱沒反應 // 幾個常見原因
# 1. RJ11 線沒插好 // 重新插拔,要聽到「喀」一聲
# 2. 印表機不支援開錢箱 // 確認印表機型號有 RJ11 孔
# 3. 指令不對 // 不同印表機指令不同
# ✅ 偵錯步驟:
# 嘗試不同的開錢箱指令 // 常見的 ESC/POS 開錢箱指令
python3 -c "
commands = [ # 常見的開錢箱指令列表
b'\x1b\x70\x00\x19\xfa', # 指令 1:Pin 0
b'\x1b\x70\x01\x19\xfa', # 指令 2:Pin 1
b'\x10\x14\x01\x00\x05', # 指令 3:DLE DC4
b'\x1b\x70\x00\x32\xff', # 指令 4:較長脈衝
]
for i, cmd in enumerate(commands): # 逐一嘗試每個指令
print(f'嘗試指令 {i+1}...') # 顯示目前嘗試的指令
with open('/dev/usb/lp0', 'wb') as f: # 開啟印表機
f.write(cmd) # 送出指令
import time; time.sleep(1) # 等 1 秒看反應
" // 逐一測試開錢箱指令
完成!你的 POS 機組裝成功了!
🎉 恭喜!你現在擁有一台自己組的 POS 機!
成本:約 NT$9,000(比商用 POS 便宜 50% 以上)
功能:觸控操作、條碼掃描、收據列印、錢箱控制
管理:SSH 遠端管理、自動更新、雲端同步
┌─────────────┐
│ 觸控螢幕 │
│ POS 系統 │
└──┬───────┬──┘
│ │
┌───────┴───────┴───────┐
║ Raspberry Pi 4 ║
║ (你的 POS 大腦) ║
└═══════════════════════┘
│ │ │
[印表機] [掃描器] [錢箱]
│
[收據紙] ← 「嗶~您的收據,謝謝光臨!」