WORKS | 作品
小吃店點餐出單機:平板點餐、樹莓派列印取餐單
幫一家小吃店做的點餐出單系統。店員在平板上點餐、加料、結帳找零,樹莓派用 Python 透過 ESC/POS 指令驅動熱感出單機,印出含店家 Logo 的取餐單。菜單用設定檔管理,改價不用改程式。
- STACK / 技術
- Raspberry Pi 3 · Python · Flask · tkinter · ESC/POS · 熱感出單機 · Android 平板

實際交付的客戶案子,已去識別化,不寫店名與菜單品牌。
小吃店的櫃台很小,人潮一來,點餐、算錢、寫單給廚房同時進行,最容易出錯的是「加料」:同一個品項,每位客人加的東西都不一樣,手寫單常常看不清楚。
市售 POS 系統功能很多,但月費和設定對一家小店來說太重。店家要的其實只有三件事:點得快、算得對、廚房看得懂。
做了什麼
- 平板點餐:店員用平板操作,依類別選品項、點選加料,數量可加減,總額即時計算。
- 結帳找零:輸入收到的現金,自動算出找零。
- 列印取餐單:按下列印,熱感出單機印出取餐單:店家 Logo、單號、時間、每個品項與加料、小計與總額,印完自動切紙。
- 菜單設定檔:品項、價格、各類別可加的配料都放在設定檔,改價或換菜色不用改程式。
架構
| 部分 | 用什麼 |
|---|---|
| 主機 | 樹莓派 3(Python) |
| 操作介面 | 網頁版(Flask),平板用全螢幕瀏覽器開啟;另有 tkinter 桌面版 |
| 出單機 | 58mm 熱感出單機,USB 連接,Linux 下以裝置檔寫入 |
| 列印 | 自己寫 ESC/POS 指令:初始化、對齊、字體大小、Logo 點陣圖、切紙 |
| 遠端維護 | 店家同意下以遠端桌面連線處理問題,不用每次到店 |
幾個技術重點
- Logo 轉點陣圖:把店家 Logo 縮放、轉黑白,編成 ESC/POS 的點陣圖指令(
GS v 0),寬度對齊 8 的倍數,58mm 紙上印得清楚又不佔太多紙。 - 中文列印:依出單機的字碼頁編碼中文,印不出來的字元用替代字,不會讓整張單卡住。
- 模擬列印:沒有接出單機時,程式改用模擬模式把內容輸出到畫面,開發和測試都不用一直浪費感熱紙。
- 多裝置共用一張單:網頁版讓同一個網路下的平板、手機都能開,操作的是同一張訂單,訂單更新時有鎖保護,避免兩邊同時改出錯。
- 不同紙寬:保留 58/76/80mm 出單機的驅動與設定,換機器時改設定即可。
這個案子代表的能力
把「現成的硬體」接成一套店家每天能用的系統:周邊設備的通訊協定(ESC/POS)、樹莓派的部署與開機自動執行、區網內的多裝置操作,以及交付後的遠端維護。同樣的做法可以用在標籤機、條碼機、叫號機,或任何需要「按一下就印出來」的現場流程。
如果你的店也想要一台不用月費、剛好夠用的點餐出單機,歡迎聊聊。