基于STM32的便携式多功能医用交互设备

      在大三的时候,因为刚开始的时间比较空闲,同时也想学一点东西,于是想着就设计一个作品出来去参加学校的科技作品比赛,于是就做了这么一个东西,最初的构想是通过设计电路板,将传感器集成,从而使得可以直接带在手上,但是技术有限,等待大四慢慢完善吧。

      我们的作品的定位主要是独居老人,众所周知的是因为子女工作在外,有许多的老人常年独自一人生活,而老人群体中许多人都患有各种心脑血管疾病,并且需要长期服用药物来维持身体健康;而这类老人的生活自理能力也会受到很大的影响,经常会有新闻报道,一些独居老人在家突发疾病,但因为家中无人,会在几天之后才被发现的惨剧;而我们本次作品的主要目的就是为了解决这类问题,可以明晰的是血压,血糖,血氧饱和度,心率这四样东西可以比较全面的表征一个人的身体健康状态;在本次作品中,我们的便携式设备端,实现了测量心率和血氧饱和度的功能,同时我们将这些数据实时通过云端发送至移动端设备,可以方便独居老人的子女远程查看独居老人的实时身体健康。而针对于老年人记忆力衰退而会经常忘记服用药品或者忘记服用药品方式和数量的现象,我们在便携式设备端可以通过MFRC522对RFID卡的检测,识别出药品的服用方式,并给出语音提醒,而同时老人查看药品的这个动作也会通过云端发送至移动端设备,方便老人的子女查看老人当天的服用药物的情况。

    本次作品用到的模块主要有:MAX30102,MFRC522,IC卡高频RFID电子标签,OLED,STM32F103最小系统板,ESP8266WiFi模块,蜂鸣器。   

  • 心率血氧模块

  • 原理

       氧气在血液中的载体主要是氧血红蛋白(氧Hb),没有氧气的血红蛋白,称之为脱氧血红蛋白(脱氧Hb),血氧饱和度指的是携带氧气的血红蛋白的百分比。血氧的测量主要分为透射式和反射式,目前主流的是透射式,但是两者的原理差不多,都是使用发光二极管(红光RED,红外IR,绿光GREEN和蓝光BLUE等)照射被测部位,然后使用一个光电二极管接收透射或反射的光线,将光信号转换为电信号,然后通过高精度的ADC测量反射回来的电流大小,评估血液中的含氧量。

      当我们将手指放在光源和探测器之间时,光线穿过手指到达探测器,部分光线将被手指吸收,未吸收的部分到达光探测器。手指吸收的光量取决于许多物理特性,这些特性可以用于计算血氧饱和度。吸收的光量主要取决于:光吸收物质的浓度,吸收物质中光路径的长度,氧血红蛋白和脱氧血红蛋白以不同的方式吸收红色和红外光。

  1. 物理属性1:吸收的光量与光吸收物质的浓度成正比(啤酒定律)
  2. 物理属性2:吸收的光量与光路径的长度成正比(兰伯特定律)
  3. 物理属性3:氧血红蛋白吸收的红外光比红光多—脱氧血红蛋白吸收的红光比红外光多

