白 娜,李文舉,任少丙
(哈爾濱石油學(xué)院,黑龍江 哈爾濱 150027)
隨著人們生活水平的提高,越來越多的人開始關(guān)注睡眠健康。 通過新興物聯(lián)網(wǎng)思維幫助人們解決睡眠質(zhì)量問題,對人們的睡眠過程進(jìn)行數(shù)據(jù)監(jiān)測,并且通過科學(xué)的數(shù)據(jù)分析,為人們提供睡眠健康指導(dǎo)分析是非常有必要的。 本文提出的基于單片機(jī)的智能睡眠監(jiān)測系統(tǒng)是利用傳感器對睡眠過程中的5 種數(shù)據(jù)進(jìn)行實時監(jiān)測和統(tǒng)計,再通過數(shù)據(jù)整合后,上傳至服務(wù)器,經(jīng)過數(shù)據(jù)分析與數(shù)據(jù)轉(zhuǎn)發(fā)后,通過移動終端App 向人們傳達(dá)睡眠過程分析結(jié)果,幫助人們及時關(guān)注自己的睡眠情況,通過分析結(jié)果,判斷是否出現(xiàn)睡眠障礙問題,并以此來幫助改善睡眠[1-3]。
本設(shè)計提出的基于單片機(jī)的智能睡眠監(jiān)測系統(tǒng)主要由硬件端睡眠數(shù)據(jù)監(jiān)測部分、云服務(wù)端數(shù)據(jù)處理部分和移動App 終端三大部分組成。
本文提出了一種結(jié)合非接觸式和接觸式監(jiān)測兩者優(yōu)點的新型智能睡眠監(jiān)測系統(tǒng)。 通過搭載少量的接觸式傳感器對被監(jiān)測者心率、心電圖、血氧濃度信息進(jìn)行監(jiān)測。 同時,搭載聲音傳感器、壓力薄膜傳感器對被監(jiān)測者的鼾聲、體動進(jìn)行監(jiān)測,豐富睡眠數(shù)據(jù)的可靠性,以實現(xiàn)更為精準(zhǔn)的睡眠信息分析。 系統(tǒng)框如圖1所示。
圖1 系統(tǒng)框
1.2.1 睡眠數(shù)據(jù)實時監(jiān)測功能
本系統(tǒng)主要利用物聯(lián)網(wǎng)技術(shù)、傳感器技術(shù)對睡眠相關(guān)數(shù)據(jù)進(jìn)行實時監(jiān)控。 通過單片機(jī)控制心率脈搏傳感器、心電圖傳感器、聲音傳感器、壓電薄膜傳感器、血氧濃度傳感器,對被監(jiān)測對象的心率、心電圖、鼾聲、體動、血氧濃度數(shù)據(jù)進(jìn)行實時監(jiān)測,并利用無線傳輸模塊將監(jiān)測數(shù)據(jù)實時上傳至云服務(wù)器做進(jìn)一步的分析處理,以實現(xiàn)幫助人們對睡眠過程中的相關(guān)情況進(jìn)行監(jiān)控[4-7]。
1.2.2 睡眠異常預(yù)警功能
若在對睡眠監(jiān)測對象進(jìn)行數(shù)據(jù)監(jiān)控的過程中,檢測到血氧濃度變化異常,代表病患呼吸不暢,同時結(jié)合其他傳感器監(jiān)測數(shù)據(jù)對病患的鼾聲頻率、心率變化、心電圖數(shù)據(jù)進(jìn)行分析,以判斷監(jiān)控對象出現(xiàn)間歇性呼吸綜合征、阻塞性呼吸暫停等健康問題。 如果發(fā)現(xiàn)異常情況時,會通過手機(jī)App 發(fā)送報警信息,提醒監(jiān)護(hù)人及時對睡眠監(jiān)測對象進(jìn)行看護(hù),以避免危險情況的產(chǎn)生。異常數(shù)據(jù)也會實時記錄在云服務(wù)器中,用戶通過手機(jī)App 就可以查看歷史異常信息。 同時,本系統(tǒng)云服務(wù)端通過數(shù)據(jù)接口進(jìn)行數(shù)據(jù)交互,可以與其他監(jiān)管平臺進(jìn)行數(shù)據(jù)對接,以實現(xiàn)更為豐富的功能[8]。
1.2.3 睡眠數(shù)據(jù)分析和遠(yuǎn)程監(jiān)控功能
考慮到整個系統(tǒng)在運行過程中不能對被監(jiān)測對象的睡眠過程產(chǎn)生干擾,所以本設(shè)計通過搭建服務(wù)器和移動端App,實現(xiàn)了遠(yuǎn)程監(jiān)控功能。 當(dāng)硬件設(shè)備檢測到睡眠數(shù)據(jù)后,會通過無線傳輸模塊將數(shù)據(jù)上傳到服務(wù)器,服務(wù)器會進(jìn)行數(shù)據(jù)轉(zhuǎn)發(fā),移動端App 可以隨時查詢當(dāng)前睡眠監(jiān)測數(shù)據(jù)。 如果發(fā)現(xiàn)被檢測對象出現(xiàn)異常信息,App 會立即生成異常通知,提醒監(jiān)護(hù)人進(jìn)行查看。 被監(jiān)測對象睡醒后也可以通過App 查詢歷史睡眠信息,查看分析結(jié)果和健康建議[9-11]。
系統(tǒng)采集到的睡眠監(jiān)測數(shù)據(jù)利用無線傳輸模塊實時上傳至云服務(wù)器。 云服務(wù)器中的數(shù)據(jù)分析接口會針對不同傳感器監(jiān)測的數(shù)據(jù)進(jìn)行睡眠數(shù)據(jù)處理。 系統(tǒng)主要通過鼾聲分析、體動分析、心電圖分析、血氧濃度分析過程實現(xiàn)睡眠質(zhì)量分析。
本課題硬件系統(tǒng)電路結(jié)構(gòu)包括核心D1 WiFi 模塊、無線網(wǎng)絡(luò)模塊、薄膜微動傳感器、聲音檢測傳感器、心電圖傳感器、血氧濃度傳感器、心率脈搏傳感器等,通過這些傳感器模塊實現(xiàn)對睡眠信息進(jìn)行監(jiān)測的功能。 硬件系統(tǒng)電路,如圖2 所示。
圖2 硬件系統(tǒng)電路
D1 WiFi 是一種新興的開發(fā)平臺,D1 WiFi 板載ESP8266 無線傳輸模塊。 用戶只需要調(diào)用ESP8266的WiFiMulti.h 庫和HTTPClient.h 庫,創(chuàng)建WiFi 連接和HTTP 無線網(wǎng)絡(luò)通信,實現(xiàn)無線網(wǎng)絡(luò)連接和數(shù)據(jù)傳輸功能。 D1 WiFi 的核心控制器為ATmega328 處理芯片,其屬于8 位處理器,擁有32 kB 的閃存和讀寫能力,具有多種開放功能。 其帶有5 個模擬信號引腳、15 個數(shù)字信號引腳和多個供電引腳,可以完成對傳感器的控制。 數(shù)字信號引腳中帶有兩組I2C 引腳,即D4、D5 和D14、D15 引腳,通過SDA 數(shù)據(jù)線和SCL時鐘線路構(gòu)成串行總線,對每一個連接到總線的設(shè)備定義唯一地址,可以完成多組傳感器數(shù)據(jù)識別而且相互間互不干擾。
MAX30102 血氧濃度傳感器的額定供電電壓為3.3~5.0 V,可以直接利用D1 WiFi 板載供電,通過檢測探頭直接接觸人體指尖、手掌、耳垂、腕部和胸口的皮膚就可以快速識別人體的心率及血氧濃度信息。 此傳感器采用IIC 通信,需將其SCL、SDA 引腳分別接入主控模塊D13、D14 引腳。
PulseSensor 脈搏心率傳感器封裝體積小、結(jié)構(gòu)簡單,主要由光電模塊和濾波電路構(gòu)成。 整個傳感器搭載3 個外部引腳,分別為模擬數(shù)據(jù)輸出、電源正、負(fù)極。3 個外部引腳分別接D5 引腳和電源正負(fù)極。 連接建立后,傳感器會通過模擬信號引腳輸出采集到的心率模擬值。
為了檢測睡眠中人的心電數(shù)據(jù)變化,以實現(xiàn)數(shù)據(jù)全方位檢測,本設(shè)計加入了HL8059 心電圖傳感器。HL8059 傳感器可以控制外部分布的檢測電極,實現(xiàn)對運動生物個體心電變化數(shù)據(jù)的實時檢測、信號濾波、信號放大功能,同時板載A/D 轉(zhuǎn)換電路,其功耗低、工作狀態(tài)穩(wěn)定,有較好的生物電信號檢測效果。
為實現(xiàn)對被檢測對象睡眠過程中體動數(shù)據(jù)的檢測,本設(shè)計加入薄膜微動傳感器。 當(dāng)傳感器感知到外界壓力時,傳感器電阻值發(fā)生變化,采用電路將傳感器感知壓力變化的壓力信號轉(zhuǎn)換成相應(yīng)變化強(qiáng)度的電信號輸出。 這樣通過檢測電信號變化就可以得到被監(jiān)測對象的體動變化情況。
本系統(tǒng)搭載的聲音檢測傳感器主要用于檢測睡眠環(huán)境中的鼾聲信息。 此傳感器基于LM2904 放大器和內(nèi)置的麥克風(fēng),它可以從麥克風(fēng)中接收到高頻信號并且進(jìn)行放大和濾波處理,并輸出正包絡(luò)。 此傳感器輸出值取決于聲音輸入的電平高低,輸入信號會經(jīng)過兩次濾波來避免不必要的信號干擾。
硬件設(shè)備開始運行,系統(tǒng)進(jìn)行初始化,同時獲取WiFi 連接,傳感器組開始對睡眠監(jiān)測數(shù)據(jù)進(jìn)行采集,若成功檢測到睡眠數(shù)據(jù),D1 WiFi 模塊對數(shù)據(jù)進(jìn)行收集、格式化操作,控制無線傳輸模塊通過WiFi 與云服務(wù)器建立無線通信;若成功接收到云服務(wù)器返回的創(chuàng)建成功Message 信息,D1 WiFi 模塊將格式化后的數(shù)據(jù)通過WebSocket 數(shù)據(jù)傳輸協(xié)議上傳至云服務(wù)端進(jìn)一步處理。
本設(shè)計選擇FLASK 框架來實現(xiàn)所有的Web 功能和數(shù)據(jù)處理過程。 所有接口用到的模塊安裝完成后,可以試編譯,編譯無問題后,開始對整個后端接口進(jìn)行編寫。 后端接口采用MVC 設(shè)計模式,將model 數(shù)據(jù)類表、view 視圖邏輯和controller 控制層分開,消除各模塊之間的耦合度。 首先在model.py 模塊編寫數(shù)據(jù)表結(jié)構(gòu),然后在view.py 中編寫核心控制邏輯,最后將view功能函數(shù)映射到urls.py 中,將接口實例化,最后配置main 方法后編譯運行,通過接口管理工具就可以用url鏈接訪問接口,實現(xiàn)數(shù)據(jù)交互。 硬件系統(tǒng)實時上傳的數(shù)據(jù)會經(jīng)過數(shù)據(jù)解析、數(shù)據(jù)驗證,經(jīng)過匹配算法分析后,將結(jié)果數(shù)據(jù)和原數(shù)據(jù)按照時間戳的順序存入數(shù)據(jù)庫中。
圖3 主程序流程
App 主要利用Hybrid 開發(fā)框架搭建。 當(dāng)用戶使用App 時,App 會首先向云服務(wù)器FLASK 服務(wù)接口發(fā)送數(shù)據(jù)請求,創(chuàng)建長連接,并且接收服務(wù)接口返回的睡眠數(shù)據(jù),經(jīng)過JSON 解析后,通過setView 函數(shù)向VIEW 頁面的Layout中渲染數(shù)據(jù),最終完成整個移動端App 的設(shè)計。
本系統(tǒng)是基于單片機(jī)的智能睡眠監(jiān)測系統(tǒng)利用D1WiFi 模塊控制血氧濃度、脈搏心率、心電圖、聲音,對被監(jiān)測者的血氧濃度、心率、體動、鼾聲、心電圖進(jìn)行實時監(jiān)測,同時檢測數(shù)據(jù)會通過無線網(wǎng)絡(luò)上傳至云服務(wù)器。 系統(tǒng)通過數(shù)據(jù)接口接收、解析、處理、存儲硬件系統(tǒng)檢測的睡眠監(jiān)測數(shù)據(jù)。 本設(shè)計開發(fā)了移動端App,利用App 就可以遠(yuǎn)程查看被監(jiān)測者的實時睡眠狀態(tài)。 如果系統(tǒng)檢測到異常信息時,App 也會及時發(fā)送報警信息,提醒監(jiān)護(hù)人及時照顧被監(jiān)測者,因此本系統(tǒng)可應(yīng)用于養(yǎng)老院、臥床患者的睡眠監(jiān)控。 用戶本人也可以通過App 查看歷史睡眠分析結(jié)果。