葛 垚,陆新晨,梁凌峰,金斯伊,杨 柳
(南京工程学院 通信工程系,江苏 南京 211167)
基于Android智能手机客户端的睡眠监测系统设计
葛 垚,陆新晨,梁凌峰,金斯伊,杨 柳
(南京工程学院 通信工程系,江苏 南京 211167)
为了更方便地监测个人的睡眠情况,设计并实现了一种小型低成本、简易便携的睡眠监测系统。监测数据有睡眠环境信息和人体自身的信息2部分。监测系统由STC516RD+单片机与外围模块2部分构成,通过无线模块将监测到的数据发送到Android系统智能手机客户端,绘制显示环境和人体信息的变化曲线,根据相关的数据分析给出了睡眠质量。测试结果表明,系统能够稳定地对睡眠环境进行长时间的监测,准确地显示数据曲线。
单片机;Android;睡眠环境;人体信息
睡眠质量直接影响到个人的生活、工作状态和身体健康[1]。目前,各种数据均表明国人的睡眠质量在日益下降,而睡眠质量的下降由多种因素引起,恰当地调整这些因素,可以提高个人的睡眠质量[2]。目前,市场上和医学上使用的专业睡眠监测仪器成本高,测量方式复杂,很难为个人提供长期、便利的监测服务。本文设计注重测量睡眠环境的关键因素,降低成本,旨在设计一个准确可靠、方便操作、可长周期地进行睡眠监测的系统[3],并能高效地反应睡眠时环境因素的变化,对环境的调整做出引导[4]。
监测系统主要由前端监测和客户端基于Android系统的应用2部分构成[5],其中前端监测部分包括环境监测的噪声、温度、湿度和光强度监测模块,人体生理特征的心率、震动监测模块以及相应的控制模块和无线发送模块等[6],如图1所示。
图1 睡眠监测系统总体框架
1.1 硬件设计
系统能够记录的睡眠环境因素包括温度、湿度和光强度,人体信息包括心率和打鼾及翻身等动作的发生次数。
1.1.1 控制模块
控制模块采用型号为 STC90C516RD+的单片机,利用其定时器,外部中断,串口通信的功能搭配其他模块进行数据的采集、保存和发送。STC90C516RD+系列单片机是宏晶科技推出的新一代单片机,具有抗干扰、高速和低功耗的特点。工作频率范围为0~40 MHz,相当于普通8051单片机的0~80 MHz。对于本系统来说,普通8051单片机用户应用程序空间不足,而STC90C516RD+单片机的空间为最大为61 KB,满足需求。
1.1.2 心率监测模块
心率测量模块采用了松恩电子有限公司生产的SON1303光电式心率传感器,其内部集成高科技纳米涂层环境光检测传感器,过滤不需要的光源,减少由其他光源干扰的误判动作,准确度高。可放置于人体各部位测试人体心率和脉搏,增强了实用性。
1.1.3 温度监测模块
温度测量模块采用DS18B20传感器,与主控芯片之间采用单总线方式进行通信。美国达拉斯半导体公司生产的DS18B20温度传感器具有体积小、硬件开销低、抗干扰能力强和精度高的特点,测温范围-55~+125℃,固有测温误差1℃,满足本系统在室内应用的温度范围。
1.1.4 湿度监测模块
DHT11是广州奥松电子有限公司生产的一款湿度温度一体化的数字传感器。该传感器包括一个电阻式测湿元件和一个NTC测温元件,由于其温度测量精度不如DS18B20,所以仅用来测试湿度数据。
1.1.5 光强度监测模块
光强度测量采用了TSL2561传感器。TSL2561是由TAOS公司生产的高速、低功耗、宽量程和可编程灵活配置的光强传感器芯片,能够自动抑制50 Hz/60 Hz的光照波动,共有4种封装:PACKAGE CS6-LEAD CHIPSCALE、PACKAGE T 6-LEAD TMB、PACKAGE FNDUAL FLAT NO-LEAD和PACKAGE CL6-LEAD ChipLED。对于4种封装,有2种计算光强度的方法。本次设计采用的是 PACKAGE T 6-LEAD TMB封装。
1.1.6 噪声和震动监测模块
声音传感器和震动传感器这2个传感器根据阈值来判断情况是否发生,给出相应的信号。阈值由模块上的电位器调节。
1.1.7 存储模块
存储模块采用Sumsung公司生产的2 G容量的MicroSD Card和SD卡读写电路,可以保存长时间的测试数据。在 Android客户端发出获取数据命令后,能够读取数据并发送。
1.1.8 无线模块发送模块
考虑了连接多个客户端的情况,无线通信方式选择了WiFi,使用的是ESP8266模块。ESP8266是一个完整且自成体系的WiFi网络解决方案,能够搭载软件应用,或通过另一个应用处理器卸载所有WiFi网络功能。ESP8266在搭载应用并作为设备中唯一的应用处理器时,能够直接从外接闪存中启动。内置的高速缓冲存储器有利于提高系统性能,并减少内存需求。
1.2 软件设计
睡眠监测系统的软件设计包括硬件前端驱动程序的编写和 Android客户端的应用程序编写 2部分。
1.2.1 硬件前端程序设计
睡眠监测系统的软件部分由主程序和若干中断服务程序构成[7],程序流程如图2和图3所示。
图2 前端软件主流程
图3 前端软件中断流程
上电之后的初始化过程包括中断的初始化、噪声判别、震动判别和连接判别,分别对应于单片机的外部中断0、外部中断1和串口中断。当中断发生时,进行相应数据的计数。测量温度、湿度、光强度和数据在主程序中进行。测量心率时用到了定时器的定时功能,将定时时间作为一个周期,在周期内测量心跳次数,在周期结束时换算成心率。
心率计算方式为:心率=周期内的心跳次数÷周期长度×60。
周期的时长可以通过客户端进行修改。如周期设置为10 s,在周期内测得心跳次数为11次,则心率为:11÷10×60=66(次/min)。
1.2.2 Android客户端应用程序设计
客户端的设计目的是通过Android软件与前端建立TCP通信[8],获取前端测得的数据,进行分析、呈现并能通过客户端控制前端的测量周期。客户端的设计流程图如图4所示。
接收到数据后,对数据的分析是为了将每帧的各种数据分离,形成每种数据的多个离散值。分析完成后,用SharePreference将数据存储到文件中[9],并用HelloCharts图表库提供的接口进行绘图[10]。
图4 客户端软件流程
2.1 光强度的精确测量
由于睡眠时通常为无光环境或弱光环境,所以光强度在0~10 Lux内的测量精度就尤其重要。本次设计采用的光强度测量芯片 TSL2561是PACKAGE T 6-LEAD TMB封装,可以读出 CH0、CH1两个通道的数据。根据读出的2个数,具体的光强度计算公式如下:
当 0<CH1/CH0≤ 0.50时,Lux=0.0304×CH0-0.062× CH0×((CH1/CH0)1.4);
当0.50<CH1/CH0≤0.61时,Lux=0.0224×CH0-0.031 ×CH1;
当 0.61<CH1/CH0≤ 0.80时,Lux=0.0128×CH0-0.0153×CH1;
当 0.80<CH1/CH0≤ 1.30时,Lux=0.00146×CH0-0.00112×CH1;
当CH1/CH0>1.30时,Lux=0。
2.2 传输协议的制定
综合考虑数据的测量周期、SD卡的存储效率、WiFi的通信效率、Android客户端对接收数据的分析和存储效率,制订了一种方便存储与解析,发送效率较高的通信协议。
将一次测量的数据封装成为一个数据帧,为了方便测量数据的增加和对SD卡的读写,定义数据帧的大小为32 Bytes[11],格式组成如表1所示。
表1 数据帧格式
为方便客户端解析,在每种数据后面添加符号‘-’,将每帧的最后一个字节写入符号‘E’。将剩下的字节填充符号‘*’。如封装的一帧为:21.6-4.2-72.0-65-04-01-********E,则表示测量的温度为 21.6℃,光强度为 4.2 Lux,心率为72.0次/min,湿度为65%,周期内的噪声出现4次,震动出现1次。
将制作的电路板焊接完成,上电后,经过约5 s的初始化,开始循环监测环境数据,如图5所示,同时作为服务器等待WIFI连接。每构成512组数据帧,就将其一次性写入SD卡。SD的2 G容量,足够存储一次完整的睡眠过程数据。当Android客户端进行TCP连接成功,指示灯亮起,服务器将SD卡中的数据和还未存入SD卡中的数据发送给客户端,客户端应用程序进行绘图显示,如图6所示。
最终完成的系统大小为14 cm×10 cm×5 cm。达到了轻型、便携的要求。相比于目前市场上的小米手环等仅关注人体状况的辅助睡眠硬件,此系统能够更全面地监测睡眠环境。通过与互联网查询的天气数据(温度、湿度)、专业心率测试仪的测试和现场噪声、震动情况的人为记录对比,此系统测得数据与真实数据基本保持一致。
图5 睡眠环境检测系统
图6 显示界面
本文设计构建了轻型的睡眠监测系统,获取的人体动作和睡眠环境数据有确实的应用价值,能够迎合人们对高质量睡眠的呼吁。但在如宿舍等集体睡眠的环境下,一个人打鼾产生的噪声会对他人的睡眠造成很大障碍。本系统还加了可开关的微型风扇,当打鼾情况较为严重时,风扇转动片刻,产生微风吹向发声者,造成轻微的抑制效果,希望在不吵醒发声者的情况下,保证他人的睡眠。但是实际测试结果欠佳。因此,集体环境下合理有效地保证睡眠质量的方案还有待下一步研究。
[1] 林荣茂,严由伟,唐向东.近15年中国青少年学生匹兹堡睡眠质量指数调查结果的元分析[J].中国心理卫生杂志,2010(11):839-844.
[2] 童 萍,吴承红.大学生睡眠质量与健康状况的相关研究[J].中国健康心理学杂志,2010(2):181-184.
[3] 欧 琼,高兴林,郑勤伟,等.便携式睡眠监测与多导睡眠监测两种方法的应用比较[J].国际呼吸杂志,2005 (8):561-562.
[4] 张孝林,张翰博.智慧家居解决方案分析[J].移动通信,2014,38(21):38-41.
[5] 冯艳红,何加铭,杨任尔,等.基于 Android技术的社区服务系统设计[J].移动通信,2014,38(5):90-93.
[6] 张毅刚.单片机原理及接口技术(C51编程)[M].北京:人民邮电出版社,2011.
[7] 徐爱钧.Keil C51单片机高级语言应用编程技术[M].北京:电子工业出版社,2015.
[8] 尹圣雨.TCP/IP网络编程[M].北京:人民邮电出版社,2014.
[9] 何红辉,关爱民.Android源码设计模式解析与实战[M].北京:人民邮电出版社,2015.
[10]黄彬华.Android 5.X App开发实战[M].北京:清华大学出版社,2016.
[11]于振南.嵌入式FAT32文件系统设计与实现[M].北京:北京航空航天大学出版社,2014.
Design on Sleep Monitoring System Based on Android Platfrom
GE Yao,LU Xin-chen,LIANG Ling-feng,JIN Si-yi,YANG Liu
(Communication Engineering Department,Nanjing Institute of Technology,Nanjing Jiangsu 211167,China)
In order to monitor conveniently the personal sleeping condition,this paper designs and implements a small-scale,simple and portable sleep monitor system.The monitoring data include information of sleep environment and human body.The system is composed of STC516RD+MCU and external module.The monitored data is sent to the Android smart phone client through wireless module,and the curve about environment and body information is drawn.The sleep quality is obtained based on relative data analysis.The test resuls show that this system can monitor reliably the sleep environment for a long time,and draw the data curve accurately.
MCU;Android;sleeping environment;body information
TP277
A
1003-3106(2017)02-0007-04
10.3969/j.issn.1003-3106.2017.02.02
葛 垚,陆新晨,梁凌峰,等.基于Android智能手机客户端的睡眠监测系统设计[J].无线电工程,2017,47(2):7-10.
2016-11-05
南京工程学院大学生科技创新基金资助项目(TB201606043)。
葛 垚男,(1995—),本科。主要研究方向:网络通信。
陆新晨男,(1994—),本科。主要研究方向:网络通信。