摘要:
为了能让患者在家中长期地监测自身的各种生理参数,随时捕捉突发性心率失常,同时能将生理参数反映给医疗机构,方便医务人员用于指导和协助治疗,机智云开发者设计了一款基于单片机的智能远程多生理参数健康监护仪。通过血氧、脉搏和体温等数字信号采集模块采集原始数据,由单片机进行算法处理,在显示模块显示人体的血氧值、心率值和体温值等,用户还可通过按键配置生理参数的阈值报警、按键发送生理参数至云端。最后,与标准医用监护仪进行对比测试,验证了该设计的准确性与可行性。

1 总体框架

本设计的总体框架如图1 所示。
图1中, 监护仪采用以 ARM Cortex-M3 为内核 STM32 单片机作为核心处理单元, 分别将数字集成心率血氧采集模块、 非接触测量温度的红外线传感器模块得到的心率信号、 血氧信号、温度信号通过通用的通信协议传到核心处理单元进行特定的算法以及处理, 得到当前测试者的心率值、 血氧值、体温值, 这些参数同时在LCD 显示屏上实时显示与更新。测试者还可以通过独立按键配置生理参数的阈值提醒和将得到的生理参数通过无线通信模块实时发送至智能手机与电脑等终端设备, 在云端可以实现这些生理参数的远程监测。

硬件设计

2.1 微控制单元
该设计使用的微控制单元为STM32F103VET6 主控芯片, 其内核 Cortex-m3 是 ARM 公司面向成本和功耗敏感同时满足相对高性能的市场产品而推出的。 ST 公司基于 Cortex-m 内核推出了STM32 的多个系列版本, 有基本型、增强型、互补型和 USB 基本型等, 其主流产品STM32F103 增强型系列微控器广泛应用于电子电力系统、电机驱动、手持设备、空调系统、医疗电子等。
STM32F103VET6 的工作频率最高可达72 MHz , 512 KB 的 Flash 容量作为 程序存 储器 , 64 KB 的 SRAM 静态随机存取存储器, 同时, 片上集成丰富的外设, 如: USB 、ADC 、CAN 、I2C 、UART 、TIMER 等。 开发者可通过库函数、寄存器、STM32CUBEMX 等多种开发方式提高编程效率。
      
2.2 数字集成心率血氧传感器
MAX30102 是美信半导体公司于 2016 年专为可穿戴设备和健康医疗辅助设备设计的一款数字集成心率血氧传感器模块。 该模组主要集成了双波长红光和红外光 LED 、接收反射红光和红外光的光电探测器、环境光消除器件、分辨率可调的高精度 18 位 ADC 、数字噪声消除器件、FIFO 存储器和 I2C 通信接口。 单片机可通过 I2C 通信对 MAX30102 单独设置为心率模式、血氧模式或者共用模式, 配置内部 ADC 分辨率、红光和红外光样本的采集速率、FIFO 中样本数量溢出的中断方式、低功耗待机模式等操作。美信官网有 MAX30102 的系统图和数据手册, MAX30102 模块的电路如图 2 所示。

该传感器测量心率和血氧的方法即光电容积法(PPG)。测量心率的基本原理[5-6]是利用动脉血液中的脉动成分对红外光的吸光度随着心脏跳动而进行周期性的变化(红外光波长通常为900nm附近),经过反射后的红外光光强被光电探测器接收后转化为数字信号,进而通过算法处理得到心率。而测量血氧需要用到两种波长不同的红光(波长通常在660nm附近)和红外光。脉动血液中的还原血红蛋白(Hb)和氧合血红蛋白(HbO2)对660nm(Hb对红外光的消光系数)、aHbO2(HbO2对红光的消光系数)以及用算法从原始样本中分离的交流信号的以下公式,即可得到血氧饱和度值。

2.3 3 红外非接触温度传感器

某些晶体可以因为温度变化而引起晶体表面电荷, 辐射红外线。 红外非接触传感器的工作原理为探测物体表面红外辐射能量, 并将其转变为易于测量的电信号或其他形式的量。 MLX90614 模组集成了用于探测目标温度和环境温度的热电偶 MLX81101 和用于处理热电偶输出模拟信号的专用集成芯片 MLX90302 , 由迈来芯公司研发和生产。

该传感器系列有多个型号和封装方式,适用于不同领域的测量,专用于人体温度监测的医疗应用版本在适用范围内精度可达到0.1℃。在传感器开发方面,存储在MLX90302RAM中的目标温度和环境温度数据可由两线SMBus通信协议模式和10位PWM模式输出。
GY-90614模块的电路如图3所示。

3     软件设计
3.1  用于配置阈值和选择发送数据的按键扫描算法

