109學年 下學期 1165嵌入式系統設計概論與實作 期末專案
零接觸販賣機
大多是上課的東西
- Python 3.7.3
- RPi.GPIO
- spidev
- signal
- requests
- gspread
- oauth2client
- gTTS
- speech_recognition
- pydub
google 表單需要額外設定,請跟著這篇文章設定,並修改 key.json 成你的 key.json,qrcode 也記得要還成你自己的連結 qrcode
sudo python webserver.py
# 有虛擬環境或使用者不同等問題時可以嘗試
sudo `which python` webserver.py
# 有時候MFRC522會很不乖,感應不到卡
# 這情況發生時請照著以下步驟做
kill -9 <PID of python webserver.py>
# 先跑一次 Read.py
python Read.py
# 刷一次卡之後就可以 kill 掉了
# 之後重新執行主程式
sudo python webserver.py
- 開啟網頁,預設是 localhost:80
- 臉正對鏡頭並靠近,直到臉的大小約等於畫面框大小
- 等待語音提示結束並顯示收音中
- 大聲且咬字清楚地說出語音指令:
# 依指令優先度排序
取消交易:任何語句包含取消二字
進入結帳:任何語句包含結帳二字,可以與下方指令合用,例:餅乾結帳
清除:任何語句包含清除二字
新增商品:[[數量]商品名稱]... # 商品名稱必須不同,未指定數量則為 1 個
移除商品:移除 [[數量]商品名稱]... # 商品名稱必須不同,未指定數量則為 999 個
-
確認結帳並依據庫存調整購物車,待語音提示並顯示收音中時,說出是或確認繼續下一步,否或取消回到點餐階段
-
感應磁卡扣款結帳,可能有四種狀況
- 已註冊卡且餘額足夠:結帳成功,交易結束並透過 LINE notify 傳送消費資訊
- 已註冊卡且餘額不足:結帳失敗,餘額不足,交易取消並透過 LINE notify 傳送餘額不足通知
- 未註冊卡:結帳失敗,提示卡片需註冊,交易取消
- 讀卡機當機:沒DEBUG成功,請照上方 RUN 的指示作一遍