付学伟
(云南民族大学体育学院 云南昆明 650000)
运动员速度与心率远程监测系统,能够在运动场地实时检测出运动员的心率及速度相关数据,帮助教练员及医生等随时随地观察运动员的运动状态参数,为运动员的科学训练、课程安排等提供了非常有效的实时参考数据[1]。该系统通过Arduino中控板对感知层各种传感器数据进行检测、采集,再通过串口通信技术、WiFi无线通信技术将数据发送至云平台,云平台会对相关数据进行识别、筛选、整合,并将数据在APP、Web端进行实时显示。管理人员可以通过Web端、APP实时查看运动员的相应状态参数。
速度与心率远程监测系统不受时间、地点等限制,针对训练员、医生、校园体能等各种场景都可运用。同时数据的实时监测与传输对运动员的一些心率突发情况可以起到有效的危险防范作用,避免一些不必要的安全事故的发生。
基于“Arduino+Web+APP”的速度与心率远程监控系统,主要是用来实现对运动状态参数检测、采集,并且满足相关管理者通过Web端与APP端对远程数据实时查看与控制的功能。
1.1.1 感知层
该层是基于Arduino+Web+APP的速度与心率远程监控系统的最底层部分,也是核心部分。该层负责采集物体之间的数据。该系统通过单片机驱动相关传感器来采集心率、速度等运动状态变量。
1.1.2 网络层
该层通过有线或者无线的网络对感知层采集的数据进行编码、识别、传输。该系统首先将采集到的数据通过串口通信由Arduino向WiFi模块发送,接下来是WiFi模块将数据发送到云平台,云平台通过封装好的数据处理接口对数据进行识别、整合,然后发送至远端Web与APP进行数据的实时显示与监测。
1.1.3 应用层
该层是速度与心率远程监控系统的最顶层,提供了丰富的应用解决方案和物联网应用接口。即在云平台将接收到的数据发送到远端Web与APP时,相关用户可以通过Web端与APP去实时查看相应数据,监管相应的传感器设备。
基于Arduino+Web的速度与心率远程监控系统,主要用于对运动状态参数的检测,以及相关管理者对于这些数据的监控与对相应设备的控制管理[2]。ZigBee+Web+APP结构的速度与心率远程监控系统以Arduino为中央控制板,结合WiFi通信、串口通信实现数据的传递和交互,然后数据会传输到云平台,经过处理后发送至Web端与APP端,用于让相关管理者对数据进行检测[3]。
该文涉及的ZigBee+Web+APP的速度与心率远程监控系统首先是对运动状态参数的检测,包括心率、速度等。片上系统首先是对数据进行检测与采集,然后对数据进行判断,发送相应的数据包到Web[4,5]。
心率检测具体流程如图1所示。速度检测具体流程如图2所示。WiFi模块数据传输具体流程图如图3所示。
图1 心率监测模块系统图
图2 速度监测模块系统图
图3 WiFi模块系统图
系统整体包括数据的采集、数据的传输、数据的显示三大部分:通过心率传感器与测距模块进行数据的采集;通过WiFi模块进行数据的远程无线传输;通过Web端与APP端进行数据的显示。
具体的功能流程如下。首先单片机驱动板上搭载的心率采集模块对心率进行采集,同时驱动测距模块对距离进行检测,并通过内部的时间统计函数计算出速度,完成数据的采集功能。然后单片机将心率数据、速度数据通过板上的通信串口发送至ESP8266WiFi模块,再对WiFi模块的工作模式与数据发送方式进行配置与指令的写入,通过ESP8266WiFi模块将数据发送至云平台,完成数据的无线远程发送。云平台接收到数据后,对数据进行整合与处理,然后实时在Web与APP界面进行显示,并生成日志,便于用户查看,完成数据的显示功能。
2.2.1 中控板简介
系统采用Arduino单片机作为中央控制板,该开发板的部分数字引脚支持PWM波的输出,也便于对模块进行各种占空比的控制。同时具有丰富的第三方库,只需要在IDE中添加相应模块的库,就可以调用库中的函数驱动各种模块进行工作[6]。
2.2.2 电路原理图设计
Arduino单片机具有数字引脚与模拟引脚两种输入输出类型,其中数字引脚D2、D3用于驱动红外对管模块对速度数据进行采集;TXD、RXD引脚是模块的串口通信引脚,分别与ESP8266的数据接收、发送引脚连接,用于数据的远程收发功能;A4、A5是单片机的模拟引脚,与心率采集传感器模拟输出引脚连接,用于接收模块采集的心率数据。
2.3.1 模块简介
系统采用MAX30102心率检测模块实现对用户的心率采集功能。该模块相较于其他模块,稳定性高,内置有转换电路,可以直接读取引脚上的心率数据。
2.3.2 电路原理图设计
该模块有7个引脚,系统用到其中的4个。其中GND、VIN引脚与开发板的GND、3.3V连接,用于提供模块正常工作的电压。SDA是模块的数据信号输出引脚,与单片机的A4连接,通过读取该引脚输出的模拟电压,再通过单片机内部的ADC转换,得到心率的采集数据。SCL是模块的时钟信号引脚,用于和单片机保持同步的数据传输频率,与单片机的A5引脚连接。
2.4.1 模块简介
系统使用红外对管模块用于对运动相关数据进行采集,该模块具有一对红外发射与接收管,工作时,发射管会发射出一定频率的红外线,当运动员经过时,红外线会被反射回来并由接收管接收,从而实现对运动员运动参数的采集。
2.4.2 电路原理图分析
系统使用2个红外发射模块对速度数据进行检测,2个模块之间距离固定,当运动员通过时,模块会发送低电平,通过2个低电平之间的时间差,计算出运动的速度数据。该模块有3个引脚,其中1号、3号引脚与开发板的5V、GND连接,提供模块工作需要的电压;2号引脚是模块的信号触发引脚,分别与单片机的数字引脚D2、D3连接,当运动员通过时,单片机读取到低电平“0”,但没有运动员通过时,读取到高电平“1”。
2.5.1 模块简介
系统使用OLED显示模块对心率、速度数据进行显示。OLED模块采用OLED自发光技术,当电流通过时,有机材料就会发光,可以显示汉字、ASCLL码、图案等。
2.5.2 电路原理图设计
系统使用OLED模块对相应数据进行显示。模块具有4个引脚,其中VCC、GND与开发板的供电引脚相连,为模块提供正常的工作电压。SCL是模块的时钟线引脚,与单片机的A5引脚连接,用于控制模块与开发板的时钟频率。SDA为模块数据线,与单片机的A4引脚相连,用于接收模块发送的显示数据。
2.6.1 模块简介
速度与心率远程监控系统采用WiFi模块进行数据的传输交互,用于物联网传输层。该系统采用有人-WiFi模块,该型号模块掉电后数据并不会丢失,不需要像其他模块一样每次掉电重启后需要再次通过单片机烧写启动程序。
2.6.2 电路原理图设计
该模块有8个引脚。其中1号、5号是模块的工作电压提供引脚,与开发板的3.3V、GND连接。4号引脚是模块的串行数据发送引脚,与开发板的数据接收串口引脚RXD连接,8号引脚是模块的串行数据接收引脚,与开发板的数据发送串口引脚TXD连接。开发板首先通过8号引脚将配置指令写入到WiFi模块中,设置为AP模式,设置模块的端口号、名称、密码等参数。再将采集到的数据通过串口通信发送到WiFi模块,再由WiFi模块将数据发送至云平台进行处理。
云平台的创建与接入流程如下。首先在贝壳物联进行账号的注册、登录,确定系统的产品名称,以及对速度及心率数据的格式、范围的设定,并选择采用WiFi+MCU的物联网解决方案。然后获取云平台为系统生成的APIKey,点击生成代码,获取该系统的封装代码包[7]。再将代码包添加到Arduino库中,在系统的程序设计中添加云平台联网的工程代码及速度、心率数据接收与发送的工程代码。最后将平台为该系统生成的唯一产品ID烧写到WiFi模块中,对系统上电联网后,就可以实现系统对云平台的接入。
首先是对系统整体功能的测试,包括系统硬件端的外设电路、电源电路等的焊接,测试结果正常,接触良好,并且能够给单片机与各个外设模块稳定供电。
其次是对心率与速度数据的采集与OLED显示功能的测试,系统会实时对心率与速度数据进行检测与采集,并将数据发送到OLED液晶显示进行实时的显示,测试结果正常。
再次是Web端对心率与速度数据的显示功能的测试,该功能以折线图的形式对速度、心率进行实时的显示,供管理者对数据进行查看,测试结果正常。
最后是APP端对数据的显示功能,APP端具有数字显示与历史数据折线图显示2种功能,通过页面上的功能按钮进行切换,测试结果正常。
在测试过程中,该文对基于ZigBee+Web+APP的速度与心率远程监控系统的感知层、传输层、应用层三部分进行测试。在测试过程中遇到的问题主要有以下2个。
第一是硬件端的实现,Arduino单片机驱动各个传感器。对于这个问题,查阅相关资料,阅读相似代码,反复地编写代码尝试,记录、比较每次驱动的结果,最终解决问题,成功驱动各个传感器模块。
第二是数据交互的实现与否。该系统涉及多次的数据交互:Arduino开发板与串口的数据交互、串口与WiFi模块的数据交互、WiFi模块与云平台的数据交互。这三层数据交互在系统制作过程中都出现过或大或小的问题。通过反复的代码修改,硬件调试,将测试结果显示在串口助手进行比较,记录每一次的测试结果,反复调试,最终解决了三层数据交互遇到的问题。
此次设计的基于Arduino+Web+APP的速度与心率远程监控系统虽然已经实现了一部分智能心率、速度远程监测的功能,但这仅仅只是完整功能的一部分,未来可以继续去完善此次设计的基于Arduino+Web+APP的速度与心率远程监控系统,如可以增加对周遭环境的检测、远程通话功能等,这些都是可以加入到速度与心率远程监控系统的,同时为了更方便,还可设计一款手机APP供相关人员进行使用。
但是整体来说,与一个成熟完整的速度与心率远程监控系统相比,功能还是略显单一,在后续工作中,会不断完善现有的功能,使其安全性、稳定性得到提高。同时通过后续的学习与思考,并结合如今较为流行的人工智能,为速度与心率远程监控系统增添新的功能。在软件端,对于Web的功能设计,以及功能的丰富性、稳定性也有着很大的提升空间。