由于本监护仪设计的循环流程运行一次所需时间为 3 ~ 4 s , 因此通常的在主函数中的按键扫描算法无法精确地识别到测试者按键操作, 故采用了外部中断嵌套定时器中断扫描按键的方法来检测测试者的按键动作。 该方法能极大地减少用户进行单片机配置时所需要的按键数目, 降低产品成本, 同时提高了单片机运行程序的效率, 提高硬件资源的使用率。

具体的按键扫描算法思想如下: 测试者按下配置按键, 单片机扫描到边沿信号, 程序进入设置了打开定时器的外部中断服务函数, 单片机处于扫描按键状态, 测试者此时可进行各种生理参数的阈值配置( 当阈值大于或小于测试者配置的数值时, 单片机会实时响应并提醒测试者) , 或者选择关闭定时器的中断开关, 从而使单片机退出配置模式, 按键算法流程如图 4 所示。

3.2     2 心率血氧算法选择分析

从 MAX30102 中获取的数据信号为原始信号, 需经过算法处理才能得到测试者的心率值与血氧值。 对于从该模块采集出来的数据信号进行处理的方法, 常用的有两种: 一种是时域分析, 即算出脉搏数据信号( PPG) 的平均波峰距, 再用一分钟除以这个波峰距即可得到心率值; 另一种是通过对 PPG 信号进行 FFT 变换得到频域中脉搏波信号的频段, 再将这个频率值乘以一分钟得到心率值。 首先是第二种方法, 经过了在 STM32VET6 使用FFT ( 快速傅里叶变换) 算法对 PPG 信号的处理后, 发现这种方法计算心率值存在时间和精度相矛盾的问题, 由以下公式可得出:
heartrate=60×Samples_per_second×s2_max_index×FFT_N

( 5 )其中, Samples_per_second 为每秒从 MAX30102 中采集的红 外 光 样 本 数 量 , s2_max_index × FFT_N 为 脉 搏 信 号 中交流成分信号的频率, FFT_N 为快速傅里叶变换的点数长度。 若 Samples_per_second 设置为 100 , FFT_N 设置为1 024 , 从 FFT 填满数据到计算出心率值需要花 费 5 s , 但得到的各心率值间隔为 3 。 从监测测试者的心率的实时性和准确性来看, 这都是没有参考价值的。 若提高FFT 的点数长度, 虽然能提高测试心率值的精度, 但这将大大增加了监测出心率的时间, 同时加大了微控单元的负担。  本文设计心率算法使用的是第一种, 计算心率血氧的算法流程如图 5 所示。

3.3     3 机智云物联网平台 demoapp 的移植与调试

从下位机监护仪采集的测试者生理参数( 如:心率、血氧和体温) 在 LCD 模块实时显示, 同时, 还能将监护仪进行联网后在手机客户端和官方的网页界面监测到这 些生理参数。 物联网平台选择的是机智云, 而联网设备选择的是乐鑫的esp8266 。

ESP8266 广泛应用于各种物联网智能硬件的开发, 如: 传感器网络、智能家居设计和无线医疗电子设备等。其常用的固件 AT 指令作为微控单元和 WiFi 模组之间配置功能, 连接与通信的底层指令。 相应地, 机智云物联网开发平台使用 GAgent 固件作为其与WiFi 模组的桥梁。

在 MCU 代码开发方面, 机智云有官方的代码自动生成工具, 该工具帮助开发者完成了 MCU与 WiFi 模组通信连接的底层协议工作, 适用于独立 MCU 方案和 SoC 方案, 使开发者更专注于软硬件的功能开发。机智云数据点设置如表1所示, 云端网页生理参数远程监测如图6所示, 记录了测试者某天21时一段时间内生理参数随时间变化情况。

4  测试验证

为了测试验证本次设计的监护仪的准确性, 以同一测试者 10 个不同时间点的生理参数作为测试样本, 每个时间点分别用参考监护仪和本监护仪进行 5 次采集,最后求平均值。  测试者心率、血氧和体温的测试结果如表 2 所示。

5  结论

智能远程多生理参数健康监护仪为社会上的一些特定人群提供了日常居家健康监护的可行性, 监护仪采用数字集成心率血氧模块等采集人体的心率、血氧和体温等, 通过下位机实时显示数据和波形, 使用独立按键配置阈值提醒和配置联网, 同时可通过云端网页监测记录。 本设计具有操作简单、成本低、便携性好、扩展性丰富、测量较为准确等特点。

