2. 中国科学技术大学, 合肥 230026
2. University of Science and Technology of China, Hefei 230026, China
随着生活方式的转变和城市户外空气环境的恶化, 室内健身运动逐渐成为人们首选的体育锻炼活动. 室内健身车是一种室内有氧健身器材, 通过调节踏板阻力, 使用户以恒定功率保持运动. 相较于跑步机等其他室内健身设备, 具有简单实用, 安全性高, 对锻炼者关节损伤较少等优点.
课题组前期研发设计了智能化健身功率车[1,2](以下简称健身车), 用于国民体质健康评价的心肺功能评估测试环节[3], 具有体检、健身、娱乐等功能. 因为上位机使用USB串口连接和Windows系统下的MFC设计, 健身车必须配备上位机, 导致成本较高, 系统通用性较差, 用户体验不佳.
基于上述考虑, 本文设计实现了基于无线局域网通信的健身车Android客户端. 无线局域网内通信一方面可以保证通信的准确率和速度[4], 另一方面可以增强健身车的通用性. Android系统因其开放性高, 市场份额巨大[5], 相较于Windows系统, 在手机等便捷操作系统上使用率更高. 使用Android系统和无线局域网内通信, 降低了健身车成本, 扩大了健身车的使用范围, 为用户带来更良好的健身车使用体验. 通过使用本客户端, 用户可以有效降低运动风险, 提升运动效果, 从而实现安全科学健身.
本文的组织结构为: 第1节介绍本文的技术基础, 第2节介绍系统架构和使用流程, 第3节介绍客户端的具体实现, 第4节总结本文.
1 技术基础本客户端使用Android系统, 通过无线局域网内TCP协议与健身车进行长时通信. Android系统是Google公司开发的智能手机平台, 具有开放性, 易开发, 易复用, 方便快速等优点[6]. 其拥有的巨大市场份额及通用性, 可以有效提高健身车的使用范围, 做到方便, 快捷地使用智能健身车设备[7], 完成高适配性, 高通用性, 高兼容性的健身车移动客户端.
常用的设备直连上位机通信的方式有三种: 串口有线通信, 蓝牙通信和WiFi通信. 串口通信具有传输速度快, 通信稳定等优点, 但是扩展性不佳, 设备必须自行配有上位机, 成本较高, 对于健身房, 体检站适用性较好, 但是对于个人用户体验不友好. 蓝牙通信具有低成本, 低功耗, 移植性强等优点[8], 由于目前大部分厂商普遍使用蓝牙, 部分蓝牙协议栈(如Android蓝牙协议栈)并发连接数较少, 导致使用蓝牙通信具有局限性. WiFi通信具有传输速度快, 应用范围广, 对并发连接数限制不明显等优点, 可以有效提高健身车的通用性, 扩展健身车的使用范围. 本系统最终使用WiFi通信作为与健身车的主要通信方式, 并使用蓝牙连接适配蓝牙心率手表等其他辅助性设备.
本系统使用课题组前期研发的智能化健身功率车[1], 如图1所示. 该健身车通过扩展WiFi模块, 增加无线局域网通信协议, 实现无线局域网通信; 通过使用电阻应变式称重传感器和电阻式拉绳位移传感器, 测量实时运动时的脚踏压力和轮转速度, 计算用户实时功率, 并根据实时功率调节输出负载和发电机励磁电流, 达到实时调整运动阻力, 保持用户恒功率运动[9,10]; 通过手握式心率测量仪器, 测量用户实时心率, 经由WiFi模块, 将实时的运动速度, 运动功率和心率上传至上位机, 供上位机进行数据分析.
![]() |
图 1 健身车 |
2 系统设计 2.1 系统架构
本系统主要由健身车, 移动客户端和云服务器组成. 如图2所示.
健身车负责保持运动阻力恒定, 采集和上传用户健身数据至移动客户端; 云服务器负责处理用户登录, 保存用户健身数据, 生成运动处方; 移动客户端分为通信模块, 运动模块, 测试模块, 历史数据模块和个人设置模块, 通信模块主要负责健身车初始化, 健身车连接, 指令发送, 数据接收和解析, 并将数据提交至运动模块; 测试模块为心肺耐力测试, 运动模块主要包括处方训练和自由训练, 通过展示健身车数据, 形成实时图像, 为用户提供数据分析功能, 并在运动结束后, 向云服务器提交运动数据; 历史数据模块负责展示历史运动数据; 个人模块主要包括用户登录, 个人信息维护等功能.
2.2 使用流程具体使用流程如图3所示.
用户首先需要注册账号, 提供静息心率, 体重, 身高, 年龄等数据. 在注册并登录进入系统后, 用户需要输入本地无线局域网密码, 初始化健身车, 使健身车保持与自己在同一无线局域网内. 初始化健身车后, 用户可以开始进行心肺功能评估, 获取心肺功能报告. 根据心肺功能情况和个人信息, 云服务器会生成符合用户身体状况的处方训练计划, 用户可以通过完成计划, 实现健身目标.
![]() |
图 2 客户端系统架构 |
3 系统实现 3.1 通信模块
本客户端使用局域网内TCP连接与健身车进行通信. 为了与健身车保持在同一局域网下, 客户端首先需要对健身车进行初始化. 客户端在用户输入本地WiFi网络密码后, 连接健身车网卡模块生成的无线网络, 通过TCP通信发送本地WiFi网络SSID和密码至健身车. 健身车获取到密码后, 自动连接本地WiFi网络, 完成初始化.
算法1. 健身车初始化
1) // 获取本地WiFi网络SSID
String SSID = getSSID();
2) // 如果未联网, 提示用户先进行联网
if (SSID == null) {
Toast.makeText(s_context, "请连接本地WiFi网络", Toast.LENGTH_SHORT).show();
return;}
3) // 等待用户输入密码和健身车唯一标识, 避免多辆健身车混淆
String pwd = Listen(PwdEditText);
String UUID = Listen(UUIDEditText);
4) // 连接健身车默认热点
LinkWiFi(CYCLE_WIFI);
// 连接健身车默认IP
LinkTCP(CYCLE_DEFAULT_IP);
5) // 发送本地WiFi网络SSID和密码, 健身车通过其可以连接上本地局域网
sendMsg(SSID, pwd);
6) // 健身车接受SSID和密码成功后, 会返回mac, 客户端根据返回的mac地址判断是否已经初始化成功
String mac = readByTcp();
![]() |
图 3 客户端使用流程图 |
当已经初始化完成后, 客户端会将健身车网卡mac地址和IP保存在数据库, 当用户第二次打开客户端时, 会自动向该IP发送连接请求. 如果IP地址更换或第一次连接, 客户端会广播一条UDP信息, 查找健身车. 健身车在收到该信息后, 返回IP地址.
算法2. 健身车通信连接
1) // 获取本地WiFi网络SSID
String SSID = getSSID();
2)// 如果不是初始化时所用WiFi网络, 提示用户先进入该本地WiFi网络
if (!SSID.equals(USER_SSID)) {
Toast.makeText(s_context, "请连接初始化时WiFi网络或重新初始化", Toast.LENGTH_SHORT).show();
return;}
3)// 从数据库中读取上次连接时IP
String IP = getIPForDB(UUID);
4)// 如果IP为空, 表示是初始化后第一次连接, 发送UDP广播获取IP
if (IP == null) {
// 发送健身车唯一标识的UDP广播
sendUDP(UUID);
5)// 健身车接收到含有自身唯一标识的UDP广播后会回复自身IP地址
IP = readByUDP();
6)// 客户端收到IP地址后, 返回确认收到码
sendUDP(GET_IP_STRING);
7)// 保存IP地址到数据库
saveIPToDB(UUID);}
8)// 连接该IP, 完成通信
LinkTCP(IP);
当客户端需要与健身车进行通信时, 按照协议规定向健身车发送命令, 健身车传感器开始工作, 定时测量用户运动数据, 并发送给客户端. 当运动结束后, 客户端需要发送一条结束命令, 结束运动, 健身车传感器停止工作. 协议如表1所示, $为开始结束符.
![]() |
表 1 部分健身车通信协议 |
3.2 测试模块
为了保证用户的运动负荷在用户身体可承受范围内, 用户与健身车完成连接后, 需要进行心肺功能评估测试, 如图4所示.
健身车使用二级间歇式心肺耐力测试, 在两种功率强度下运动三分钟, 中间休息三分钟. 根据测试者平均心率情况, 获取最大功率和最大摄氧量, 用以评估测试者心肺耐力情况[11,12], 具体公式如公式(1), 公式(2):
${P_{\max }} = \frac{{\left[ {\left( {H{R_2} - H{R_1}} \right)*H{R_{\max }} + H{R_1}*{P_2} - H{R_2}*{P_1}} \right]}}{{{P_1} - {P_2}}}$ | (1) |
$VO{2_{\max }} = 7.0 + 1.8*\frac{{{P_{\max }}}}{{weight}}$ | (2) |
![]() |
图 4 心肺耐力测试实现界面 |
Pmax为最大功率, VO2max为最大摄氧量, weight为用户体重, HR1和HR2分别表示测试者每级测试30 s后平均心率值, P1和P2分别表示两级负荷功率值.
为了保证测试的准确性, 降低用户运动风险, 客户端在测试中和测试完成后, 会根据测试者运动情况判断用户此次的运动过程是否存在安全风险, 运动结果是否符合测试标准, 具体标准如表2.
![]() |
表 2 心肺耐力测试异常情况 |
当用户存在安全风险时, 立即提示用户结束运动, 并告知风险. 当存在测试失败等情况下, 会提示用户测试失败, 用户可以重新开始测试. 测试成功后, 客户端会根据用户最大摄氧量, 年龄, 性别等信息, 判断用户的基本心肺耐力情况, 为用户评分, 并将运动结果上传云服务器. 云服务器根据测试结果, 选择适合用户运动强度的处方计划并下发. 用户使用处方计划进行运动, 可以在达到健身目的情况下, 最大限度地减少运动风险, 实现安全健身.
3.3 运动模块运动模块主要分为处方计划运动和自由运动.
处方计划运动是用户在进行完心肺耐力测试后, 云服务器根据用户心肺耐力评估情况下发的运动处方. 该处方规定了用户每周运动次数及每次运动时间, 并根据用户实时运动状况调整运动强度, 为用户提供合理健康的运动计划. 使用该处方计划, 可以有效保证用户的健身强度, 提高用户的身体素质, 降低用户运动风险, 实现科学健身.
自由运动用于用户体验使用. 用户可以自由选定功率大小和运动时间, 进行锻炼.
3.4 个人设置模块和历史模块为了降低用户运动风险, 用户在运动前需要注册, 提供年龄, 体重, 身高, 静态心率等信息. 用户可以使用健身车自带的握式心率测量传感器, 也可使用蓝牙心率手表等心率测量仪器, 完成静态心率测量.
用户在登录后, 可以上传个人健身数据至云服务器, 并可以通过历史模块查看历史运动状况. 客户端其他界面如图5所示.
![]() |
图 5 客户端其他实现界面 |
4 结语
本文设计并实现了健身车移动客户端, 解决了现有智能健身车成本较高, 通用性不佳的问题. 该客户端通过使用无线局域网通信, 增强了健身车使用通用性; 通过使用智能手机或平板电脑操控健身车, 使得健身车不用单独配备上位机, 成本降低了约40%. 随着无线局域网和个人手机的普及, 该方法的应用方向将日益广泛.
未来工作中, 将致力于完善并开放无线局域网通信协议, 吸引更多类别的智能健身设备接入到该系统. 同时将该客户端接入智能化健康促进服务系统, 纳入国民体质监测云平台[13], 作为科学训练处方的一部分.
[1] |
赵英俊. 新型功率车的恒功率控制系统研究[硕士学位论文]. 合肥: 中国科学技术大学, 2016.
|
[2] |
张茹斌, 占礼葵, 彭伟, 等. 心肺功能评估训练系统的恒功率. 吉林大学学报(工学版): 1–7 [2018–01–09].
|
[3] |
美国运动医学学会. ACSM运动测试与运动处方指南. 王正珍, 罗曦娟, 译. 9版. 北京: 北京体育大学出版社. 2014.
|
[4] |
马季. 智能家居远程监控系统的研究与实现[硕士学位论文]. 青岛: 中国海洋大学, 2009.
|
[5] |
Butler M. Android: Changing the mobile landscape. IEEE Pervasive Computing, 2011, 10(1): 4-7. DOI:10.1109/MPRV.2011.1 |
[6] |
曾健平, 邵艳洁. Android系统架构及应用程序开发研究. 微计算机信息, 2011, 27(9): 1-3. DOI:10.3969/j.issn.2095-6835.2011.09.001 |
[7] |
王朝华, 陈德艳, 黄国宏, 等. 基于Android的智能家居系统的研究与实现. 计算机技术与发展, 2012, 22(6): 225-228, 233. DOI:10.3969/j.issn.1673-629X.2012.06.058 |
[8] |
钱志鸿, 刘丹. 蓝牙技术数据传输综述. 通信学报, 2012, 33(4): 143-151. DOI:10.3969/j.issn.1000-436X.2012.04.020 |
[9] |
Vandewalle H, Driss T. Friction-loaded cycle ergometers: Past, present and future. Cogent Engineering, 2015, 2(1): 1029237. |
[10] |
Casaburi R, Porszasz J. Constant work rate exercise testing: A tricky measure of exercise tolerance. COPD: Journal of Chronic Obstructive Pulmonary Disease, 2009, 6(5): 317-319. DOI:10.1080/15412550903240152 |
[11] |
Golding LA, Myers CR, Sinning WE. Y’s Way to Physical Fitness: The Complete Guide to Fitness Testing and Instruction. Champaign: Human Kinetics Publishers, 1989. |
[12] |
Beekley MD, Brechue WF, Dehoyos DV, et al. Cross-validation of the YMCA submaximal cycle ergometer test to predict VO2max. Research Quarterly for Exercise and Sport, 2004, 75(3): 337-342. DOI:10.1080/02701367.2004.10609165 |
[13] |
赵赫. 面向慢性病运动干预的智能化健康促进服务系统[博士学位论文]. 合肥: 中国科学技术大学, 2016.
|