何向阳,刘彬
(攀枝花学院,四川攀枝花,617000)
游泳安全问题已困扰社会许久,虽然国内开展了很多游泳安全教育,但是由于该项运动的不确定性,游泳安全事件并未得到有效的控制。根据相关机构统计,我国每年约有7 万人因为溺水事件造成身体的不同损伤,甚至死亡,借助外部手段协助解决游泳安全问题已是大势所趋。游泳圈是最常见的游泳安全辅助工具,它可以在一定程度上对游泳人员起到防溺水保护的作用。传统的游泳圈存在着一定的局限性。同时,由于游泳运动的不确定性,身体痉挛等安全事故发生往往在毫秒之间,游泳圈并不能有效解决紧急情况下的安全问题。因此,游泳爱好者们需要一款携带更加方便、功能更为完善的游泳安全防护工具。
物联网技术通过信息传感设备实现智能化识别、定位、跟踪、监管等功能,它可以很好地解决生活中的很多问题,例如:智能家居、大棚温度控制等。基于物联网技术的智能化产品越来越受到人们的青睐,它可以让健身项目变得智能化和方便化,增强人们的体验感。全球物联网产品市场发展迅速,智能服务将会是物联网市场的重要发展方向之一。将物联网技术运用到游泳安全防护是目前很多程序开发人员的梦想,设计一套基于物联网技术的智能化游泳安全防护设备可以极大地提高游泳者的安全保障,进一步减少溺水事件的产生。
在物联网设计中为三个层次的设计,分别为应用层,网络层,感知层。应用层是系统与用户的接口,直接与用户接触,与需求本身产生联系,实现功能应用;网络层用于实现感知层数据和控制信息的双向传送、路由和控制,它处理下层传递的信息,判断是要送往云端的主机,或者直接采取适当的动作,包括无线电信网络技术、移动物联网技术、云端运算技术等;感知层由传感器和网关组成,主要的作用是识别物体,采集信息,包括无线射频技术、无线感测网络、嵌入式技术等。
本次设计的总体方案如图1 所示。
图1 系统总统设计方案
项目设计思维导图如图2 所示。
图2 项目设计思维导图
本次设计分为硬件和软件两方面。结合传统游泳圈的特点,对传统的游泳圈进行改进,增加定位、移动等功能,让游泳圈随着人体的移动自动跟随在一个安全距离之内。同时,配备智能手环,智能手环进行呼应,智能手环具有测试心跳新速、游泳距离统计、呼叫救生员、紧急情况下自动弹出安全气囊等功能。
硬件设计方面:游泳圈和手环均采用STM32 单片机最小系统为核心,其中,智能防溺水手环基于STM32F103ZET6开发版开发,利用Freertos 实时操作系统、ESP01S 模块、HC05 蓝牙模块、DTH11 温湿度模块、OLED 模块、超声波单发送模块、GSM短信模块、Max30102心率血氧模块等完成,使用USART 串口通讯,单总线通讯,I2C 通讯,MQTT 协议,手环能监测配戴者的心率血氧,判定是否溺水,能够自动发送警报,利用蓝牙模块与游泳圈进行通讯;自动跟随游泳圈基于STM32F103C8T6 开发版开发,利用超声波接收模块,和步进电机等完成。利用Usart 串口通讯、PWM,能够感知手环的距离,自动跟随,接受蓝牙的指令进行移动。
游泳圈内安装移动模块及定位模块,同时,采用JY02集成芯片做12~36V 的直流驱动器,采用15W 直流减速电机实现供电功能,采用超声波单收发模块,实现和智能手环之间的测距及游泳圈移动方向采集。智能手环移植FreeRTOS实时操作系统,采用OLED 液晶作为信息显示,采用超声波单收发模块,控制超声波的发送,采用ESP8266--WiFi 模块连接腾讯云平台,采用ATK1218-BD 芯片,支持BDS/GPS卫星导航系统的单系统定位,可实现定位功能。
软件实现方面:游泳圈和手环系统程序采用C 语言编程。以Keil μvision4 作为开发工具,游泳圈直接通过裸机控制各个模块,手环通过FreeRTOS 实时操作系统进行控制各个模块,实现设计的要求和功能。消息传输模块,使用ESP8266 连入网络,通过基于TCP 的MQTT 协议,利用腾讯云服务器,进行数据的上行和命令订阅,实现设备跟用户的双向通信。后台管理则使用VUE 框架对微信小程序端进行开发,使用MVC 框架对网页进行开发。
系统的控制方面采用STM32F103 最小系统,它采用ARM 最新的、先进架构的Cortex-M3 内核,实时性、功耗控制等方面性能优异。该最小系统包含了晶振、复位电路两个部分,控制整个系统工作。其中,STM32F1 的主控芯片工作频率达72MHz,具有SPI、I2C、AD、DA 等功能,且内置Flash。结合成本及性能两方面因素,安全游泳圈采用性能较弱的C8T6 为主控芯片,智能防溺水手环采用性能较强的Zet6 为主控芯片,利用最小系统对各个模块进行控制。
在裸机开发中,不可避免地会在主函数中写上一个复杂且巨大的While 循环,大多数任务会调用延时等待函数,当处理的任务较多时,系统将大量资源浪费在了延时函数,降低了CPU 的执行效率。此次设计中,防溺水手环功能较多,裸机开发实时性无法得到保证,已经不能满足设计需求。线程方式的并发任务处理,可以解决模块化问题,同时保证实时性。所以,综合考虑易用性、可扩展性等因素,在开发中,移植Freertos 实时操作系统,利用它抢占式调度,合作式调度和时间片调度等特性,用于任务与任务间的消息传递和同步,任务与中断间的消息传递和同步,从而达到拥有高质量的管理机制。
安全游泳圈的两端各安装一个单收超声波,手环安装一个单发的超声波模块。两个超声波模块的距离与他们与发送模块的距离就会组成三角形。设安全游泳圈左侧的超声波接收端和手环之间的距离为距离1,安全游泳圈左侧的超声波接收端和手环之间的距离为距离2,当距离1>大于距离2时,则智能防溺水手环必然在游泳圈的右边,控制游泳圈右转;当距离2>大于距离1 时,则智能防溺水手环必然在游泳圈的左边,控制游泳圈左转;游泳者前游时,距离必定大于设定距离,当手环与游泳圈的距离超过预设的值时控制游泳圈向前。控制好这几个距离即可实现游泳圈自动跟随。简单示意图如图3 所示。
图3 跟随模型示意图
游泳圈的动力设计中,采用控制电机转动。JY02 无刷电机驱动芯片通常使用电压调速,接入电压越高转速越快。考虑到游泳圈的转向问题,必须实现速度调节,所以,通过定时器使用调节PWM 波的形式对电机转速进行调节。
为了实现智能防溺水手环对游泳圈的控制,需建立二者之间的通讯。本次设计中,使用HC05 蓝牙模块进行通讯,利用最小系统的串口实现数据的收发,当游泳圈收到手环的指令时,作出相应的反应,实现控制的功能,包括控制游泳圈的移动和自动跟随,游泳圈也能通过HC05 将它的距离信息发送到手环。
智能手环必须将用户的位置信息发送,才能让救援者发现。考虑到对地理位置,通用性的考虑,本次设计使用ATK1218-BD 模块对用户的经纬度坐标进行采集,然后通过通讯与STM32 单片机进行通讯,并进行数据采集,管理员可在网页后台,利用百度地图api 和位置信息观测用户的位置,位置显示如图4 所示。
图4 位置显示如图所示
考虑到用户所处环境不同,本次设计中,手环设计三种警报发送模式,并能同时发送。第一种是通过控制蜂鸣器发声,直接向周围人发出警报,这种方式较多适用于游泳馆或周围人流量比较大的游泳环境中;第二种是通过GSM 模块和SIM 卡,发送短信至救援机构,这种方式适用于游泳者野泳,周围人烟稀少,没人提供救援服务;第三种是通过ESP8266WiFi 模块,将警报信息采集至服务器,管理员在看到求救信息后,进行救援,这种情况适用于游泳馆。用户只要按下报警按钮,可将三种警报全部发送,警报发送方案示意图如图5 所示。
图5 警报发送方案示意图
本次设计中,利用MAX30102 血氧模块、温度湿度传感器DHT11 模块,对用户的心率,血氧,环境温湿度进行综合判断,当达到阈值时,则会判定用户溺水,游泳圈将会自动发出警报。MAX30102 模块是一个集成的脉搏血氧仪和心率监测仪生物传感器的模块。它集成了一个红光 LED 和一个红外光 LED、光电检测器、光器件,以及带环境光抑制的低噪声电子电路,通过STM32 的I2C 接口与模块进行通讯,得到光强度值,最后需要通过相应的处理算法计算出心率值和血氧浓度值。DHT11 是一款有已校准数字信号输出的温湿度传感器,它传输数据的方式是单总线协议,次通讯时间4ms 左右,数据分小数部分和整数部分。
后台管理分为微信小程序设计和网页端设计两个方面,微信小程序采用Vue 框架开发,该框架是一款用于构建用户界面,技术成熟且被广泛使用的JavaScript 框架之一,开发者可以利用此框架高效地开发用户界面。在本项目中,微信小程序端也是用户端,在微信小程序端中,用户输入设备号与设备进行绑定,页面会捕获到设备的上行数据,如游泳者的位置信息、心跳数据、游泳距离,以及游泳时间数据等等,然后显示到页面之中,用户不仅能够看到实时数据,而且还能对设备进行远程控制,以及呼救。在微信小程序端,不仅能够对设备进行管理,也可以对此账号信息进行管理,进行更改密码和更换设备等一系列操作。微信小程序主界面如图6 所示。
图6 微信小程序主界面
网页端采用MVC 框架开发,系统会将所有设备上行的数据全部采集和统计并显示到页面中,具体包含用户信息管理、设备数据统计、警报信息管理三个模块。用户信息管理模块可以对用户信息进行添加、修改、查询、删除、设备绑定更改等操作;设备数据统计模块可以对统计用户的身体状况、位置、环境温湿度等数据;警报信息管理模块可以采集用户发出的警报信息及警报处理信息,方便机构监控游泳者的状态,对用户的警报信息及设备采集到的数据,判断用户身体异常状况,提供和发送用户的具体位置给相关施救人员。网页端主界面如图7 所示。
图7 网页端主界面
本项目结合目前市面上游泳救生工具的特点,针对其功能与使用条件均较单一,不便携带,无法更好地保证人身安全等问题,采用“防溺水手环+跟随游泳圈”的方式保护游泳爱好者的生命安全,减少游泳者在溺水情况下的安全隐患。具体创新点如下。
(1)智能手环上设有心率、压力自动感应,能自动判断使用者的身体情况以及周边水压来自动判断是否安全,有利于使用者安全的保障,防止慌乱中无法启动装置。
(2)手环上设有报警求救功能,可以手动和自动发出求救信息,同时,手环还可配套设计浮力充气球,方便人员紧急情况下自救。
(3)泳圈上设有感应装置,智能感应人体位置,实现和游泳者保持安全距离跟随,不影响游泳者游泳且能智能跟随。当人体与游泳圈距离超过安全距离(80~95cm)时,泳圈自动跟随;当人体与泳圈距离在安全距离内,泳圈保持不动。
(4)系统设计有各种统计功能,可以检测游泳者的各类指标数据,方便统计。
随着物联网技术的日趋成熟,基于物联网技术的各类产品正潜移默化地改变着我们的工作、生活和娱乐方式。本文利用物联网技术、微信小程序开发技术等设计了一套智能游泳安全防护装备,其产品制造成本低、环保、安全性高,是对当前游泳防护装备的升级改造,可以很好地保护游泳者的安全。