基于NB-IoT和华为云的老年人智能安全监护系统

2024-01-03 08:42范小娇范晨宇马亚红
现代计算机 2023年21期
关键词:蜂鸣器血氧体温

杨 柳,范小娇,范晨宇,马亚红,李 静,刘 欣

(西京学院计算机学院,西安 710100)

0 引言

近年来,老年人群体的健康状况引起了社会各界的广泛关注。老年人通常是心脑血管等疾病的高频率发病群体。在周围没有其他人的情况下,老年人如果突发疾病,无法及时采取有效的治疗措施,且他们也没有意识和很好的方法长期监测自身的体征参数和各项指标,所以并不能够及时地预防疾病的发作。与国外相比,中国老龄人口看护体系的发展过程相对缓慢,从二十世纪五十年代后期开始研究,但是真正的临床监测始于二十世纪七十年代中期。从二十世纪九十年代起,伴随着各种医疗设备监控仪器的推出,多数中国的监控仪器都能对一部分人体体征参数进行监控[1]。比如,南京正在进行智能化养老的课题,该方案最主要的特点是:利用NB-IoT 和华为云技术来开发一种可监护老年人健康数据的系统,不仅可以监测自身的体征参数和各项指标,也能够及时地预防疾病的发作。

本文所提出的老年人智能安全监护系统以心率血氧模块、体温模块等硬件作为数据采集端,将数据上传并存储至云平台,当检测到异常数据时,蜂鸣器进行警示。该系统还可以远程监控,为用户提供便捷的服务和健康的保障。

1 系统整体设计

1.1 总体框图设计

本系统由采集设备、华为云平台和老年人智能安全管理系统三部分组成,其中采集设备通过传感器采集老年人人体的心率、血氧浓度和人体温度等参数,并通过NB-IoT 通信模块将采集的数据信息传输至华为云平台。监护人可以使用自己独有的账号和密码通过电脑客户端登录,登录成功后,便可以看到老年人的实时心率血氧参数值和体温值。系统对上述两种人体生命体征参数分别进行分析,对老年人和其监护人起到警示作用。系统总体框图如图1所示。

图1 系统总体框图

1.2 采集设备设计

采集设备的主要功能是采集数据、传输数据。采集设备由主控制器STM32 单片机、心率血氧传感器、温度传感器、NB-IoT 通信模组、OLED 液晶显示屏、蜂鸣器等模块组成[2]。利用单片机来接收处理传感器的信息,并对蜂鸣器和OLED 模块进行控制。若检测到人体心率高于或者低于程序中预先设置的范围,控制模块将会命令蜂鸣器执行报警;若人体温度高于或者低于程序中预先设置的范围,控制模块也会命令蜂鸣器做出响应[3]。本设计的采集设备总体架构如图2所示。

图2 采集设备架构图

2 系统硬件设计

2.1 主控制器模块

本设计的主控制模块为STM32 单片机,用于处理心率血氧和人体温度的实时参数值。STM32 控制简单、方便,有强大的处理、控制功能。可以通过编写程序控制单片机里面的各种资源和外接I/O 口等,所以采用STM32 单片机来实现这些功能具有一定的优势。

2.2 NB-IoT通信模块

NB-IoT具有低成本、低功耗、广覆盖、大连接的特性。本文中NB-IoT 通信模块选用的是BC20型号的通信模块。BC20是一款高性能、低功耗、多频段、支持GNSS 定位功能的NB-IoT 无线通信模块。其尺寸仅为18.7 mm×16.0 mm×2.1 mm,能最大限度地满足终端设备对小尺寸模块产品的需求,同时有效帮助客户减小产品尺寸并降低产品成本。BC20 提供丰富的外部接口和协议栈,同时支持多种物联网云平台,为客户的应用提供极大的便利。

2.3 心率血氧监测模块

心率监测模块采用的是MAX30100,这是一款有脉搏血氧仪和心率监测传感器的模块,这个元器件上有两个LED、一个光电探测器。MAX30100 采用3.3 V 的电源电压,其待机模式下消耗的电流量可忽略不计,所以可以一直保持电源的连接。

2.4 体温监测模块

