基于物联网和移动终端的老人健康检测系统
Elderly Health Detection System Based on Internet of Things and Mobile Terminals
摘要: 设计与实现了一套基于物联网和移动终端的老年人健康监测系统。本系统采用层次化的结构总体设计,第一层为传感层,用于数据的采集,主要测量用药情况、体温以及心率;第二层为主控层,采用单片机作为主控芯片,将传感层采集到的数据进行处理和分析,判断老人健康状态,包括异常报警、本地显示、语音识别、GSM一键通话、供电电路;第三层为网络层,用于将采集数据上传至ONENET平台搭建的服务器端,实现数据的存储与可追溯;第四层为终端层,利用Android studio开发,基于MQTT和OkHttp协议实现数据采集端、服务器端和APP端的连通,实现远程移动实时检测。经过测试,该系统能准点提醒老人吃药,判断老人服药情况并检测老人体温状况,当系统检测到老人心率数据异常、体温异常或用药异常时报警,并自动拨号紧急联系人。老人还可通过语音识别方式实现一键拨打紧急联系人电话。
Abstract: The paper designs and implements a set of health monitoring system for the elderly based on Internet of Things and mobile terminals. The system adopts a hierarchical structure overall design, the first layer is the sensing layer, which is used for data collection, mainly measuring medication, body temperature and heart rate; the second layer is the main control layer, using a single-chip microcomputer as the main control chip, processing and analyzing the data collected by the sensing layer to determine the health status of the elderly, including abnormal alarm, local display, voice recognition, GSM one-key call, power supply circuit; the third layer is the network layer, which is used to upload the collected data to the server built by the ONENET platform to realize data storage and traceability. The fourth layer is the terminal layer, developed by Android studio, based on MQTT and OkHttp protocols to realize the connection of data collection, server and APP, and realize remote mobile real-time detection. After testing, the system can remind the elderly to take medicine on time and judge the elderly taking medicine and detect the temperature status of the elderly, when the system detects the abnormal heart rate data of the elderly, abnormal body temperature or abnormal medication, buzzer alarm, and automatically dials emergency contacts. The elderly can also use voice recognition to make one-click calls to emergency contacts.
文章引用:黄源源, 吕军. 基于物联网和移动终端的老人健康检测系统[J]. 软件工程与应用, 2023, 12(1): 174-184. https://doi.org/10.12677/SEA.2023.121018

1. 引言

人口老龄化是21世纪不可逆转的人口发展态势 [1] ,人口老龄化的问题已经成为我们社会面临的主要问题 [2] 。随着我国人口老龄化现象的日益严重,老龄社会问题日益凸显,老年人群体的晚年生活健康迫切需要得到关注和保障。高血压和心脏病属老年人常见病、多发病。因老年人抵抗力减弱、生化反应及生理功能退行性改变,致使药物体内代谢过程也发生了变化,不良反应的发生率亦显著 [3] 。因此,实时检测老年心脏病患者用药情况和心脏平稳率,对促进用药安全性及有效性尤为重要。疫情期间,老人的体温是判断健康状况的一个重要指标。新冠肺炎以发热、干咳、乏力主要症状,发热检测是疫情防控的第一站,发挥重要的哨点作用 [4] ,然而大多数老年人身体感知机能下降,不能及时有效地感知到体温的异常,可能导致错失最佳治疗时段。利用物联网和智能设备,可以远程实时监控老人的体温状态和服药情况,并实现数据的存储和溯源,及时对非正常情况做出反应并报警,保障老人的生命安全。现阶段市场上的监测仪器针对老年人的功能较少,且价格较高,使用较为繁琐,因此,利用物联网 [5] 和移动终端 [6] ,实现将智能技术应用于居家养老模式,设计一套经济、实用、合理、可靠的便携式老人健康监测系统,以提高健康监测的智能化、网络化水平,为可穿戴设备的发展提供技术支持。

