基于STM32的脑卒中早期症状检测与预警系统

2024-09-19 00:00:00范洁润刘耀聪刘炜杰朱彦兆谢培权
现代信息科技 2024年13期

摘 要:随着我国人口老龄化进程的加剧,老年人脑卒中问题已成为严重的公共卫生问题。文章设计了一种基于STM32的脑卒中早期症状检测与预警系统,并通过实验验证了其有效性和可行性。在不影响老年人正常生活的情况下,系统通过采集老年人脑卒中相关身体指标和检测老年人姿态动作,判断是否有中风发生,并及时地向子女发送警告信息和建立通话渠道,使子女做出较为准确的判断,为及时送医争取时间。

关键词:脑卒中;检测;预警

中图分类号:TP311.5 文献标识码:A 文章编号:2096-4706(2024)13-0186-05

Early Symptom Detection and Warning System for Stroke Based on STM32

FAN Jierun, LIU Yaocong, LIU Weijie, ZHU Yanzhao, XIE Peiquan

(Guangdong Ocean University, Zhanjiang 524088, China)

Abstract: With the intensification of China's aging population, stroke among the elderly has become a serious public health problem. It designs a stroke early symptom detection and warning system based on STM32, and verifies its effectiveness and feasibility through experiments. Without affecting the normal life of the elderly, the system collects physical indicators related to stroke in the elderly and detects their posture and movements to determine whether a stroke has occurred. It promptly sends warning messages and establishes communication channels to children, enabling them to make more accurate judgments and strive for time for timely medical treatment.

Keywords: stroke; detection; early warning

0 引 言

随着全球人口老龄化趋势的加剧,老年人脑卒中的发病率逐年上升,成为严重的公共卫生问题。脑卒中是一种急性脑血管疾病,具有高致残率、高死亡率和高复发率等特点,给老年人的身心健康带来巨大威胁。因此,对老年人脑卒中问题的严峻性进行深入探讨,提出有效的预防和治疗措施,具有重要的现实意义和研究价值。本文的设计用于日常中风症状监测与预警判断,位于入院之前,它与医院已经建立的脑卒中入院紧急医疗处置流程密切对接,实现日常生活中的脑卒中及时监测、入院后及时处置的闭环[1]。这对于提高我国老年人的生活质量,防止错过脑卒中黄金救治期,以及增强我国千万家庭实实在在的幸福感具有重要作用。

1 系统的总体设计

该检测与预警系统由主控板、陀螺仪模块、GPS模块、Wi-Fi模块、MQTT服务器等部分组成,其中主控板选择ARM Cortex-M3为内核的STM32F103C8T6单片机,主要负责动作姿态的获取,地理位置、心率血氧的捕捉,GSM短信通信以及继电器控制等。使用ESP8266WIF模块与MQTT服务器进行数据交互;使用MPU6050模块对老年人动作姿态进行获取;MAX30102模块采集心率和血氧,MSP20血压传感器采集血压,三者起到检测的作用。GPS模块用来定位老年人的位置以方便及时抢救[2];GSM模块与主控芯片进行通信,在预警状态触发时发送求救信息;该检测与预警系统使用12 V的功率电源供电。具体流程如图1所示。

2 动作姿态的捕捉设计

2.1 MPU6050的连接

MPU6050模块是一个包含三轴加速度计和三轴陀螺仪的传感器模块。它内部包含DMP模块,可以对传感器数据进行滤波、融合处理,直接通过IIC接口向主控器输出姿态解算后的数据,降低主控器的运算量。其姿态解算频率最高可达200 Hz。在本检测与预警系统中使用其IIC接口与微控制器或主控板进行通信,并且可以测量物体在x、y、z三个方向上的加速度和角速度。通过以下步骤进行配置:

1)确保MPU6050模块与主控之间的SDA和SCL数据线连接正确。

