APP下载

便携式泳池防溺水警报与生理健康状态评估系统设计

2023-03-22谢江娜刘利秋赵佳琳等

电子产品世界 2023年3期

谢江娜 刘利秋 赵佳琳等

关键词:单片机系统;ZigBee通信;生理健康状态评估;支持向量机算法

据国际救生协会统计,每年全球约有120 万人因游泳而溺亡,大部分溺水者其实是熟练的游泳者,因为在游泳的过程中大多会产生抽筋和运动性休克的身体问题。与其他休闲运动项目比较,溺水身亡的背后,是安全防护的缺失。目前的防护手段主要是依靠救生员和泳池管理员的实时监测,耗费人力物力,且对专注力要求极高。因此设计一款能够智能反馈游泳者游泳状态及生理健康水平的系统,非常具有现实意义。

本文的设计是基于单片机和传感器、无线通讯技术的智能泳池防溺水警报器及生理健康状态评估系统。

选取单片机为核心控制器,采用水压传感电路实现入水深度的检测,生理参数检测模块测量游泳者的生理参数,无线发送模块实现将身份标签信息与上位机传输,PC 端通过算法进行定位和健康状态评估。

1 系统总体方案设计系统

主要由上位机和下位机组成。游泳者下位机采用单片机系统、水位监测系统、ZigBee 通信系统、定位系统、JFH111生理参数检测传感器模块和报警系统实时监控游泳者安全和监测生理参数。定位基站实时监控游泳者的位置,实现缩小营救范围,加快营救速度。上位机接收通信模块传来的信息包括游泳者的身份ID,水压信息和失联情况。具体原理是:采用水压传感器来判断游泳者的深度,并配有进入危险区的警告灯光和振动报警。在游泳者的头沉入水后,根据水压传感器探测到的数据,可以判定出游泳人的深度,如果超出了警告值,就会发出光闪振动的警告信号。一旦暂时失联者的脑袋浮出海面,系统就可以继续收发身份ID 信号。当游泳者一直在水下时,上位机没有接收到对应的ID,那么就会一直计时。利用该方法可以获得游泳者的头部入水的时长,从而判定者有无溺水。从游泳者在不同时期的生理状况来看,短暂的失去联系是指泳者的头沉在水里30 s,如果超过了30 s 就会失去联系。同时上位机将接收来的生理参数信息通过SVM 算法得出游泳者生理健康水平,根据心率、血氧饱和度和血压3 个生理参数,构建6 个支持向量机。最后分为身体状况良好、轻微失衡和严重失衡,失衡时做出提醒和警示。系统结构如图所示。

2 硬件电路设计

2.1 单片机最小系统

单片机作为系统的控制核心,需要控制整个系统的运行情况,所以本设计经过比较最终选择单片机的型号为STC12C5A60S2。虽然也属于51 单片机一类,但比普通的单片机运行速度更快,速度约为之前的8~12倍。另外还具有独立的串行接口和独立的波特率发生器。其具有的参数均可以满足本设计的需求。单片机设计部分如图3所示。

2.2 水压检测模块

HX711 型微处理器的重量AD 模组,是一款高达24 位的A/D 变换芯片HX711,它是一款高精密的数字称量系统。该输入线路可以被构造成能够为诸如压力、称重之类的桥接电桥型传感器的结构,是一种精度高、成本低的理想的采样头组件。本模块设计中,为方便试验防止设备接触水,使用HX711代替水压传感器。用给称重块施加压力模拟设备入水的场景。本设计选用的量程为5 kg。实物图如下。

2.3 通信模块

无线模块选择zigbee 模块,具体型号为DL-20。本设计采用一对多的方式进行连接,用3 台下位机模拟3 个泳者,编号分别为1、2、3。采用DL-20的方式来进行全双向的数据传输,具有较宽的频带、较宽的波特率和较好的收发器,并且价格比较便宜,可以用于串行的调试。

