楊 柳,范小嬌,范晨宇,馬亞紅,李 靜,劉 欣
(西京學(xué)院計(jì)算機(jī)學(xué)院,西安 710100)
近年來,老年人群體的健康狀況引起了社會(huì)各界的廣泛關(guān)注。老年人通常是心腦血管等疾病的高頻率發(fā)病群體。在周圍沒有其他人的情況下,老年人如果突發(fā)疾病,無法及時(shí)采取有效的治療措施,且他們也沒有意識(shí)和很好的方法長期監(jiān)測自身的體征參數(shù)和各項(xiàng)指標(biāo),所以并不能夠及時(shí)地預(yù)防疾病的發(fā)作。與國外相比,中國老齡人口看護(hù)體系的發(fā)展過程相對緩慢,從二十世紀(jì)五十年代后期開始研究,但是真正的臨床監(jiān)測始于二十世紀(jì)七十年代中期。從二十世紀(jì)九十年代起,伴隨著各種醫(yī)療設(shè)備監(jiān)控儀器的推出,多數(shù)中國的監(jiān)控儀器都能對一部分人體體征參數(shù)進(jìn)行監(jiān)控[1]。比如,南京正在進(jìn)行智能化養(yǎng)老的課題,該方案最主要的特點(diǎn)是:利用NB-IoT 和華為云技術(shù)來開發(fā)一種可監(jiān)護(hù)老年人健康數(shù)據(jù)的系統(tǒng),不僅可以監(jiān)測自身的體征參數(shù)和各項(xiàng)指標(biāo),也能夠及時(shí)地預(yù)防疾病的發(fā)作。
本文所提出的老年人智能安全監(jiān)護(hù)系統(tǒng)以心率血氧模塊、體溫模塊等硬件作為數(shù)據(jù)采集端,將數(shù)據(jù)上傳并存儲(chǔ)至云平臺(tái),當(dāng)檢測到異常數(shù)據(jù)時(shí),蜂鳴器進(jìn)行警示。該系統(tǒng)還可以遠(yuǎn)程監(jiān)控,為用戶提供便捷的服務(wù)和健康的保障。
本系統(tǒng)由采集設(shè)備、華為云平臺(tái)和老年人智能安全管理系統(tǒng)三部分組成,其中采集設(shè)備通過傳感器采集老年人人體的心率、血氧濃度和人體溫度等參數(shù),并通過NB-IoT 通信模塊將采集的數(shù)據(jù)信息傳輸至華為云平臺(tái)。監(jiān)護(hù)人可以使用自己獨(dú)有的賬號(hào)和密碼通過電腦客戶端登錄,登錄成功后,便可以看到老年人的實(shí)時(shí)心率血氧參數(shù)值和體溫值。系統(tǒng)對上述兩種人體生命體征參數(shù)分別進(jìn)行分析,對老年人和其監(jiān)護(hù)人起到警示作用。系統(tǒng)總體框圖如圖1所示。

圖1 系統(tǒng)總體框圖
采集設(shè)備的主要功能是采集數(shù)據(jù)、傳輸數(shù)據(jù)。采集設(shè)備由主控制器STM32 單片機(jī)、心率血氧傳感器、溫度傳感器、NB-IoT 通信模組、OLED 液晶顯示屏、蜂鳴器等模塊組成[2]。利用單片機(jī)來接收處理傳感器的信息,并對蜂鳴器和OLED 模塊進(jìn)行控制。若檢測到人體心率高于或者低于程序中預(yù)先設(shè)置的范圍,控制模塊將會(huì)命令蜂鳴器執(zhí)行報(bào)警;若人體溫度高于或者低于程序中預(yù)先設(shè)置的范圍,控制模塊也會(huì)命令蜂鳴器做出響應(yīng)[3]。本設(shè)計(jì)的采集設(shè)備總體架構(gòu)如圖2所示。