2)在主控上,需要通过Keil5软件去配置MPU6050的IIC通信函数。这包括初始化IIC接口,复位MPU6050并初始化它进入正常工作状态。

3)设置完这些基本参数和函数后,可以进行进一步的配置,例如调配角速度传感器和加速度传感器的最大阈值范围,以及开关中断、禁止FIFO等其他参数。

MPU6050具体电路原理如图2所示。

2.2 MPU6050的卡尔曼滤波

卡尔曼滤波器是一种利用线性系统状态方程,通过系统输入输出观测数据,对系统状态进行最优估计的算法。而卡尔曼滤波在MPU6050中主要是用于处理MPU6050传感器输出的数据,以消除噪声和干扰,提高数据精度。具体来说,卡尔曼滤波器通过估计MPU6050传感器的状态,如加速度、角速度等,并使用这些估计值来更新传感器的状态。卡尔曼滤波器使用先前的估计值和当前测量值来计算新的估计值,同时考虑噪声和干扰的影响[3]。

在MPU6050中,卡尔曼滤波器可以用于以下几个方面:

1)消除噪声。MPU6050传感器输出的数据可能受到噪声和干扰的影响,导致数据不准确。卡尔曼滤波器可以通过估计传感器的状态并使用这些估计值来更新测量值,从而消除噪声和干扰的影响。

2)提高数据精度。卡尔曼滤波器可以对MPU6050传感器输出的数据进行平滑处理,减少数据的波动和噪声,提高数据的精度。

3)姿态解算。卡尔曼滤波器可以用于MPU6050的姿态解算,通过融合加速度计和陀螺仪的数据,估计出设备的姿态角。

以下为软件实践卡尔曼滤波时使用到的函数命令:

1)kfp->P=kfp->P+kfp->Q,即估算协方差方程:当前估算协方差=上次更新协方差+程噪声协方差。

2)kfp->G=kfp->P / (kfp->P + kfp->R),即卡尔曼增益方程:当前卡尔曼增益=当前估算协方差/(当前估算协方差+测量噪声协方差)。

3)kfp->Output=kfp->Output +kfp->G*(input-kfp->Output),即更新最优值方程:当前最优值=当前估算值+卡尔曼增益×(当前测量值-当前估算值)。

4)kfp->P = (1 - kfp->G) * kfp->P,即更新协方差=(1-卡尔曼增益)×当前估算协方差。

5)return kfp->Output,即卡尔曼滤波器输出值(最优值)。

2.3 MPU6050的数据处理

MPU6050欧拉角就是表述姿态的一个参数。为了获取老年人的动作姿态,必须要得到一个精确且稳定的欧拉角。仅靠传感器不能获得精确且稳定的欧拉角,要获得精确稳定的欧拉角,需要多个传感器进行数据融合,这里用上述的卡尔曼滤波来处理数据:

1)初始化和预处理。对姿态角进行初始化处理,比如设置初始值等。

2)定义状态变量。将姿态角的误差和角速度的误差作为状态变量,用于后续的滤波处理。

3)建立模型。建立姿态角和角速度之间的数学模型,用于描述它们之间的关系。

4)建立测量模型。建立传感器测量值与姿态角之间的关系,用于描述传感器测量值的误差。

5)初始化滤波器。将状态变量初始化为初始姿态角和角速度的误差[4]。

6)运行滤波器。将测量值输入到滤波器中,滤波器根据状态变量和测量值进行滤波处理,输出姿态角的估计值。

7)更新估计值。根据滤波器输出的估计值,更新姿态角的估计值。

主控板处理好数据后,将以上电的瞬间标志为正常情况下的动作姿态,当姿态角数据大幅变动则判断为危险状态,系统则进入到预警模式[5]。

3 心率血氧采集功能设计

3.1 MAX30102模块