通过连接到无线通讯模块和单片机的MCU,DL-20接收到来自于下位机的无线信息,从而实现了对下位机的全部识别。上位机判断是否有人落水和开始计时的依据是下位机即泳者头部是否入水和入水时间,同时将检测到的生理参数发送到上位机。3台下位机向上位机发送的标签是不同的。1到3号机分别发送“1”“2”和“3”,如下图所示。

2.4 JFH111生理参数检测模块

JFH111 生理参数检测单元依据PPG光电容积脉搏波描记法、非贯穿式血压测量方法中的模糊记忆方式作为基础原理,可提供准确的脉搏波形、心脏跳动速率、血氧饱和度以及血压数据。用户系统只需通过串口即可和模块通信,并且直接获得测量结果,一定程度上降低了人体运动状态下多项生理参数异常监测报警系统的复杂程度。JFH111生理参数检测模块电路原理及显示效果如下图所示。

3 软件设计

3.1 主程序软件设计

主程序通过对其他子程序的调用实现了设计功能,实现了对游泳者的头部没入水中时间计时、识别游泳者的实时状态、实现溺水预警或报警、显示游泳者的状态以及向救生员发送救援信号。其中系统初始化包括了定时器0 和定时器1 的初始化,设置了定时器中断的时间和串口通信波特率,还有STC12C5A60S2 的双串口的初始化。主程序的流程图如图8所示。

3.2 状态识别程序设计

游泳者的状态根据游泳者的头部没入水中时间来判断,头部没入水中时间超过30 s 的判定为暂时失联,超过50 s 的判定为超时失联。游泳者头部没入水中时间通过定时器中断次数来确定,定时器0 设置为50 ms 定时中断一次,将每个游泳者对应的定时中断次数存放在1个数组中,每个游泳者对应的定时器中断次数为数组中的一个元素,当接收到身份标签時,将数组中对应的定时中断次数清零,比如接收到身份标签“1”,就将数组中第一个元素清零。头部露出水面的游泳者所携带的下位机会一直向本设计发送身份标签,所以中断次数总是被清零。当某位游泳者的定时中断次数达到600 次,判定该游泳者为暂时失联,当某位游泳者的定时中断次数达到1 000 次,判定该游泳者为超时失联。

3.3 健康状态评估数据分析程序设计

支持向量机(SVM)是一类按监督学习方式对数据进行二元分类的广义线性分类器,其决策边界是对学习样本求解的最大边距超平面,在标准样本存在且覆盖较广的情况下,通过较少的测试样本即可达到对样本二分判断的目的。利用MATLAB 结合SVM 编写数据处理程序,本系统涉及3 个参数的综合评估,且血压数据分为高压与低压两类,出于分别对数据进行两两比对的需要,程序中构建6 个支持向量机,进行心率数据、血氧数据、高压数据以及低压数据的分别比对,最终根据比对结果与标准数据库计算出的结果,综合判断健康状态,最后用LabVIEW 构建评估界面。支持向量机分类原理概述图如图9 所示,评估界面示例如图10所示。

3.4 手机APP设计

App Inventor是一个完全在线开发的Android编程环境,抛弃复杂的程序代码而使用积木式的堆叠法来完成Android 程式。通过自己下载Wi-Fi 插件,模块化堆积编程,制作出一款在同一局域网下可以接收显示消息的App,通过设计,可在手机APP上直接查看游泳者的身份ID、所处水深及生理参数。组件设计如图11所示,逻辑设计如图12所示。

4 结束语

智能化时代的来临促进了智能化安全系统的发展,本设计含有智能泳池防溺水监控系统、生理健康状态评估和定位基站三者,他们密切联系,综合并创新创造一款智能泳池防溺水监控及生理参数监测系统。此系统能及时查看游泳者生理健康状态,并对超水压游泳者提出警报,快速发出监控人员对溺水者做出援救的信号的装置,能大大降低因为游泳而带来的隐患。还可以结合生理健康状态数据制订或及时调整运动训练方案和策略,不断提高人们的身体素质,增强专业运动员的身体机能和竞技水平,让更多的青年人放心游泳、喜欢游泳。