基于物联网和移动终端的老年人健康监测系统,可实现老年人的身体指标采集、数据上传和实时监测,缩短应急事件的救援时间,提高健康监测智能化水平,为智能化监测和管理提供参考。

2. 老人健康检测系统设计

老人健康检测系统主要包括传感层、主控层、网络层、终端层。传感层融合称重传感器、温度传感器、心率传感器等多重传感器;主控层基于ST公司的STM32F103ZET6单片机,用于获取当地实时时间,语音识别,处理异常情况,实现一键报警等;网络层利用ESP8266模块连接WIFI将采集数据上传云端,将数据保存至ONENET平台搭建的服务器端;终端层基于Androidstudio开发,实现多个移动终端实时查看。系统整体框图如图1所示。

Figure 1. Block diagram of the elderly health detection system

图1. 老人健康检测系统框图

2.1. 传感层设计

传感层主要包括非接触式红外体温采集模块MLX90614模块,BMD101心电采集模块,VC02语音识别模块,HX711称重模块。利用STM32F103主控芯片完成对各个传感器模块的驱动、协调和处理。整个系统采用12 V的锂电池供电,使用TPS5430、AMS117稳压电路,将电源转化为5 V和3.3 V,满足系统供电需求,且保证了电流输出。

2.1.1. 红外测温模块

选取MLX90614作为温度传感器模块的主控芯片,其内置低噪声放大器、17位高精度模数转换,实现了高精度、高分辨度的体温测量。该模块与单片机之间通过“类IIC”通信,即SMBus通信 [7] 。在MLX90302的RAM单元中,将其目标温度和周围温度进行了计算,能够获取一个更精准的温度值,在温度测量范围在−40℃~+125℃,温度分辨率为0.02℃。在温度范围在+32℃~+42℃时,测量的绝对精度为±0.2℃。该模块具有体积小、在体温范围内精度高等优点(图2)。

Figure 2. MLX90614 infrared temperature sensor schematic

图2. MLX90614红外温度传感器原理图

2.1.2. 心率检测模块

BMD101芯片可用于采集从μV到mV的高质量生物信号,并使用16位高分辨率ADC将其转换为数字信号 [8] 。该芯片具有先进的模拟前端电路,能对微小心电信号进行滤波、放大。内置灵活强大的数字信号处理结构,配备了DSP数据处理模块来加速对系统管理单元监控下的各种数字滤波的计算,将采集到的心率时域信号转换成为频域信号,结果可靠。该模块功耗低、集成度高、功能强大,能够实现佩戴式实时人体心率检测。利用该模块对人体1秒内进行512个点的采样(即采样率为512 Hz)并输出数据显示原始的心电波形。该数据由16位补码组成,其值范围为−32,768到32,767之间,之后将数据送入主控层进行处理即可。每隔1 s (即采集完512个数据)串口接收到心率数据,并将该数据传输至主控层的本地端显示。相比于TI公司的ADS1292r心电采集模块,BMD101模块价格更便宜,省去了复杂的算法求解心率(图3)。

Figure 3. BMD101 heart rate detection module

图3. BMD101心率检测模块原理图

2.1.3. 语音识别模块

语音识别模块采用LD3320 [8] 作为主控芯片。LD3320芯片集成了语音识别处理单元,并结合了AD、DA转换器、音频输出接口、麦克风接口等外围电路,只需与MCU建立串口通信,即可快速使用。该模块所识别的关键词列表可以进行任意的动态编辑,只要预先设置一个关键词列表,并将关键词输入到LD3320中,在收到语音指令后就能自动识别出用户所说的关键词,而无需再进行其他的录音训练。每一次的识别,都是将使用者所说的话,经过频谱的变换,提取出特定的语音特征,并与该关键词的对应项一一对应,选出最优一条作为识别结果。硬件电路如图4所示。

2.1.4. 称重传感模块