MAX30102是一款用于测量血氧饱和度和心率的红外光电传感器。它采用了Maxim Integrated的MAX30100芯片,该芯片集成了红外LED、红外接收器、绿色LED、绿色接收器、光电二极管、电压调节器、模拟-数字转换器和数字信号处理器等模块。MAX30102模块还包括一个用于连接到主机微控制器的IIC接口。

MAX30102拥有低功耗的特性,正常工作时MAX30102的功耗低于600 μA。此外,MAX30102还可以进行待机模式,在此状态下功耗仅为0.7 μA。这种低功耗的模块非常契合于本检测与预警系统给老年人使用。MAX30102具体电路原理为图3所示。

3.2 MAX30102模块的设计

首先是模块的硬件连接:将MAX30102模块通过IIC接口连接到主控板上。重在将模块的SCL和SDA引脚与主控板上的IIC接口相应引脚进行连接。同时,确保模块的电源引脚正确连接到电源。

接着初始化模块,在主控板上编写代码来初始化MAX30102模块。本检测与预警系统使用IIC协议通信配置:MAX30102模块通过IIC通信接口与外部设备进行通信。在配置IIC协议时,需要设置合适的通信参数,如波特率、数据长度、停止位、奇偶校验等。具体的配置值需要根据通信协议和通信需求来确定。

MAX30102模块在IIC协议总线上有一个唯一的地址。在配置IIC时,需要将模块的地址设置正确,以便外部设备能够正确地与其通信[6]。

以下为软件配置IIC使用到的函数命令:

1)void IIC_Init(void),即初始化IIC。

2)void IIC_Start(void),即产生IIC起始信号。

3)void IIC_Stop(void),即产生IIC停止信号。

4)u8 IIC_Wait_Ack(void),即等待应答信号到来。

5)void IIC_Ack(void),即产生ACK应答。

6)void IIC_NAck(void),即不产生ACK应答。

7)void IIC_Send_Byte(u8 txd),即IIC发送一个字节,返回从机有无应答。

在配置完IIC的基本参数后,就可以开始通过IIC接口传输数据了。MAX30102模块可以将采集到的数据通过IIC接口传输到外部设备进行处理和分析。

读取数据及数据处理:通过IIC接口读取MAX30102模块的输出的心率、血氧饱和度数值。对读取到的数据进行处理和分析。这使用到滤波、平滑处理、单位转换等操作:

1)滤波。滤波是一种常用的图像处理操作,经常用于在尽量保留图像细节特征的条件下对目标图像的噪点进行抑制。在本系统对于MAX30102模块使用中,滤波操作可以用于IIC协议传输的数据减少其中的噪声和失真,提高数据的准确性和可靠性。

2)平滑处理。平滑处理也称为模糊处理,是一种简单且使用频率很高的图像处理方法。在本系统对MAX30102模块的使用中,平滑处理可以用于降低图像分辨率,减少局部灰度的起伏,使图像变得比较平滑。平滑处理可以用于提取较大的目标前过滤去除较小的细节或将目标内的小间断连接起来。

3)单位转换。MAX30102模块可以输出心率、血氧饱和度等数据,这些数据通常以特定的单位表示。在读取和处理这些数据时,可能需要将数据从一种单位转换为另一种单位。例如,可以将心率从次/分钟转换为次/秒,或将血氧饱和度从百分比转换为小数形式等。

4 Wi-Fi模块设计

4.1 Wi-Fi数据上传

当系统处于检测状态时,会将当前处理的老年人的动作姿态数据上传到互联网,可以做到对老年人实时监控:物联网云平台可以实时监控设备的状态和数据,及时发现异常情况,从而采取相应的措施进行处理,并且物联网可以记录设备的历史数据,并进行数据分析和历史和实时查看,帮助子女了解关注老年人的身体指标健康情况,为预防脑卒中疾病提供数据支持。

