1. 引言
根据第七次全国人口普查数据结果显示,我国60岁及以上人口约为2.6亿人,占全国人口总数的18.70%,我国已经接近中度老龄化社会。老年人是心血管、脑血管等疾病的高发群体,一般老年人对这类疾病不具备预知或预判的意识和能力,特别在身边没有人的情况下,面对疾病的突发也不具备比较有效的处理措施,而老年人更不具备对自己的生理特征指标进行长期监控的意识和方法 [1]。随着物联网和智能可穿戴技术的不断发展与应用,便携式、经济实用的老人安全监测系统 [2] [3] [4] 成为智能医疗设备的热点之一。基于物联网的老人安全监护系统主要包括数据采集、数据处理、数据传输和数据可视化等模块。对传感器采集到的数据进行处理以获取相关指标,再以串口或蓝牙 [5]、WIFI [6]、ZigBee [7] 等通信方式进行数据传输,最后通过本地显示屏或远程终端实现数据的可视化,以满足老人或监护人的实时查阅。现有的老人安全监测系统以监测老人身体生理指标为主,同时具备老人意外检测功能的设备较少,加上智能化设备操作复杂对老人的不友好性,使得老人安全监测系统适用面窄,体验感较差。
本文开发了一套针对老人安全的智能监护系统。该系统融合了GSM (Global System for Mobile Communications)数字移动通信,GPS全球卫星定位,BMD101的SOC心电检测,LD3320语音识别以及整合性6轴运动处理组件等多种传感器设备,开发了基于Android Studio的远程监护APP,能够实时监测老人的心率和运动轨迹等,在发生心律不齐或摔倒时,系统自动拨打电话至紧急联系人。该系统同时支持一键拨号和语音识别功能,大大争取了老人孤身在家或在外遭遇突发情况的救援时间,提高智能设备对老人的友好性。
2. 老人安全智能监护系统的设计
老人安全智能监护系统主要包括数据采集与处理电路、用于数据存储的云服务器和基于Android的远程移动终端。对老人进行心率和防摔倒检测,并将数据实时显示于移动终端,便于监护人的查阅。系统具有一键拨号、语音拨号和异常数据驱动拨号等多种通话方式,简化设备操作的复杂性,提高系统应用价值。面向移动终端的老人安全智能监护系统总体框图如图1所示。

Figure 1. Design block diagram of the elderly safety intelligent monitoring system
图1. 老人安全智能监护系统设计框图
2.1. 老人安全智能监护系统的硬件设计
老人安全智能监护系统硬件电路集成了GSM模块、GPS模块、MPU6050传感器模块、BMD101心电采集模块、LD3320语音识别模块和ESP8266物联网无线通信模块等。采用ST公司的STM32F103ZET6主控芯片完成对各个模块的协调控制以及数据处理。系统实现了老人卫星定位数据采集、防摔倒检测、心电数据采集、多种方式通话拨号和本地显示等功能。该系统采用5 V锂电池供电,通过内部搭建基于AMS1117-3.3的电源转换电路,以完成对整个功能模块以及主控MCU的供电。
2.1.1. 心率采集电路
采用BMD101作为主控芯片实现心率采集电路,该芯片具有超前的模拟前端电路与灵活强大的数字信号处理架构,可以实现对uV乃至mV级的生物信号精确采样 [8]。基于BMD101的心率采集电路原理:首先,对心率原始电压信号进行高通滤波,滤除信号中的低频噪声,接着进行LNA低噪放大器放大,应用12位的AD转换器将心率模拟信号转换为数字信号;然后,经过50 Hz陷波滤波器和截止频率为100 Hz,增益为−40 dB的低通滤波器;最后,通过UART串行接口(57,600波特率)将数据流输出至主控MCU。MCU提取每秒512个数据中每8字节的实时采集心率电压数据和第512个心率数值数据,即可完成对心率采集以及本地OLED上的实时波形显示。