称重传感模块主要用到了CLZ-611N压力传感器以及HX711 [9] A/D转换芯片。压力传感器CLZ-611N能够感应到压力信号,并能根据一定的规则把压力信号转化为电信号。应变片型电阻是传感器的核心部件,其工作原理是以材料的电阻应变效应为基础,与弹性元件相结合,形成力学量传感器。HX711是一款24位A/D转换器,专门用于高精密电子秤。与其他同类芯片相比,本芯片集成了稳压电源、片内时钟振荡器等外围电路,集成度高,响应速度快,抗干扰能力强。通过HX711AD可将从CLZ-611N压力传感器得到的模拟信号转换为数字信号,输入到单片机中进行处理(图5)。

Figure 4. LD3320 speech recognition module

图4. LD3320语音识别模块原理图

Figure 5. CLZ-611N weighing sensor module

图5. CLZ-611N称重传感模块

2.1.5. 传感层供电模块

整个系统采用12 V的锂电池供电,锂电池可反复充电使用。12 V电压不能直输入给这些传感器使用,必须配合稳压电路,将电压转换至合适的范围内。利用TPS5430、AMS117稳压电路,可以将12 V的锂电池电压转换为5 V和3.3 V,既能满足系统供电需求,也保证了电流输出。系统体温、心率数据采集模块都采用3.3 V进行供电,VC02语音识别模块采用5 V供电(图6)。

2.2. 主控层设计

主控层基于ST公司的STM32F103ZET6单片机,开发使用Keil u Vision5软件完成对传感层接收到的数据处理,并将数据显示在本地LCD屏上。主控层主要完成检测老人的用药、心率、温度情况并利用ESP8266将数据上传云端,协调控制传感层和网络层,实现本地数据的移动化、可追溯式保存等。主控层流程框图如图5所示。首先需要建立与传感层的通信连接,主要依靠单片机的外设IO口实现本地实时交互,包括配置“类IIC”引脚、串口通信引脚等。得到传感层输入数据后,根据设定阈值判别老人健康情况。主控层需不断更新实时数据,循环判别老人实时状况,并根据判断结果选择是否需要报警,同时由WiFi传输数据流至OneNET平台进行存储,APP端可以从云平台上获取生理数据,并且远程监控生理指标(图7)。

Figure 6. Schematic diagram of power supply module of sensor layer

图6. 传感层供电模块原理图

Figure 7. Flow chart of main control layer of elderly health detection system

图7. 老人健康检测系统主控层流程图

2.3. 网络层设计

2.3.1. 无线传输模块

无线传输模块主要用到了ESP8266物联网开发模块。它的价格便宜,性能稳定,在智能交通,智能家具,监控系统,工业控制等方面有着广阔的应用前景。ESP8266共有8个引脚,其中主要通过TXD (发送数据)和RXD (接收数据)两个引脚同主控层的单片机进行串口通信。单片机输出AT指令即可对ESP8266进行初始配置,设置内部参数,选取STA模式,如表1所示。

Table 1. Part of AT instructions and their significance

表1. 部分AT指令及意义

2.3.2. OneNET物联网平台

OneNET是一个开放的物联网云平台,它提供了大量的智能硬件开发工具,能够帮助不同的终端设备迅速地连接到网络,完成数据传输、存储和数据管理。它具有三种通信模式:以太网通信、GPRS数据通信和WiFi通信。

