葛 垚,陸新晨,梁凌峰,金斯伊,楊 柳
(南京工程學院 通信工程系,江蘇 南京 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—),本科。主要研究方向:網絡通信。