專題架構
1. 專題架構
使用 Laudon 資訊管理系統 Modle 繪製出整個架構

- 專題成員:吳則緯、陳士弘、廖國丞。
- 指導老師:林基源(資工系)、陳啟鈞(電子系)、吳書慶(博士班學長)
2. 韌體開發 (吳則緯、陳士弘)
核心硬體選用
- 微控制器:STM32F103C8T6
- 感測組件:MPU6050 陀螺儀、HC-25 WiFi 模組 及 74HC14 施密特觸發器。
呼吸感測原理
- 電容轉脈衝:在腰帶貼上導電銀布,呼吸引起的腹部拉扯會改變電容值。
- 電路轉換:利用 74HC14 施密特觸發器與 RC 電路串聯腰帶,將電容變化轉化為方波頻率。
- 量化採樣:MCU 透過外部中斷 (EXTI) 讀取上升緣,計算 0.2 秒內的充放電次數來量化呼吸深度。


技術挑戰與解決方案
- I2C 位址左移:修正 MPU6050 的 7 位元位址需左移 1 位方可通訊的問題。
- UART 阻塞式傳輸:捨棄 DMA 傳輸,改採阻塞模式以確保數據發送與 C# 接收端同步。
- 中斷洪水防治:為防止環境雜訊導致外部中斷無限觸發,設置 99999 次計數上限,並在採樣後強制關閉中斷,維持系統穩定。
3. 影像辨識 (廖國丞)
YOLOv8 辨識流程
- 模型選用:採用 最新版 YOLOv8n 模型。
- 數據集建立:拍攝睡眠影片並裁切成一幀幀圖片,手動標註「正躺、左側躺、右側躺」三種標籤。
- 訓練集:使用250張圖像作為訓練集(每個動作各為250張)總共採集2550張,訓練集 680 張,測試集 170 張。

訓練模型結果
模型能夠準確識別「正面」、「側面」和「右躺」三種動作。從精確度-召回率曲線圖中可見,所有類別的平均精確度達到0.992,顯示出模型在不同動作上的高精度和穩定性。

關鍵優化:辨識目標調整
- 初期挑戰:原先嘗試辨識「全人體姿態」,但發現使用者蓋被子後特徵會被遮蔽,導致精確度極低。
- 解方:將鏡頭安置於臉部正上方,專注於頭部/臉部特徵。此調整大幅提升了被子覆蓋下的辨識率。
4. 資料接收與分析 (吳則緯)
C# 監控中樞
- 傳輸協議:選用 TCP/IP 搭配 WiFi,因其比藍牙距離更遠、比 UDP 更穩定。
- 介面開發:使用 WinForm (GDI+) 實現「所見即所得」的開發,並即時繪製呼吸波形圖。
LineBot 預警機制
- 雲端伺服器:結合 Google Apps Script (GAS) 建立 LineBot,具備零維護成本與高可用性。
報警邏輯
- 呼吸異常:5 秒內波峰波谷差值 < 1000。
- 疑似跌倒:影像偵測不到標籤(人離開畫面)且陀螺儀判斷為躺下。
- 久臥提醒:相同姿勢維持超過 1.5 小時,發送翻身提醒。

資料庫儲存


5. 成果展示
-
呼吸停止
-
跌倒可能
6. 心得
大學二年級時,我們三個一起加入陳啟鈞老師帶領的實驗室, 此專題是從電容布織布產學專案慢慢延伸而成的, 在此感謝我的組員們,還有學長導師指導。