ESP8266模块是一款高性能的Wi-Fi串口模块,其内部高度集成的MCU可以实现与主控板之间串口通信,它主要用于设备之间的无线通信和连接。ESP8266模块与互联网连接首先要配置MQTT服务器的用户属性,主题的订阅和信息的发布等。以下为ESP8266与互联网相连接使用到的AT指令[7]:

1)AT+RST,即重启模块。

2)AT+CWMODE=<1/2/3>,即设置Wi-Fi模式。

3)AT+CWSAP= <ssid>,<pwd>,<chl>,<ecn>,即配置AP参数。

4)AT+CWLI,即查看已接入设备的IP。

5)AT+CIFSR,即查询本地IP地址。

6)AT+CWJAP,即连接AP(路由)。

7)AT+CWQA,即断开与AP的连接。

8)AT+CIPSTART,即建立TCP连接、UDP传输或SSL连接。

9)AT+CIPCLOSE,即断开TCP连接。

10)AT+CIPMUX,即设置多连接模式。

11)AT+CIPMODE,即设置传输模式。

4.2 Wi-Fi接收数据

用户可以通过登录互联网服务器直接与系统通信,手动发送消息回传给Wi-Fi模块来改变变量参数设定相关操作等。

互联网服务器回传给Wi-Fi模块的数据格式为:

+MQTTSUBRECV:0,“<1>”,“<2>”,“<3>”

其中,<1>表示为小程序发布的主题,<2>表示为回传的数据长,<3>表示为设定的心率、血氧、血压的阈值、动作姿态判断的幅度阈值等数据[8]。

Wi-Fi模块接收到数据后,通过串口中断将其回传给主控板,主控芯片随即根据不同的指令而做出改变,例如调整系统的危险情况的判断阈值来调动预警功能的灵敏性,从而实现用户对检测与预警系统的远程控制。Wi-Fi具体配置流程为图4所示。

5 预警功能设计

5.1 预警触发方式

该检测与预警系统的预警功能触发方式可以根据老年人的具体情况和需求来确定:

1)感知设备。使用心率、血氧、血压等身体指标的采集感知设备来监测老年人的生命体征,当出现异常情况时,可以自动触发报警系统。

2)移动监测设备。移动设备所指的是动作姿态的捕捉环节,采用形式可以如智能手环、智能手表一样,通过实时监测老年人的动作行为,当系统判断出现异常情况时,可以自动触发报警系统。

3)手动触发。老年人或照顾者可以通过按下报警按钮或拨打紧急电话等方式手动触发报警系统。

5.2 预警功能

当系统出触发预警时会拨通电话并同时将老年人所处的位置用短信的方式发送给子女。

GSM模块的配置首先需要将GSM模块的TXD和RXD分别连接到主控板的TXD和RXD引脚上,再PWRKEY引脚连接到主控板的数字引脚上,用于控制GSM模块的电源,最后将GSM模块的GND引脚连接到单片机开发板的GND引脚上。接着需要为GSM模块配置AT指令在程序上建立与主控板的沟通[9]。以下为GSM模块与主控板相连接使用到的AT指令:

1)AT+CGMM,即获得模块标识。

2)AT+CGMR,即获得改订的软件版本。

3)AT+CGSN,即获得GSM模块的IMEI(国际移动设备标识)序列号。

4)AT+CSCS,即选择TE特征设定。

5)AT+CGCS,即设定电话簿状态。

6)AT+CIMI,即获得IMSI。

7)AT+CCID,即获得SIM卡的标识。

8)AT+CMGC,即发出一条短消息命令。

9)AT+CMGD,即删除SIM卡内存的短消息。

10)AT+CMGF,即选择短消息信息格式,0:PDU,1:文本。

11)AT+CMGR,即读短消息。

12)AT+CMGS,即发送短消息。

GSM模块与主控板连接成功后,主控芯片将通过串口与其通信,在接收到触发报警功能后,通过AT指令拨通子女电话和发送GPS模块获取到的当前的经纬度的短信,成功实现报警功能[10]。具体流程如图5所示。