圖2 采集設(shè)備架構(gòu)圖
本設(shè)計(jì)的主控制模塊為STM32 單片機(jī),用于處理心率血氧和人體溫度的實(shí)時(shí)參數(shù)值。STM32 控制簡單、方便,有強(qiáng)大的處理、控制功能??梢酝ㄟ^編寫程序控制單片機(jī)里面的各種資源和外接I/O 口等,所以采用STM32 單片機(jī)來實(shí)現(xiàn)這些功能具有一定的優(yōu)勢。
NB-IoT具有低成本、低功耗、廣覆蓋、大連接的特性。本文中NB-IoT 通信模塊選用的是BC20型號(hào)的通信模塊。BC20是一款高性能、低功耗、多頻段、支持GNSS 定位功能的NB-IoT 無線通信模塊。其尺寸僅為18.7 mm×16.0 mm×2.1 mm,能最大限度地滿足終端設(shè)備對小尺寸模塊產(chǎn)品的需求,同時(shí)有效幫助客戶減小產(chǎn)品尺寸并降低產(chǎn)品成本。BC20 提供豐富的外部接口和協(xié)議棧,同時(shí)支持多種物聯(lián)網(wǎng)云平臺(tái),為客戶的應(yīng)用提供極大的便利。
心率監(jiān)測模塊采用的是MAX30100,這是一款有脈搏血氧儀和心率監(jiān)測傳感器的模塊,這個(gè)元器件上有兩個(gè)LED、一個(gè)光電探測器。MAX30100 采用3.3 V 的電源電壓,其待機(jī)模式下消耗的電流量可忽略不計(jì),所以可以一直保持電源的連接。
體溫監(jiān)測模塊采用的是DS18B20,它獨(dú)特的單線接口僅需一個(gè)端口引腳進(jìn)行通訊,無需其他的外部器件即可直接通過數(shù)據(jù)線供電,零待機(jī)功耗。它的測溫范圍-55℃~+125℃,以0.5℃遞增。
蜂鳴器采用三極管驅(qū)動(dòng),當(dāng)監(jiān)測到的心率血氧值或者體溫值的參數(shù)過高或者過低時(shí),系統(tǒng)會(huì)命令蜂鳴器發(fā)出聲響來提醒用戶周圍的人及時(shí)對用戶進(jìn)行救助。當(dāng)心率、血氧濃度或體溫?cái)?shù)據(jù)不在正常范圍內(nèi)時(shí),系統(tǒng)程序根據(jù)預(yù)先設(shè)置好的報(bào)警閾值條件,循環(huán)輸出高低電平,蜂鳴器進(jìn)行報(bào)警。當(dāng)心率數(shù)據(jù)和人體溫度都在正常范圍內(nèi)時(shí),輸出低電平,報(bào)警停止。
本設(shè)計(jì)采用OLED 液晶顯示,使用的是0.96 寸OLED 顯示屏,該屏分辨率為128×64。由于其顯示內(nèi)容清晰、豐富、顯示信息量較大、體積較小、輕薄,顯示內(nèi)容速度快等特點(diǎn)而得到廣泛應(yīng)用。應(yīng)用在本設(shè)計(jì)中很好地發(fā)揮了其優(yōu)勢。
OLED 模塊、BC20 模塊與STM32 模塊的連接如圖3所示。

圖3 硬件連接圖
在系統(tǒng)上電后,先對各模塊進(jìn)行初始化,初始化完成之后成功連接到云平臺(tái),各模塊開始工作,傳感器開始采集心率血氧、體溫?cái)?shù)據(jù),將檢測到的數(shù)據(jù)傳輸給STM32,STM32 單片機(jī)分析完數(shù)據(jù)就會(huì)進(jìn)行相應(yīng)的處理,并判斷數(shù)據(jù)值是否異常,如果數(shù)據(jù)值異常,則蜂鳴器進(jìn)行報(bào)警提示[4]。其系統(tǒng)的主程序流程如圖4所示。