Figure 2. MPU6050 Schematic diagram of anti falling detection peripheral circuit design
图2. MPU6050防摔倒检测外围电路设计原理图
2.1.2. 防摔倒检测电路
该电路采用6轴运动处理传感器MPU6050作为主控芯片,其SDA\SCL\AD0\INT管脚分别串接了一个120 Ω的保护电阻,同时SDA\SCL管脚输出端分别接一个4.7 kΩ上拉电阻,提高带负载的能力,进而提高电路的稳定性。基于MPU6050的防摔倒检测外围电路如图2所示。
MPU6050集成了3轴MEMS陀螺仪,3轴MEMS加速度计,多个16位的ADC以及一个可扩展的数字运动处理器DMP和可编程低通滤波器。采集到的原始数据通过调用DMP直接输出四元数,通过计算四元数
得到三轴正交欧拉角分别为pitch、roll、yaw,其转换公式为
通过来自x、y、z轴的加速度ax、bx、cx计算得到合加速度数值SVM。计算公式为
老人摔倒的最明显特征是人体中轴线的倾角以及撞击地面时人体三轴合加速度的巨大变化。针对行动迟缓的老人,其在平时生活中加速度曲线的低频特性更为显著,说明老人在日常生活中加速度变化都保持相对稳定 [9]。由图3所示的前倒与下蹲两种行为状态下加速度变化曲线可知,下蹲的加速度曲线峰值不超过2 g,但摔倒时的加速度峰值可达3.5 g,两者差异较为显著,说明加速度阈值可以作为摔倒判定的重要依据之一。但若单单采用三轴合加速度变化来反应摔倒行为,这种方法在跑步等复杂的运动行为中还是存在误判率。综合考虑该系统采用了两级阈值的多次判断,第一级为合加速度阈值判定,第二级为角度阈值判定。因为人体在摔倒时人体中轴线前后变化接近90度,所以可以通过人体中轴线转动的角度阈值来判断是否有摔倒的行为产生,但显而易见,以传感器贴在胸口为例,在老人做弯腰、下蹲等日常动作时单单角度阈值的误判率也很高,容易与摔倒行为混淆,因此在此之前先进行基于合加速度的摔倒预判断,排除一些行为的干扰之后再进行角度阈值的判断。
2.1.3. GPS定位模块
该GPS模块心采用S1216F8-BD模组,具有167个通道,追踪灵敏度高达−165 dBm。本系统中设定采集数据输出的频率为5 Hz,输出的串口数据采用NMEA-0183协议,即使用ASCII码以及数据帧的形式来传递GPS的定位信息。MCU只需解析出$GNRMC帧信息便可得到老人所在的详细经纬度信息。
2.1.4. GSM通讯模块
SIM800L模块可支持4频GSM/GPRS,工作的频段为:GSM850、EGSM900、DCS1800和PCS1900MHz。主控MCU通过串口连接发送AT指令即可完成对模块的自检与拨打电话的功能。
2.1.5. 语音识别电路
在老人发生意外时通常能够发出的声音较小,传播距离短。要求语音识别电路能够识别出声音强度较小的短距语音信号,所以采用基于自动语音识别的LD3320作为主控芯片,其工作流程是对经过咪头输入的声音实现语音特征提取,通过匹配关键词语列表中的关键词语,并将得分最高的关键词语作为最终的语音识别输出。该电路具有强大的语音识别特征库,识别功能灵敏、短距离内识别误差小等优势,尤其适用于对老人声音的识别。在本系统中当它采集到例如“报警”的语音信息时,便会将呼救识别的标志位置为TRUE。