STM32开发板+机智云IoT+智能远程健康监护仪相关推荐

  1. 鸿蒙开发板 Hi3816 Wi-Fi IoT 智能家居套件试用连载 - LiteOS万物互联

    HiSpark Wi-Fi IoT 智能家居套件 10.8号休假回来荣获一份豪礼,我感到非常开心.我很荣幸参加电子发烧友举行的HarmonyOS开发板试用活动,获得了鸿蒙OS WiFi lot sma ...

  2. 国内物联网平台(5):机智云IoT物联网云服务平台及智能硬件自助开发平台

    国内物联网平台(5) --机智云IoT物联网云服务平台及智能硬件自助开发平台 马智 平台定位 机智云平台是致力于物联网.智能硬件云服务的开放平台.平台提供了从定义产品.设备端开发调试.应用开发.产测. ...

  3. HMI智能串口屏——在STM32开发板上的实战应用及其详解

    HMI智能串口屏--在STM32开发板上的实战应用及其详解 一.HMI智能串口屏使用步骤 二.附录 一.HMI智能串口屏使用步骤 安装USART HMI软件 (一般买的串口屏里面,商家送的资料里面都有 ...

  4. 机智云IoT云平台的边缘AI持续赋能,边缘服务器深度应用

    随着5G和物联网发展,其数据爆发式增长,数据重量的问题和光速产生的时延问题对算力带来更高的要求.越来越多的计算.存储.网络.分析和其他资源逐渐向边缘设备转移,为此边缘计算获得了空前关注. 何为边缘计算 ...

  5. NBIOT 移远BC28模块+stm32开发板例程、教程(打通TCP、COAP协议)

    为了开发者能够快速入门BC28的开发,加快开发者的项目进度,开发出此款针对BC28的stm32开发板和完善的发送网络数据的示例程序(TCP协议.COAP协议),程序流程逻辑清楚,注释完善,上手就可以玩 ...

  6. 基于STM32开发板I²C总线通信协议浅析

    基于STM32开发板I²C总线通信协议浅析 一.前言 I²C(Inter-Integrated Circuit),中文应该叫集成电路总线,它是一种串行通信总线,使用多主从架构,是由飞利浦公司在1980 ...

  7. 野火stm32开发板给定一个脉冲程序_STM32开发板哪个好,推荐一款高性价比stm32MP157开发板...

    一款能跑Linux的STM32开发板: 一款既可以玩Linux又可以玩单片机的开发板: 一款可同时学习A7和M4的双核异构开发板: 一款支持最新的Linux 5.4.31系统和u-boot 20200 ...

  8. 直击Huawei Mate 40产线背后的华为云IoT智能制造

    摘要:数字孪生?在数字世界找到物理世界的设备! 本文分享自华为云社区<[云驻共创]Huawei Mate 40产线直击之华为云IoT智能制造助力工厂数字化转型>,原文作者:启明. Part ...

  9. 基于STM32开发板CAN总线通信协议浅析

    基于STM32开发板CAN总线通信协议浅析 一.前言 控制器局域网(Controller Area Network,CAN),是由德国BOSCH(博世)公司开发,是目前国际上应用最为广泛的现场总线之一 ...

最新文章

  1. Android TV 悬浮球模拟物理按键
  2. flink window实例分析
  3. HDU 4618 - Palindrome Sub-Array(2013MUTC2-1008)(DP)
  4. SAP Netweaver和Hybris的数据库层
  5. C# 读写Ini文件
  6. python isodd奇偶_Python这些位运算的妙用,绝对让你大开眼界
  7. 【数据库的备份与还原】 .
  8. Java 将byte转换kb_【Java】把字节数B转化为KB、MB、GB的方法
  9. 计算机五大逻辑部件数据流,211计算机基础知识综合篇.ppt
  10. 20191013:快速排序1.1
  11. Spring AOP实现声明式事务代码分析
  12. linux软防火墙DDOS,Linux iptables防火墙详解 + 配置抗DDOS***策略实战
  13. Android基于opencv4.6.0实现人脸识别功能
  14. java faker_Java 生成测试字符串的库:Java Faker
  15. primeng dropdown ngmodel 选择项初始化
  16. angr源码分析——cle.Loader类
  17. SIMD和SPMD的区别
  18. 读取excel批量生成二维码
  19. python图片批量处理(水印、重命名)
  20. 喜欢的一首歌(小曲儿唱的别有一番趣味)

热门文章

  1. mysql latin1 中文_mysql 的 latin1 支持中文
  2. 北工大计算机学院博导,北工大计算机学院计算机科学与技术导师介绍:李玉鉴...
  3. 如何实现UPS电源远程监测及开关机控制、服务器关机保护
  4. 跨平台(desktop,web,mobile)电子病历编辑器业务设计
  5. c语言输出bool,关于printf:在c中打印bool结果为’false’或’true’的最佳方法?...
  6. 三年级能用计算机吗,三年级计算机教学计划
  7. 关于链表,看这一篇就够了!(新手入门)
  8. VM虚拟机开启时电脑立即蓝屏的问题
  9. android 短信验证码自动填写的两种方式
  10. xp计算机硬盘序列号,发表一个最简单的XP以上系统中获取CPUID、硬盘序列号、BIOS序列号等等的函数!(100分)...