周天祥 姚富光 王运运
摘要:根据人们对日常生活中体质健康测试和检查的重视程度越来越高的实际需求,设计了一套基于树莓派的便捷式健康数据采集系统。系统应用了C/C++编程语言、蓝牙串口通信技术、MySQL数据库技术、I2C总线通信技术、传感器等技术作为支持,完成了上位机的设计、硬件电路的搭建、数据库的搭建,实现了健康数据的采集、查询、展示与存储功能。经测试,该系统满足日常采集体温和心率等基本数据的要求。
关键词:健康数据采集;Qt;树莓派;蓝牙;数据库
中图分类号:TP36 文献标识码:A
文章编号:1009-3044(2020)25-0013-02
Abstract: According to the actual demand that people pay more and more attention to the physical health test and inspection in daily life, a convenient health data collection system based on Raspberry Pi is designed. The system uses C/C++ programming language, Bluetooth serial communication technology, MySQL database technology, I2C bus communication technology, sensors and other technologies as support, completed the design of the host computer, the construction of the hardware circuit, the construction of the database, and realized the health data Collection, query, display and storage functions. After testing, the system meets the requirements for the daily collection of basic data such as body temperature and heart rate.
Key words: health data collection; Qt; Raspberry Pi; Bluetooth; database
1 背景
随着人们生活水平和生活质量的不断提高和改善,健康這个话题已成为现代生活中的一个重要话题,并且人们生活中的体质健康测试和检查已经成为一种自觉行为,但目前市场上的体质健康测试和检查的设备或终端对于服务家庭而言都具有一定的局限性,主要是由于市场上的体质健康测试、检查设备和终端都趋于大型化、固定化,缺乏移动的便捷性。而且在数据信息的搜集上也具有局限性,目前大多数的体测和体检仍然沿用传统的人工手写记录,效率低且数据不易存储,出错率高。
2 健康数据采集系统总体设计
在整体系统的框架设计上采用了底层数据采集模块、上位机界面显示模块、后台数据库模块组成的三层结构。整个健康数据采集系统从硬件端到上位机端、从上位机到把数据保存到数据库中的数据传输机制,利用了 I2C 协议及蓝牙透传,在整个系统中可实现了体温数据、心率等人体健康数据的采集、传输、展示和存储等功能。系统功能流程图如图1所示。
2.1 底层数据采集模块
如图2所示,底层硬件模块目前包含MAX30205MAT体温模块、MAX30102心率模块、HC-05蓝牙传输模块。系统通过上述体温和心率采集模块将数据采集到,并通过MCU根据I2C总线协议[1]来将数据的传输到蓝牙发送模块,再通过蓝牙发送模块,将数据传输给树莓派上位机载体,再由载体上的蓝牙接收模块接收数据后,将数据实时的显示到上位机UI界面上[2]。目前主要采集人体体温数据和心率数据,后期也可根据需求在MCU上进行相应的增加其他健康数据采集模块[3]。
2.2 蓝牙通信设计
下位机上传数据到上位机需要利用蓝牙进行传输,此蓝牙传输数据方式为透传,使用的是蓝牙的标准协议进行数据传输,在树莓派进行开机时通过LX终端输入蓝牙连接命令将两个蓝牙设备进行连接,所以无须再自己进行蓝牙协议的编写。数据传输到树莓派后,保存在树莓派蓝牙文件中,上位机只需通过读取文件中的数据来将其显示到界面上即可。
2.3 上位机界面显示模块
本健康数据采集系统界面利用Qt Creator软件跨平台开发,采用C++编程语言进行编写[4],实现了读取树莓派蓝牙数据的上传展示,并通过MySQL数据库对信息进行实时存储。上位机中体温和脉搏均采用了触发式的采集方式,这样避免了受外界环境的影响,采集人体体温时类似水银温度计一样有一个采集过程才能使体温数据趋于平稳。 采集体温数据时,温度在设定范围内方可触发传感器模块进行数据采集,否则均不可触发传感器模块进行温度采集。心率模块则是自主地进行触发,当模块检测到有心率信号就会触发模块采集心率数据。界面模块设计如图3所示。
界面模块包括开始界面、体温数据显示按钮、心率数据显示按钮、系统实时时间显示和退出按钮。均是通过Qt Creator中Qlabel进行显示,可以利用继承调用相同的类来进行编写,这样也为后期增减显示模块提供了方便。数据的采集均是通过触发的方式进行,大大降低了操作的难度。
3 后台数据库的模块
此系统中将采集到的信息进行处理后保存至服务器的MySQL数据库中。通过C++代码已经在上位机程序中设置好数据库的相关参数,只需在树莓派中安装MySQL数据库[5],然后根据代码中的相关参数建立相应的数据库即可。数据库中总共包含系统时间、体温数据、心率数据三个字段,采集到的数据将实时插入到数据库中进行保存[6-7]。数据库管理软件为我们和物理数据库之间提供了一个桥梁,开发人员不必了解物理数据库中的构造,而直接使用数据库管理软件就可以实现数据的存储和增删改查[8]。
数据库结构和内容如图4所示。
4 测试与结果
该系统的测试主要通过底层采集数据部分和上位机软件能否正常地进行工作,采集到的數据能够正确完整地存储到本地 MySQL 数据库中,并且能够在数据库中。将文件导出。经测试,体温数据与传统的温度计相比较:都会有一个逐渐上升的过程才能达到稳定。传感器比传统温度计测量体温达到稳定的时间更短。由于传感器时电子元件,受环境温度的影响,在不同环境下对准确率也有所影响。心率数据由于模块采用的是红外光进行测试,在不封闭的环境下,环境中的自然光会对其准确率有所影响。所以,该系统所采集的健康数据信息,对于日常生活健康检测而言,有一定的参考价值,但不能完全用于医学使用。
5 结束语
本文设计了一套基于树莓派的嵌入式健康数据采集系统,包含数据采集的下位机和数据传输管理的上位机。系统设计的重点在下位机的数据采集上,下位机采用自动触发式进行采集,利用蓝牙协议可实时将健康数据传输到上位机显示和后台数据库中。上位机上使用C++语言采用了多线程编程,保证了数据的实时有效性。
参考文献:
[1] 知乎. I2C协议[EB/OL].[2019-12-20].https://zhuanlan.zhihu.com/p/26579936.
[2] 叶华山. 基于Qt的家庭健康监护系统的设计与实现[D]. 中国知网, 2016(10): 12-36.
[3] 周嘉坤. 基于STM32的个人健康和环境数据采集器设计与实现[Z]. 2015(2): 11-4.
[4] 曾繁贰, 钟清华, 张静萌, 等. 移动健康监护系统[J]. 微计算机信息, 2011, 27(7): 149-151.
[5] 陆伟, 郭阳明. 数据库系统:设计与应用[M]. 西安: 西北工业大学出版社, 2010: 4.
[6] 陈岩. 基于树莓派的温度采集存储显示系统[D]. 中国知网, 2015(6): 1.
[7] 雷星月. 移动个人健康系统的设计与实现[D]. 厦门: 厦门大学, 2015.
[8] 宋志扬. 基于树莓派的温室大棚监控系统设计[J]. 电脑知识与技术, 2019, 15(6): 205-206.
【通联编辑:谢媛媛】