Figure 3. Human acceleration curves under different behavioral postures
图3. 人体不同行为姿态下加速度变化曲线图
2.1.6. 无线通信模块
ESP8266工作温度范围大,成本低,且只需极少的外部电路就可工作。本系统通过MCU发送AT指令的方式使ESP8266与Onenet云平台以MQTT协议连接,将实时心率数据、实时经纬度信息通过主控MCU打包成Json格式上传至Onenet平台中转。
2.2. 老人安全智能监护系统的软件设计
2.2.1. 基于STM32F103ZET6主控单片机程序设计
采用基于ARM 32位的STM32F103系列单片机做主控MCU,能出色的完成对各个模块的协调控制。首先对各个引脚和传感器进行初始化设置,并根据返回值判断传感器芯片是否正常工作。若都正常工作则进入whlie循环,不断更新合加速度的计算值、卫星实时经纬度信息、语音识别结果和心率值,然后判断心率值是否超过正常阈值以及语音识别结果是否为预期值,若是,则向GSM发起报警请求。本系统对摔倒行为的识别做了多重判断,即当超过合加速度阈值时,再进行对欧拉角阈值的判断。如果也满足超过欧拉角阈值时单片机便会使能蜂鸣器,发出声音警示,随即向GSM模块发起拨打电话的请求。软件的具体控制流程图如下图4所示。
2.2.2. 老人安全智能监护移动终端的开发
在Android开发环境Android Studio下实现老人安全智能监护移动端的开发,包括实时位置变化轨迹监测,实时心率变化显示两个功能。
实时位置变化轨迹监测功能的实现:接入百度公司的地图SDK后,手机端显示百度地图页面。在HTTP协议的支持下,通过get请求向Onenet云平台拉取本用户的运动轨迹信息。获取回调信息后,对信息进行Json解析后传入百度地图,开始依据信息在百度地图上添加点标记并根据点标记绘线。
实时心率变化显示的实现:客户端在切换到心率页面后,基于HTTP向Onenet云平台发起请求,拉取实时的心率数据,使用GSON解析库对数据进行解析,然后依据解析出的数据使用Echart进行绘图,实时显示使用者的心率变化状况。
两个功能模块的切换:为了方便用户切换页面,主程序页面添加了底部导航栏,点击底部导航栏的相应按钮,即可跳转到不同的功能页面。使用碎片(Fragment)编写两个功能模块,并在主程序加入View

Figure 4. Program flow chart of the elderly safety intelligent monitoring system
图4. 老人安全智能监护系统程序流程图
Pager和底部导航栏(Bottom Navigation View),当点击底部导航栏时,让View Pager加载对应的功能碎片,即可实现两个模块的切换。
3. 老人安全智能监护系统的整机测试与分析
1) GSM测试方案:
通过按键点击实现一键快速报警功能,并观察是否正常报警且通话功能是否良好。
2) 心率和摔倒监测测试方案:
测试不正常心率信号时采用SKX-2000G心电信号模拟仪。初始化整机,让心电模拟仪模拟出正常的心跳信号,观察本地和移动端心率读数是否与参考值相同且稳定。接着模拟出心率不齐的心跳信号,观察本地和移动端心率读数是否相应变化,同时观察本地端是否“报警”成功。接着初始化整机,让测试者模拟老人摔倒,即让测试者携带设备向垫子上倒去,观察蜂鸣器报警情况,同时观察紧急联系人电话是否已拨通。
3) GPS模块测试方案:
初始化整机,让测试者携带设备走动一段路程,观察移动端是否已在地图上绘制出相应活动曲线轨迹图,同时判断轨迹是否与参考轨迹对应。
经测试,该系统能够实时监测老人的心率和运动轨迹,并能够将实时数据显示在移动端。此外还能对老人摔倒行为做出判断,并立刻自动或者语音报警。系统工作良好,参考心率变化数值与位置变化在移动端的显示如下图5、图6所示。摔倒和呼救响应灵敏,没有存在漏报的情况出现,很好的满足系统要求。系统整体测试如图7所示。

Figure 6. Real time position change trajectory
图6. 实时位置变化轨迹图
4. 讨论
利用多传感器技术实现了集心率数据采集、防摔倒检测和GPS定位等功能的老人安全智能监护系统。当系统采集到一段时间内异常心率值或检测到摔倒时,将通过GSM自动拨号至老人监护人。系统通过增加一键拨号和语音识别等功能,以满足不同层次的老人应用需求,提高了智能设备对老人的友好性。借助云平台和Android开发了数据远程监测终端,通过查阅实时数据,及时掌握老人安全动态和运动轨迹,以满足家庭监护、早发现早采取措施的需求。该系统在系统集成度、语音识别的宽度和防摔倒检测准确率等方面还有待提高。
基金项目
浙江省高等教育“十三五”教学改革研究项目(jg20190138);国家级大学生创新训练项目(202110338020);浙江理工大学科创训练项目。