7.5 系统总体调试
本节将从普通用户的角度入手介绍,力求能够让用户理解自己的产品,并且能够充分使用它的全部功能。整体运行流程如下:
1)开机:在开机的这一段时间里,系统会为用户做完一系列的准备工作,这些工作主要有:向服务器请求反向代理的端口(记为A 端口)、得到反向代理端口之后建立SSH 反向代理同时监控树莓派的网络状态,一旦发现网络重连就重新申请端口建立连接、建立命令解析服务器,负责接收用户从手机上发过来的命令以及执行相应的动作,接下来就进行传感器的初始化等一系列工作。
2)用户手指触摸一段时间的MAX30102:在这个过程中系统会进行心率的测量以及体温的测量,在测量完成之后系统会选择一个时机跟服务器进行数据同步,主要是把刚刚获取到的心率、体温、环境温度、环境湿度以及天气状况上传给服务器。
3)用户用手机扫描二维码或者打开APP查看自己的数据:这个时候服务器会把获取的该用户的数据下发给他浏览。
4)用户选择需要的按摩模式并点击:用户点击按摩命令之后会首先发给服务器一个POST请求,当服务器接到这个请求之后就会转发给之前树莓派请求的服务器的反向代理的A 端口,这个A 端口就会通过SSH 发送给树莓派,当树莓派接到命令之后就进行命令解析和执行相应的动作。虽然在这个步骤中有很多过程,但是由于采用了JSON 的数据传输,这个过程也可以在很短的时间内完成,用户基本上不会注意到这个延迟时间的存在。
5)树莓派提醒按摩模式并进行按摩。
6)用户点击关闭按摩并关机。
现在开始具体介绍调试流程,当手机触摸MAX30102一段时间之后我们可以在控制台看见如图7.12所示的输出,此时会进行天气预报和数据同步。图7.12中第一行就是使用TTS进行语音合成,将合成的语音存储到文件temp.wav里面,然后播放此文件就可以实现自动播放天气预报。后面四行都是对采集到的数据进行同步,其中倒数第四行中“GET”表示以GET的方式向服务器的“api/DataSync”发起请求,带有参数值为170320170103031的UUID、值为108的心率、值为86的血氧浓度、值为23的室内温度、值为74的室内湿度、值为“阵雨”的天气状况以及值为2018-05-27|16:53:12的数据产生时间。

图7.12 MAX30102输出
现在当我们扫描二维码之后可以看到如图7.13的界面,当向下滑动的时候我们可以看见如图7.14的温度数据,当点击湿度的时候就可以看见如图7.15的湿度数据,当我们继续向下滑动的时候,我们就可以看见用心率和血氧浓度绘制的图像,如图7.16所示。
(https://www.daowen.com)
图7.13 网页截面图

图7.14 温度截面图

图7.15 湿度截面图

图7.16 心率、血氧浓度界面波形图
当用户需要使用按摩的时候,只需要点击相应的按摩模式,比如慢速按摩,此时我们可以在控制台中看到如图7.17的输出,表示树莓派收到从服务器发送过来的命令为20并调用TTS引擎生成一则内容为“慢速按摩”的语音文件,然后进行播放提醒用户当前进入慢速按摩。当用户觉得不再需要进行按摩的时候就可以点击图7.13中的停止按摩,此时我们可以在控制台看到如图7.18所示的输出,表示树莓派收到从服务器发送过来的命令为10并调用TTS引擎生成一则内容为“按摩结束”的语音文件,然后进行播放提醒用户现在已经结束按摩。这种家庭式无损检测系统只是一个初步开端,有待大家进一步提升和完善。我们的团队也会继续在此方面努力。

图7.17 慢速按摩调试信息

图7.18 停止按摩调试信息