本系统利用WiFi同OneNET平台进行通信,主要搭载ESP8266无线传输模块,将本地数据无线传输至物联网平台。这里采用MQTT通讯协议,通过串口将传感层获取到的心率、温度数据上发,于平台控件中显示。ESP8266模块一端与MCU进行串口通信,另一端与云平台连接,需要提前配置模块的连接网络和网络密码,让模块连入WiFi信号进行后进行数据传输。此外,ESP8266模块需要获得平台的IP地址及端口号,利用EDP与云端平台进行无线通信。平台上的设备连接则需要获取三个设备数据,分别为产品编号(PROID)、身份验证信息(AUTH_INFO)和设备ID (DEVID)。获得这三个身份数据需要在云平台上创建产品,填写产品信息,选择设备设备访问协议为MQTT。MQTT协议与HTTP协议类似,都是基于TCP传输协议的应用层传输协议。不同的是,MQTT能够实现对设备的逆向控制,同时以发送数据为中心,节省流量,而且操作简便,效率高,可以完成基本的功能。产品创建完成后,会自动产生一个ID和APIKey (产品密钥),之后再根据本地上传的数据添加对应的数据流:xinlv和Temperature,该数据流的设定必须严格同单片机发送的数据流名称相同。OneNET平台工作流程图如图8所示。

Figure 8. OneNET platform work flow chart

图8. OneNET平台工作流程图

2.4. 终端层设计

与IOS相比,安卓的开发更为简便,随着安卓的整合开发环境Android Studio的问世,使用安卓平台进行设计的产品覆盖面广,便于产品推广和老年人使用。平台不仅把安卓系统的UI接口和组件设定结合在一起,同时还提供了大量的代码和源程序,使得APP的设计更加简便。每个安卓系统一般都有四大模块,分别为活动(Activity)、服务(Service)、广播接收器(BroadcastReceiver)、内容提供器(ContentProvider)也就是所谓的安卓系统的四大件 [7] 。只要将四个主要部件中的若干个适当地结合起来,就可以设计出所需要的应用。

用户登录老年人健康监测系统进入系统主界面,系统主界面包括心率值、温度值。主界面由三个ImageView控件、三个TextView控件以及画板VerticalProgressBar控件组成。界面布局同样采用相对布局RelativeLayout,三个ImageView控件用于显示含有“心率”、“温度”和“时间”的图片,三个TextView控件,两个用于显示获取到的心率、温度的数据以及两者的单位,一个用于获取当前时间。当APP打开后,应用OkHttp搭建的网络请求框架,调用OkHttpClient的newCall()方法来创建一个call对象,并调用它的execute()方法来发送请求和获取服务器返回的数据,实现心率信息和温度信息的传输和显示。画板VerticalProgressBar控件用于采集数据时进度条显示,增加美观性。

3. 老人健康检测系统整机测试

3.1. 心率检测测试

利用自制的老年人心率监测系统进行人体心率数据采集,为验证系统的准确性,利用SKX-2000C型心率模拟器进行测试,采集10次,判别误差,如表2所示。经过测试,模拟心率数值从60次增加到100次,系统均能准确的测量出心率值。

Table 2. Comparison between heart rate simulator values and system measurements

表2. 心率模拟器数值和系统测量值对比

3.2. 用药识别检测测试

考虑到老人日常吃的药片较小,本次选取的药片每粒净重0.95 g,连带药瓶20粒药片总计41.932 g进行实验。预设老人应该吃两粒药,到达老人预设的吃药时间时,模拟老人未及时拿起药品,观察蜂鸣器及LED灯是否会报警以及LCD屏上是否会显示“请拿药!”;模拟老人只拿了一片药,蜂鸣器和LED灯是否仍然报警以及LCD屏上是否会提示提示“太少了!一片!”;模拟老人拿了两片药,观察是否取消报警并且屏幕上显示“正确!两片!”。以此类推,经验证,该系统能很好的实现到点提醒老人吃药并且提示吃药多少的功能。吃药功能检测图如图9所示。

Figure 9. Dialing function test chart

图9. 模拟老人只拿起一片药情况

3.3. GSM自动拨号检测测试

GSM电话拨号共有三种触发方式,分别是一键拨号、异常指标报警和语音识别。模拟老人按下主控层单片机上的KEY_UP键,观察GSM模块是否一键拨号;预先设置好正常心率阈值,模拟老人心率不在该阈值范围内时,观察单片机是否发出报警信号,并拨号给紧急联系人;模拟老人通过语音识别的方式拨号,先通过唤醒指令使GSM模块处于工作状态,然后通过语音指令进行自动拨号。拨号功能图如图10所示。

