Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

智慧坐姿與飲水監測系統 (Posture & Hydration Monitoring System)

這是一個基於 Raspberry Pi 與多執行緒架構的智慧健康監測系統。本專案整合了電腦視覺與多種硬體感測器,能夠即時監控使用者的坐姿角度、與螢幕的距離,以及水杯的水量,並在需要時透過語音發出提醒。

✨ 功能特色

  • 即時坐姿偵測:使用 OpenCV 與 MediaPipe 擷取人體骨架,計算耳朵與肩膀的夾角。若前傾角度大於 25 度,系統將發出「請坐直」的語音警告。系統內建清空影像緩衝區的機制,確保影像辨識維持極低延遲。
  • 距離監測:透過 HC-SR04 超音波感測器即時量測使用者與螢幕的距離。若距離小於 65 公分,將提醒「請離螢幕遠點」。
  • 智慧飲水提醒:結合 HX711 測重模組與重量感測器,動態追蹤水杯重量。當偵測到重量過低時,會自動提醒「請儘快加水」。
  • 多執行緒運作:感測器資料讀取、影像處理、OLED 顯示與語音輸出皆在獨立的執行緒中運行,確保系統效能穩定,不會互相阻塞。
  • Web 影像串流與本機顯示:提供 Flask Web 介面以查看即時攝影機畫面及骨架繪製結果;本機端則配備 SSD1306 OLED 螢幕,隨時顯示當前數值狀態。

🛠️ 硬體需求與腳位配置

本專案運行於 Raspberry Pi (推薦 3B+ 或以上版本)。請依照以下 BCM 腳位連接您的硬體設備:

硬體模組 腳位名稱 RPi BCM Pin 說明
HX711 測重模組 DT GPIO 5 資料腳位
SCK GPIO 6 時脈腳位
按鈕開關 Button GPIO 7 用於確認放置空杯並開始系統
HC-SR04 超音波 Trig GPIO 23 發射端
Echo GPIO 24 接收端
SSD1306 OLED SDA/SCL I2C Pins 透過 I2C 介面連接
USB 攝影機 - USB Port 建議解析度設定為 640x360 以減輕運算負擔
音訊輸出 - 3.5mm/USB/Bluetooth 需連接喇叭以播放語音提示

💻 軟體與環境設定

專案要求 Python 3.9.25 環境。推薦使用 uv 進行套件與虛擬環境管理。

1. 系統依賴安裝

語音播放功能依賴於作業系統底層的 mpg123 套件:

sudo apt-get update
sudo apt-get install mpg123

2. Python 環境建置

使用 uv 初始化虛擬環境並安裝所需套件:

uv venv --python 3.9.25
source .venv/bin/activate
uv pip install -e .

(若您使用傳統 pip,亦可直接查閱 pyproject.toml 中的 dependencies 列表進行安裝)

🚀 執行與使用方式

  1. 啟動系統: 確認所有硬體連接無誤後,執行主程式:
    python src/app.py
  2. 初始化測重模組: 啟動後,請觀察 OLED 螢幕,當顯示「Please init the hx711」時,請確保秤盤上沒有任何物品,系統將自動進行歸零校正。
  3. 放置空杯與確認: 歸零完成後,螢幕會顯示「Please press button and place an empty cup」。請將您平時使用的空水杯放上秤盤,並按下連接於 GPIO 7 的按鈕。系統會記錄空杯重量作為基準。
  4. 開始監測: 系統將開始即時監測。您可以透過 OLED 螢幕查看當前的重量、角度與距離資訊。
  5. 開啟 Web 介面: 在同網域的裝置上,打開瀏覽器並輸入 http://<Raspberry_Pi_IP>:5000/,即可觀看即時的姿勢偵測影像串流。

📂 專案結構

├── src/
│   ├── app.py               # 系統主程式與 Flask 路由 (包含影像處理邏輯)
│   ├── audio.py             # 文字轉語音 (gTTS) 封裝模組
│   ├── data.py              # 跨執行緒共享資料類別 (ThreadData)
│   ├── hx711_load_cell.py   # HX711 測重模組控制與校正演算法
│   ├── ssd1306_display.py   # OLED 顯示器控制模組 (具備無閃爍緩衝設計)
│   └── ultrasonic.py        # HC-SR04 超音波距離換算模組
├── pyproject.toml           # 專案設定與套件依賴清單
├── .python-version          # Python 版本鎖定 (3.9.25)
└── .gitignore               # 忽略的檔案與目錄設定

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages