2023 Spring NCU HCI Final Special Topic Project
分成硬體與軟體
- arduino
- linklt 7697
- 鏡頭
- 超音波感測器
- 伺服馬達
- 共陽極LED燈
- Server:python GUI
- Client:android app
- Database:firebase
- android
- app
- socket client
- speech to text and text to speech
- 註冊跟VIP辨識
- python
- socket server
- 點擊.bat檔即可執行server程式。
- tkinter
- open cv 掃qrcode
- opencv 人臉辨識
- read qr code
- python download csv
- database
- Firebase
graph TD;
實體酒吧-->實體arduino;
實體arduino-->大門;
大門-->感測開門-->|偵測坐下來的距離大於5|使用伺服馬達開門-->|亮LED燈|帶位;
帶位-->到座位上後-->|偵測坐下來的距離小於5|LED關燈-->|python_socket|顧客手機app;
到座位上後-->傳送坐下來的訊號到FireBase儲存;
感測開門-->|偵測坐下來的距離小於5|使用伺服馬達關門;
graph TD;
顧客手機app-->|socket|鏡頭轉向該顧客-->偵測有沒有坐下;
偵測有沒有坐下-->註冊與登入-->點餐-->語音化服務-->|socket|pythonserver;
偵測有沒有坐下-->|socket|FireBase查看訊號-->|socket|偵測有沒有坐下;
註冊與登入-->|socket|python-->|模型|鏡頭人臉辨識-->|模型|python-->|socket|註冊與登入;
點餐-->酒單點酒-->|socket|pythonserver;
點餐-->客製化點酒-->|socket|pythonserver;
註冊與登入-->點選資料-->|socket|FireBase-->可以看到自己以前點過的酒與個性資料
坐下來後才能開始使用app
註冊輸入名字與登入按鈕
- 個人詳細資料按鈕
- 語音化服務按鈕
- 點酒按鈕
- 客製化點酒按鈕
- 登出按鈕
- 顯示你已付金額
透過語音化跟傳送socket到server,再傳到資料庫,然後再透過socket傳送到app。
- 一般點酒按鈕
- 顯示菜單(手動)
- 客製化頁面
- 酸或甜
- 重還輕
- 想要有氣泡嗎?
- 想喝醉嗎?
- 喜歡水果味嗎?
py->android 用json 傳送 android -> py用文字傳送
graph TD
冰箱資料表-->|如果材料夠|從酒單挑出酒品並從冰箱扣減材料_firebase-->|socket|顯示上酒-->|FireBase|紀錄個人點酒紀錄;
顯示上酒-->|firebase收入記帳|收支資料表;
收支資料表-->可下載收支excel;
python_server-->|firebase|冰箱資料表-->|如果材料不夠|提醒買缺的材料-->收支資料表-->|錢夠買完放冰箱|冰箱;
python_server-->|firebase|收支資料表
冰箱-->|python介面與qrcode辨識|掃qrcode放冰箱-->歸類-->|firebase|冰箱資料表;
冰箱-->|firebase支出記帳|收支資料表
- 完成 大門與帶位的arduino(功能建立)
- python GUI 撰寫完成
- python GUI 能夠串接firebase資料庫
- python GUI 能下載csv
- python GUI opencv qrcode 圖像辨識
- android app 撰寫完成
- ANDROID APP 客製化點酒
- 完成 android app socket 連接 python GUI
- 語音化訊息處理
- arduino 偵測坐下後才能用app點餐
- opencv 人臉辨識
- 實行美工,將所有硬體安裝進模型裡面。
- 搭配line bot
- 天窗
- 音樂
如何讓客戶知道我們的產品實際上在做什麼?
使用ppt,同步操作demo
人臉辨識如何儲存隨時有人註冊後更新模型?
解決方式:使用pickle套件
如何在server gui顯示來自socket的訊息?
解決方式:開多執行緒
如何在不同詞彙的狀況下知道使用者的語意?
- 使用中文語意套件SnowNLP偵測