圖4 軟件設(shè)計(jì)總流程圖
本模塊的程序設(shè)計(jì)重點(diǎn)主要是實(shí)現(xiàn)對用戶心率和血氧信息的采集,如果采集到的信息超出程序中所設(shè)定的閾值,程序啟動(dòng)蜂鳴器進(jìn)行報(bào)警。心率血氧監(jiān)測模塊的執(zhí)行流程如下:采集模塊采集到人體的心率和血氧值,將信息傳給控制模塊,程序會(huì)根據(jù)當(dāng)前監(jiān)測到的心率血氧值對比程序中設(shè)定的范圍值(范圍內(nèi)的數(shù)值判定為健康)來判斷用戶身體是否健康,當(dāng)判定出用戶心率和血氧值的參數(shù)過高或者過低時(shí),系統(tǒng)會(huì)啟動(dòng)蜂鳴器,發(fā)出聲響來提醒用戶周圍人及時(shí)對用戶進(jìn)行救助。
本模塊中的紅光、紅外光都用來測量人體血液中的含氧量。含氧的血液中可以傳遞更多的紅光并且可以吸收更多的紅外光,而脫氧血液中傳遞更多的紅外光并吸收紅光,讀取兩個(gè)光源的吸收電平,通過測量心臟向外泵的血液中的氧合血紅蛋白增加和減少之間的時(shí)間,確定心率。血氧飽和度(SpO2)的計(jì)算公式為
該模塊通過IIC 通信協(xié)議與STM32 交換數(shù)據(jù),其中SCL 連接B8,SDA 連接B9 讀取rawIRValue(紅外FIFO 數(shù)據(jù))、rawRedValue(紅光FIFO 數(shù)據(jù)),計(jì)算心率血氧的數(shù)據(jù)。
此模塊的程序設(shè)計(jì)重點(diǎn)主要是實(shí)現(xiàn)對用戶體溫信息的采集,如果采集到的信息超出程序中所設(shè)定的閾值,程序啟動(dòng)蜂鳴器進(jìn)行報(bào)警[5]。體溫監(jiān)測模塊的執(zhí)行流程如下:采集模塊采集到人體體溫,將信息傳給控制模塊,程序會(huì)根據(jù)當(dāng)前監(jiān)測到的體溫值對比程序中設(shè)定的范圍值(范圍內(nèi)的數(shù)值判定為健康)來判斷用戶身體是否健康,當(dāng)判定出用戶體溫值的參數(shù)過高或者過低時(shí),系統(tǒng)會(huì)啟動(dòng)蜂鳴器發(fā)出聲響,以此來提醒用戶周圍人及時(shí)對用戶進(jìn)行救助。
華為云平臺(tái)實(shí)現(xiàn)了設(shè)備的接入、數(shù)據(jù)的分析等功能[6]。首先在華為云平臺(tái)中進(jìn)行設(shè)備的注冊。在華為云平臺(tái)官網(wǎng)登錄并在“產(chǎn)品”中創(chuàng)建自己的產(chǎn)品。然后對產(chǎn)品里的屬性進(jìn)行定義。定義完成后,繼續(xù)對設(shè)備進(jìn)行注冊,對設(shè)備進(jìn)行功能配置。接著進(jìn)行編解碼插件的開發(fā),最后對設(shè)備進(jìn)行調(diào)試,保證設(shè)備可以正確地接入云平臺(tái)。將設(shè)備與各個(gè)模塊都連接好后,通過AT 命令連接華為云,和華為云建立好連接后,進(jìn)行數(shù)據(jù)的上傳。通過MQTT 協(xié)議發(fā)送傳感器所檢測到的數(shù)據(jù)。
系統(tǒng)初始化以后,NB-IoT 通信模塊就會(huì)向華為云平臺(tái)發(fā)送設(shè)備標(biāo)識(shí)碼進(jìn)行連接。連接成功后,傳感器所采集到的信息就會(huì)上傳到華為云平臺(tái)。收到了云平臺(tái)下發(fā)的JSON 格式的反饋后,設(shè)備將會(huì)把信息轉(zhuǎn)換成二進(jìn)制上報(bào)給華為云平臺(tái)。華為云平臺(tái)進(jìn)行可視化展示。
首先,在靜態(tài)情況下接通電源,打開主控制器開關(guān),將手指放在心率血氧傳感器上,采集靜態(tài)情況下的心率血氧信息。然后,通過運(yùn)動(dòng)來改變心率值,模擬異常的心率血氧信息。當(dāng)人體心率高于或者低于程序中預(yù)先設(shè)置的范圍時(shí),蜂鳴器發(fā)出聲響;當(dāng)人體心率處于程序中預(yù)先設(shè)置的范圍內(nèi)時(shí),蜂鳴器警報(bào)停止。一般情況下成年人的正常心率為60~100 次/分,心率>100 次/分為心率過高;心率<60 分/次為心率過慢。血氧飽和度正常值為95%~99%。靜態(tài)情況下,對心率血氧模塊進(jìn)行測試,測試結(jié)果如圖5所示。

