基于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,可监测人体的运动强度和运动状态变化强度。

判定标准:

  1. SVM正常状态下值是17000左右,当将其加速晃动时,分析得到的安全加速度约在12000~22000之间(模拟测试值,仅供参考),当超出阈值时,5秒内都判定为异常,且板载蓝色LED灯亮。
  2. 三轴欧拉偏角大于 40°时 即异常
    人体体位的另一个重要特征就是身体的倾角,调查显示,人体处于直立状态时,躯干与重心方向的倾角小于60度;而人体处于水平状态时,倾角接近90度;人体在跌倒时,躯干从直立状态变为接近水平的状态。所以可以将人体倾角值是否大于60度来作为辅助判断跌倒的特征,倾角值可通过倾角传感器获得。

2.人体温度

线性区间温度30—44度/电压2.127–1.193V

获取温度流程:

  1. 模块AO输出捕获ADC平均有效值换算成电压值
  2. 根据驱动例程提供的数据表,用电压值匹配电阻表
  3. 电阻表匹配对应温度值

3.心率血氧浓度

当LED光射向皮肤,透过皮肤组织反射回的光被光敏传感器接受并转换成电信号再经过AD转换成数字信号,简化过程:光–> 电 --> 数字信号。根据官方历程移植代码,中途遇到很多问题,血氧的测量,相比心率血氧测量难度较大而且精度不算太高,寄存器中文描述可参考此链接
程序设计流程如下

  1. 先初始化IIC,再初始化血氧模块SPO2_Init()
  2. 检查样本,采样获取红外FIFO、红外FIFO 的AC值
  3. 对红外FIFO、红外FIFO过滤脉冲值
  4. 根据相应的算法 光电容积脉搏波描记法PPG 获取心跳速率、血氧浓度


zigbee发送数据

USART -> zigbee只需要 串口 printf 就可以完成数据的传输
使用该模块前需要配置模块我这里配置的波特率是115200

完整代码可进群免费领取!!!

嵌入式物联网的学习之路非常漫长,不少人因为学习路线不对或者学习内容不够专业而错失高薪offer。不过别担心,我为大家整理了一份150多G的学习资源,基本上涵盖了嵌入式物联网学习的所有内容。点击下方链接,0元领取学习资源,让你的学习之路更加顺畅!记得点赞、关注、收藏、转发哦!

点击这里找小助理0元领取

the end

评论(0)