体温监测模块采用的是DS18B20,它独特的单线接口仅需一个端口引脚进行通讯,无需其他的外部器件即可直接通过数据线供电,零待机功耗。它的测温范围-55℃~+125℃,以0.5℃递增。

2.5 报警提示模块

蜂鸣器采用三极管驱动,当监测到的心率血氧值或者体温值的参数过高或者过低时,系统会命令蜂鸣器发出声响来提醒用户周围的人及时对用户进行救助。当心率、血氧浓度或体温数据不在正常范围内时,系统程序根据预先设置好的报警阈值条件,循环输出高低电平,蜂鸣器进行报警。当心率数据和人体温度都在正常范围内时,输出低电平,报警停止。

2.6 显示模块

本设计采用OLED 液晶显示,使用的是0.96 寸OLED 显示屏,该屏分辨率为128×64。由于其显示内容清晰、丰富、显示信息量较大、体积较小、轻薄,显示内容速度快等特点而得到广泛应用。应用在本设计中很好地发挥了其优势。

OLED 模块、BC20 模块与STM32 模块的连接如图3所示。

图3 硬件连接图

3 系统软件设计

在系统上电后,先对各模块进行初始化,初始化完成之后成功连接到云平台,各模块开始工作,传感器开始采集心率血氧、体温数据,将检测到的数据传输给STM32,STM32 单片机分析完数据就会进行相应的处理,并判断数据值是否异常,如果数据值异常,则蜂鸣器进行报警提示[4]。其系统的主程序流程如图4所示。

图4 软件设计总流程图

3.1 心率血氧监测模块设计

本模块的程序设计重点主要是实现对用户心率和血氧信息的采集,如果采集到的信息超出程序中所设定的阈值,程序启动蜂鸣器进行报警。心率血氧监测模块的执行流程如下:采集模块采集到人体的心率和血氧值,将信息传给控制模块,程序会根据当前监测到的心率血氧值对比程序中设定的范围值(范围内的数值判定为健康)来判断用户身体是否健康,当判定出用户心率和血氧值的参数过高或者过低时,系统会启动蜂鸣器,发出声响来提醒用户周围人及时对用户进行救助。

本模块中的红光、红外光都用来测量人体血液中的含氧量。含氧的血液中可以传递更多的红光并且可以吸收更多的红外光,而脱氧血液中传递更多的红外光并吸收红光,读取两个光源的吸收电平,通过测量心脏向外泵的血液中的氧合血红蛋白增加和减少之间的时间,确定心率。血氧饱和度(SpO2)的计算公式为

该模块通过IIC 通信协议与STM32 交换数据,其中SCL 连接B8,SDA 连接B9 读取rawIRValue(红外FIFO 数据)、rawRedValue(红光FIFO 数据),计算心率血氧的数据。

3.2 体温监测模块设计

此模块的程序设计重点主要是实现对用户体温信息的采集,如果采集到的信息超出程序中所设定的阈值,程序启动蜂鸣器进行报警[5]。体温监测模块的执行流程如下:采集模块采集到人体体温,将信息传给控制模块,程序会根据当前监测到的体温值对比程序中设定的范围值(范围内的数值判定为健康)来判断用户身体是否健康,当判定出用户体温值的参数过高或者过低时,系统会启动蜂鸣器发出声响,以此来提醒用户周围人及时对用户进行救助。

3.3 华为云平台设计

华为云平台实现了设备的接入、数据的分析等功能[6]。首先在华为云平台中进行设备的注册。在华为云平台官网登录并在“产品”中创建自己的产品。然后对产品里的属性进行定义。定义完成后,继续对设备进行注册,对设备进行功能配置。接着进行编解码插件的开发,最后对设备进行调试,保证设备可以正确地接入云平台。将设备与各个模块都连接好后,通过AT 命令连接华为云,和华为云建立好连接后,进行数据的上传。通过MQTT 协议发送传感器所检测到的数据。

系统初始化以后,NB-IoT 通信模块就会向华为云平台发送设备标识码进行连接。连接成功后,传感器所采集到的信息就会上传到华为云平台。收到了云平台下发的JSON 格式的反馈后,设备将会把信息转换成二进制上报给华为云平台。华为云平台进行可视化展示。