圖5 正常情況下心率血氧濃度測試結(jié)果
從圖5可以看出,人體在靜態(tài)情況下,心率是94,血氧值是96,在預(yù)設(shè)的閾值范圍內(nèi),屬于人體正常的健康數(shù)據(jù)。
在模擬的異常情況下,對心率血氧模塊再次進(jìn)行測試,測試結(jié)果如圖6所示。

圖6 異常情況下心率血氧濃度測試結(jié)果
從圖6可以看出,人體在異常情況下,心率是107,血氧值是94,在預(yù)設(shè)的閾值范圍外,為人體心率過高且血氧濃度偏低的數(shù)據(jù)。
在前面的一些基礎(chǔ)準(zhǔn)備工作(連接各個(gè)模塊、接通電源并放在水平桌面上)做好后,測試體溫監(jiān)測模塊。首先,打開主控制器開關(guān);然后,先測試室溫來模擬異常情況下的體溫,當(dāng)人體溫度高于或者低于程序中預(yù)先設(shè)置的范圍時(shí),蜂鳴器發(fā)出警報(bào);這時(shí)再用手指放在傳感器上,當(dāng)人體體溫在程序中預(yù)先設(shè)置的范圍時(shí),蜂鳴器警報(bào)停止。除了體溫外,人還有皮膚表面的溫度。當(dāng)環(huán)境溫度為25℃時(shí),體表溫度平均為32℃。頭頸部、胸部、背部、四肢略有不同。人的額部皮膚溫一般為33℃、手為30℃、腳為27℃。大約相差2~3℃。
在靜態(tài)情況下對體溫模塊進(jìn)行測試,結(jié)果如圖7所示。

圖7 體溫正常情況下的測試結(jié)果
從圖7可以看出,人體在靜態(tài)情況下,體表溫度為34℃,在預(yù)設(shè)的閾值范圍內(nèi),屬于人體體溫正常的數(shù)據(jù)。
在模擬的異常情況下,對體溫模塊再次進(jìn)行測試,測試結(jié)果如圖8所示。

圖8 體溫異常情況下的測試結(jié)果
從圖8可以看出,該異常情況下的人體體表溫度為27.4℃,在預(yù)設(shè)的閾值范圍外,屬于人體體溫過低的數(shù)據(jù)。
采集模塊所采集的數(shù)據(jù)經(jīng)MQTT 協(xié)議,通過NB-IoT 模塊將心率血氧信息、人體溫度信息上傳,用戶可通過網(wǎng)頁端實(shí)現(xiàn)對人體數(shù)據(jù)的訪問。網(wǎng)頁端如圖9所示。

圖9 數(shù)據(jù)上傳到華為云平臺(tái)網(wǎng)頁端
從圖9可以看出,傳輸?shù)饺A為云平臺(tái)網(wǎng)頁端的心率值是75,血氧值是95,溫度值是33.8℃。華為云平臺(tái)也可以看到近幾天的歷史數(shù)據(jù),這樣可以幫助醫(yī)生根據(jù)歷史數(shù)據(jù)去判斷老年人是否健康。如圖10所示。
測試完本監(jiān)測系統(tǒng)的各個(gè)模塊后,就可以對整個(gè)系統(tǒng)進(jìn)行測試。首先需要將本設(shè)計(jì)的各個(gè)模塊連接好,并接通電源。打開開關(guān)之后各個(gè)模塊開始監(jiān)測人體各項(xiàng)指標(biāo),當(dāng)人體體溫(34℃±3℃)、心率(60~100)和血氧(95%~99%)高于或者低于程序中預(yù)先設(shè)置的范圍時(shí),蜂鳴器發(fā)出警報(bào)。
本文對基于NB-IoT 和華為云的老年人智能安全監(jiān)護(hù)系統(tǒng)進(jìn)行了研究,使用MAX30100 心率血氧傳感器、DS18B20 溫度傳感器、STM32開發(fā)板、NB-IoT 通信模塊、華為云平臺(tái)等模塊進(jìn)行了設(shè)計(jì)和應(yīng)用。主要從NB-IoT 和華為云的老年人智能安全監(jiān)護(hù)系統(tǒng)的需求、系統(tǒng)性能方面分析了本設(shè)計(jì)的可行性,結(jié)果表明本系統(tǒng)的性價(jià)比和可靠性更高,使用起來更加的方便。最終系統(tǒng)實(shí)現(xiàn)了預(yù)期的功能和實(shí)際要求。