Figure 10. Dialing function test chart

图10. 拨号功能测试图

3.4. OneNET云平台数据上传测试

整机初始化,让系统正常运行,观察系统是否连接上网络,然后登录OneNET平台,查看对应的设备列表确认设备状态为在线,然后查看是否接收到xinlv (心率)和Temperature (温度)两个数据流,Temperature温度数据流如图11所示,左测数据为温度上传时间,右侧数据为温度,左上角可以选择查看指定时间段的数据流。

Figure 11. Cloud platform temperature data test chart

图11. 云平台体温数据测试图

3.5. 移动APP测试

下载经过Android Studio软件开发完成后生成的apk软件包,将其安装至手机上。然后整机上电,观察系统正常运行时,手机APP端是否会实时更新并显示当前老人的心率和温度(图12)。

Figure 12. Mobile APP test chart

图12. 移动APP测试图

4. 结论

测试结果表明,设计的老年人健康监测系统能够实时检测老人的心率、温度与用药情况,当检测到老人健康情况异常时,可进行声音报警、紧急联系人一键拨号报警,通过及时地感知到老人的非正常状况,保护老人的生命安全。此外,该系统能将采集到的老人健康数据上云,实现数据的存储与可追溯,同时可在多个移动终端实时查看老人健康状况(图13)。

Figure 13. Overall system test diagram

图13. 系统整体测试图

本装置的创新之处有三点:

1) 多传感器同时工作,检测更加全面,能对老人的健康情况做出更准确的判断。

2) 考虑到老人行动不便,记忆力衰退等特点,可实现一键拨号、异常指标报警和语音识别拨号,功能更全面,更适合老人日常使用。

3) 数据上云,可随时随地多设备查看老人身体健康数据,并实现数据的存储与可追溯。

NOTES

*第一作者。

#通讯作者。

参考文献

[1] 李志宏, 金牛. 实施积极应对人口老龄化国家战略——中国的路径选择与认知转向[J]. 南开学报(哲学社会科学版), 2022(6): 11-18.
[2] 周芮同. 构建科学合理养老服务体系的思考与建议[J]. 产业与科技论坛, 2017, 16(17): 250.
[3] 杨学丽. 老年人高血压及心脏病用药的注意要点分析[J]. 世界最新医学信息文摘, 2015, 15(3): 97.
[4] 林明岳. 新冠肺炎疫情下537例发热伴呼吸道症状患者病因分布及临床特点分析[D]: [硕士学位论文]. 广州: 广州医科大学, 2022.
https://doi.org/10.27043/d.cnki.ggzyc.2022.000348
[5] 田有隆. 基于医疗物联网的智能健康管理模型设计[J]. 互联网周刊, 2022(21): 66-68.
[6] 金建红. 一种健康服务移动终端[P]. 天津, CN215110296U, 2021-12-10.
[7] 苗立志, 娄冲, 吕国骏. 基于智能拐杖的移动健康实时监护原型系统[J]. 计算机技术与发展, 2020, 30(7): 130-134.
https://kns.cnki.net/kcms2/article/abstract?v=3VGQGmUhR6EuaR1E4Z6SM1nDeKktjGeiUJ3cpEyTjaee5Y0EcgPjAr-FCVegY9tbOXAlxPemVtA79gkDiqtFD6ZiAS86-jqsL6aA7i5Cl23Lu12HFe3UcpI3WdK14Coo&uniplatform=NZKPT&language=CHS
[8] 尤彦辰, 孙果镓, 冯泽霖, 吕军. 基于多传感器和Android的老人安全智能监护系统[J]. 软件工程与应用, 2021, 10(5): 661-669.
[9] 吕军, 尤彦辰, 叶忠儒, 李国志. 基于称重传感器的电子元器件智能管理系统[J]. 软件工程与应用, 2022, 11(4): 815-825.