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)、樹莓派的部署與開機自動執行、區網內的多裝置操作,以及交付後的遠端維護。同樣的做法可以用在標籤機、條碼機、叫號機,或任何需要「按一下就印出來」的現場流程。

如果你的店也想要一台不用月費、剛好夠用的點餐出單機,歡迎聊聊。

← 回到作品

你的情況也類似?

加 LINE 最快。說說你現在怎麼做、想變成什麼樣子,
我回你可行的做法和需要釐清的問題。

加 LINE 聊一聊 →

或寫信:ted@tedshen.link