基于STM32的人體健康監護系統(體溫、心率、心跳、跌倒檢測)
一、設計需求(點擊此處黃色字體領取文章配套資料)
1.1 設計需求總結
根據需求,要求設計一款 基于Q STM32 的人體健康監護系統。采用系統模塊化思路進行,將多個數模傳感器收集到的數據和操作指令一并送至 STM32 中心處理器進行處理分析。
該系統可以實時監測被測者的心率、體溫以及周圍環境的溫度,也同時可以通過姿態解算來判斷被測者是否睡覺。該系統可以將被測者的心率、體溫等數據既可以在本地顯示,也可以通過 WI-FI 傳輸至云平臺以實現遠程顯示。當被測者吸煙時則會發出警報直至香煙熄滅,可以讓被測者遠離不健康的生活習慣,同時也可以通過衛星定位查看設備所在位置。
以上的傳感器收集到的所有數據都可以上傳到自己搭建的云平臺,找云平臺上或者在自己設計的手機APP上都可以進行實時顯示演示和分析。使數據展示直觀又美觀方便。定位功能則是可以直接實時顯示地圖的詳細信息。
模塊選用
- STM32f103c8t6
- 0.96 oled IIC 模塊
- max30100心率血氧模塊
- mpu-6050模塊
- 人體溫度模塊 (某寶54元買的價格有點貴哈)
功能概述
1.跌倒檢測
*速度瞬態變化
人體加速度向量幅值SVM和微分加速度幅值的絕對平均值DSVM是區分人體運動狀態的重要參量。SVM通過計算加速度幅度表征人體運動的劇烈程度,其值越大表明運動越劇烈。DSVM通過計算SVM的微分絕對值的時間平均表征人體運動狀態變化的劇烈程度,其值越大表明運動狀態變化越劇烈。其定義為:在動態坐標系下考察SVM和DSVM,可監測人體的運動強度和運動狀態變化強度。
判定標準:
- SVM正常狀態下值是17000左右,當將其加速晃動時,分析得到的安全加速度約在12000~22000之間(模擬測試值,僅供參考),當超出閾值時,5秒內都判定為異常,且板載藍色LED燈亮。
-
三軸歐拉偏角大于 40°時 即異常
人體體位的另一個重要特征就是身體的傾角,調查顯示,人體處于直立狀態時,軀干與重心方向的傾角小于60度;而人體處于水平狀態時,傾角接近90度;人體在跌倒時,軀干從直立狀態變為接近水平的狀態。所以可以將人體傾角值是否大于60度來作為輔助判斷跌倒的特征,傾角值可通過傾角傳感器獲得。
2.人體溫度
線性區間溫度30—44度/電壓2.127–1.193V
獲取溫度流程:
- 模塊AO輸出捕獲ADC平均有效值換算成電壓值
- 根據驅動例程提供的數據表,用電壓值匹配電阻表
- 電阻表匹配對應溫度值
3.心率血氧濃度
當LED光射向皮膚,透過皮膚組織反射回的光被光敏傳感器接受并轉換成電信號再經過AD轉換成數字信號,簡化過程:光–> 電 --> 數字信號。根據官方歷程移植代碼,中途遇到很多問題,血氧的測量,相比心率血氧測量難度較大而且精度不算太高,寄存器中文描述可參考此鏈接
程序設計流程如下
- 先初始化IIC,再初始化血氧模塊SPO2_Init()
- 檢查樣本,采樣獲取紅外FIFO、紅外FIFO 的AC值
- 對紅外FIFO、紅外FIFO過濾脈沖值
- 根據相應的算法 光電容積脈搏波描記法PPG 獲取心跳速率、血氧濃度
zigbee發送數據
USART -> zigbee只需要 串口 printf 就可以完成數據的傳輸
使用該模塊前需要配置模塊我這里配置的波特率是115200
完整代碼可進群免費領?。。?!
嵌入式物聯網的學習之路非常漫長,不少人因為學習路線不對或者學習內容不夠專業而錯失高薪offer。不過別擔心,我為大家整理了一份150多G的學習資源,基本上涵蓋了嵌入式物聯網學習的所有內容。點擊下方鏈接,0元領取學習資源,讓你的學習之路更加順暢!記得點贊、關注、收藏、轉發哦!
- 贊