氧血红蛋白和脱氧血红蛋白以特定的方式吸收不同波长的光。

        脉冲血氧仪便可以利用两个光来分析血红蛋白,一个时红光,波长约为650nm,另一个是红外光,波长约为950nm,我们将氧Hb和脱氧Hb的吸收特性放一起,可以发现,氧Hb吸收的红外光比红光多,脱氧Hb吸收的红光多于红外光。

       脉冲血氧仪通过比较血液吸收多少红光和红外光来测量血氧饱和度,不同的氧Hb和脱氧Hb的含量对应着不同的红光量和红外光吸收的比例,使用着比率,我们便可以得出血氧饱和度。下图所示的动态动画显示了这个变化规律,随着氧Hb和脱氧Hb量的变化,红色和红外光吸收的比例也会发生变化,脉冲血氧仪利用该比率计算出氧饱和度。

       但在身体部位,如手指,动脉血液不是唯一吸收光的东西。皮肤和其他组织也会吸收一些光,对于一个典型的PPG波形来说(光电二极管接收到原始的光信号波形)。波形(由图中的白色横虚线)可以分为两部分:DC signal和AC singal;其中直流信号由下到上可以分为三个部分的反射:组织,静脉血和不跳动的动脉血;而交流信号就比较单一:由跳动的动脉血反射得到,其中波峰对应心脏的收缩,波谷对应心脏舒张。

      脉冲血氧仪使用的是一种称为“发光二极管”的LED,可以发现的是,虽然我们只用了一个红色LED和红外LED,但是实际光探测器还会受到室内环境光的影响,实际上两个LED从未仪器点亮,相反,传感器以特定的顺序快速打开和关闭LED,首先,传感器激活红色LED灯,探测器记录落在它的红光和房间光,其次关闭红色LED打开红外LED,探测器记录落在它的红外光和房间光,最后,关闭红色和红外光,探测器记录现在的光线水平,故而传感器明确现在的房间光的水平,所以它能够从读数中减去它,以获得实际的红色和红外光水平。

      上述所说的还只是没有考虑众多影响因素下的理想场景,在实际的过程中脉信号十分的小,故而手指的运动,光学分流,环境光太强,电磁干扰等等皆会影响实际的返回信号,具体更详细的探讨可以查阅https://www.howequipmentworks.com/pulse_oximeter/

  • MAX30102相关事宜

      MAX30102系统的框图如下所示,其测量的过程,可以总结为:将RED/IR 光射向皮肤,通过皮肤组织反射回来的光被光敏传感器接收并转换成电信号,再经过AD转换成数字信号,故而我们需要控制的主要是光源LED的电流强度和采样率,光敏传感器的ADC精度等。

 具体的代码配置等已经放在我的资源文件里,有需要的可以下载查看。

  • 原始信号的处理

  • 心率检测:对于原始的信号来说,其必定是会有振荡的,而且其峰值的偏移也会较大,为了读取正确的心率和血氧数据,我们就需要去除DC信号,仅保留AC部分;而又因为脉冲是数据出现最大值变化的地方,故而我们需要进一步运用均值中值滤波器将其脉冲提取出来,高大的山峰即是心跳数据。

  • 血氧饱和度测量

       将模式切换为SaO2+HR,对于该种模式,我们需要注意的是两个LED的电流不应该设置成一样的,因为这样会导致红色LED的读数非常饱和,为了能够测量两个读数之间的比率,在基准水平上,他们的直流电平应该几乎相同。故而为了达到这个目的,我们可以反复进行比较,直到其两者返回的直流基准差不多相同。不同的血氧饱和度对应着不同的吸收光量的比率,而两个波长之间的比率R可以由以下方程式确定

      而SpO2与R的关系实际上是非线性的,但对于一般精度不是很高的场合下,运用以往的经验公式:SpO2=110-25*R,也是可以的,不过最好还是可以对其进行一定的校准,行成查找表。

  • RFID识别模块

      本模块由MFRC522读卡器,S50IC卡,蜂鸣器,LED灯组成;我们预先将药物的相关信息存储在S50卡中,之后再通过MFRC522将卡中的数据读取出来,然后控制蜂鸣器与LED灯做出相应动作;后期可以将其更换为语音模块,使其可以将卡中的信息以语音播报的方式展现出来。

      本模块所用的IC卡是非接触式的,其内部主要由三部分组成:天线,MPU微处理器,FLASH,ROM;其实现方式其实是LC谐振电路;其工作流程为:读卡机实时的向外发射一定的电磁波,当IC卡进入电磁波的有效范围内时,天性就会接收到电磁波,电磁波的实质是电场与磁场的交变,而变化的磁场则会在天线,MPU和FLASH,ROM组成的闭合回路里产生电流。该电流为MPU提供能源,并同时加载一定的数据信息。MPU先与读卡器同步,从FLASH,ROM中取得卡片的身份信息,与读卡机进行验证,验证完成后,对FLAH/ROM中的内容进行操作。关于卡片的具体信息可以查看FM11RF08.pdf

       这可以使我们对整个工作流程有一个更好的了解。

  • WIFi模块-手机端开发

      对于WIFi模块,我们采用的是机智云的开发平台和正点原子的ESP8266,其相关教程较多,可以参考正点原子编写的文档ESP8266-WIFI使用教程.pdf,其上面清晰的讲述了协议的移植等相关信息。

  • 3
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值