6 系统实现

基于上述各模块功能的介绍,我们成功搭建该检测与预警系统。其中,我们遵循了以下步骤:

1)需求分析。首先明确系统的功能,包括检测目标、精度要求、实时性需求等需求,确保系统能够满足老年人实际检测的需要。

2)软件开发与实现。基于上述选定的硬件,进行软件的开发和实现,包括数据采集、处理、分析和显示等功能模块。先进行单元测试,对系统的各个模块进行单独测试,确保每个模块的功能正常。再进行集成测试,将所有模块集成在一起进行测试,验证模块之间的交互是否正常。最后再系统测试,模拟实际生活场景,对整个系统和云平台的实时传输进行全面测试,确保系统在各种情况下都能稳定运行。关于云平台检测终端界面如图6所示。

3)测试情况。将硬件和软件集成在一起,进行系统的调试和优化,确保系统正常运行。系统运行稳定,各身体指标检测速度快,精度高,能够满足实际中检测老年人的需求。稳定性方面,经过长时间运行测试,系统未出现故障,在现实生活环境条件中,系统均能保持高精度和高稳定性的检测结果。

7 结 论

本文提出了一种新型的老年人脑卒中产品设计方案。该方案结合了物联网、嵌入式、模块采集等技术,实现了对老年人生命体征的实时监测、异常预警和快速报警等功能。该产品的设计充分考虑了老年人的生理和心理特点,操作简单、易于携带,旨在为老年人提供更加便捷、高效的脑卒中预防和治疗服务。结果表明该产品能够有效监测老年人的生命体征变化,及时发现异常情况并报警,得到了老年人和医护人员的好评,具有较高的实用价值和推广意义。

参考文献:

[1] 王鹏.基于嵌入式的智能养老院监控系统 [D].长春:长春工程学院,2020.

[2] 杜云海,丁文静,张梓涵,等.基于STM32及北斗定位的老年人自动监护报警系统 [J].物联网技术,2022,12(7):22-25+29.

[3] 张钦彦,定美辰,瞿世超,等.基于卡尔曼滤波及增量式PID控制的风摆控制系统研究 [J].武汉交通职业学院学报,2023,25(3):144-150.

[4] 俞晨吉,潘泽庆,胡海洋,等.基于STM32的两轮自平衡车控制系统设计 [J].信息技术与信息化,2023(8):12-15.

[5] 张晟祺,解乃军,纪有旺,等.基于STM32的老人跌倒检测智能家居系统设计 [J].工业仪表与自动化装置,2023(1):35-39.

[6] 王世豪,臧衍乐,祝双武.具有心率血氧检测功能的智能服装设计 [J].毛纺科技,2022,50(11):38-44.

[7] 胡浩鸣,张胜利,赵思,等.基于ESP8266的地窖环境监测系统设计 [J].现代信息科技,2023,7(22):150-155.

[8] 徐世缘,耿丽清,徐子涵,等.基于STM32与ESP8266的智能拐杖系统设计 [J].自动化与仪表,2023,38(9):120-124.

[9] 陈翰林,苏亚伟,石春花.基于GSM通信技术的老人跌倒报警系统 [J].山西电子技术,2022(5):32-34+38.

[10] 刘明硕,何丹丹,李帅.基于STM32的老年群体居家智能药盒系统设计与实现 [J].电子设计工程,2023,31(21):161-165.

作者简介:范洁润(2003—),女,汉族,广东汕头人,本科在读,研究方向:硬件设计;刘耀聪(2003—),男,汉族,广东东莞人,本科在读,研究方向:硬件设计;通讯作者:刘炜杰(2000—),男,汉族,广东江门人,本科,研究方向:硬件设计;朱彦兆(2003—),男,汉族,江西赣州人,本科在读,研究方向:嵌入式系统;谢培权(2002—),男,汉族,广东汕头人,本科在读,研究方向:电路设计。