4 系统测试

4.1 心率血氧监测模块测试

首先,在静态情况下接通电源,打开主控制器开关,将手指放在心率血氧传感器上,采集静态情况下的心率血氧信息。然后,通过运动来改变心率值,模拟异常的心率血氧信息。当人体心率高于或者低于程序中预先设置的范围时,蜂鸣器发出声响;当人体心率处于程序中预先设置的范围内时,蜂鸣器警报停止。一般情况下成年人的正常心率为60~100 次/分,心率>100 次/分为心率过高;心率<60 分/次为心率过慢。血氧饱和度正常值为95%~99%。静态情况下,对心率血氧模块进行测试,测试结果如图5所示。

图5 正常情况下心率血氧浓度测试结果

从图5可以看出,人体在静态情况下,心率是94,血氧值是96,在预设的阈值范围内,属于人体正常的健康数据。

在模拟的异常情况下,对心率血氧模块再次进行测试,测试结果如图6所示。

图6 异常情况下心率血氧浓度测试结果

从图6可以看出,人体在异常情况下,心率是107,血氧值是94,在预设的阈值范围外,为人体心率过高且血氧浓度偏低的数据。

4.2 体温监测模块测试

在前面的一些基础准备工作(连接各个模块、接通电源并放在水平桌面上)做好后,测试体温监测模块。首先,打开主控制器开关;然后,先测试室温来模拟异常情况下的体温,当人体温度高于或者低于程序中预先设置的范围时,蜂鸣器发出警报;这时再用手指放在传感器上,当人体体温在程序中预先设置的范围时,蜂鸣器警报停止。除了体温外,人还有皮肤表面的温度。当环境温度为25℃时,体表温度平均为32℃。头颈部、胸部、背部、四肢略有不同。人的额部皮肤温一般为33℃、手为30℃、脚为27℃。大约相差2~3℃。

在静态情况下对体温模块进行测试,结果如图7所示。

图7 体温正常情况下的测试结果

从图7可以看出,人体在静态情况下,体表温度为34℃,在预设的阈值范围内,属于人体体温正常的数据。

在模拟的异常情况下,对体温模块再次进行测试,测试结果如图8所示。

图8 体温异常情况下的测试结果

从图8可以看出,该异常情况下的人体体表温度为27.4℃,在预设的阈值范围外,属于人体体温过低的数据。

4.3 华为云平台功能测试

采集模块所采集的数据经MQTT 协议,通过NB-IoT 模块将心率血氧信息、人体温度信息上传,用户可通过网页端实现对人体数据的访问。网页端如图9所示。

图9 数据上传到华为云平台网页端

从图9可以看出,传输到华为云平台网页端的心率值是75,血氧值是95,温度值是33.8℃。华为云平台也可以看到近几天的历史数据,这样可以帮助医生根据历史数据去判断老年人是否健康。如图10所示。

测试完本监测系统的各个模块后,就可以对整个系统进行测试。首先需要将本设计的各个模块连接好,并接通电源。打开开关之后各个模块开始监测人体各项指标,当人体体温(34℃±3℃)、心率(60~100)和血氧(95%~99%)高于或者低于程序中预先设置的范围时,蜂鸣器发出警报。

5 结语

本文对基于NB-IoT 和华为云的老年人智能安全监护系统进行了研究,使用MAX30100 心率血氧传感器、DS18B20 温度传感器、STM32开发板、NB-IoT 通信模块、华为云平台等模块进行了设计和应用。主要从NB-IoT 和华为云的老年人智能安全监护系统的需求、系统性能方面分析了本设计的可行性,结果表明本系统的性价比和可靠性更高,使用起来更加的方便。最终系统实现了预期的功能和实际要求。

猜你喜欢
蜂鸣器血氧体温
体温低或许寿命长
电动自行车产品车速提示音检测现状和整改技术研究(2)
体温小问题,引出大学问
掌控板制作简易钢琴
体温值为何有时会忽然升高?
单片机驱动蜂鸣器的程序设计
智能血氧饱和度监测系统设计与实现
基于STM32血氧心率检测仪的研制
老年人的体温相对较低
丰田凯美瑞240V车间隙警告蜂鸣器异常鸣响