摘要:為解決社區(qū)老人健康管理和安全監(jiān)測等問題,文章設計并實現(xiàn)了智慧社區(qū)養(yǎng)老監(jiān)護系統(tǒng)。該系統(tǒng)通過室內(nèi)檢測傳感器,有效地監(jiān)測室內(nèi)環(huán)境和全屋用水情況,通過手環(huán)實時檢測老人的身體姿態(tài)、判斷老人是否摔倒、檢測老人的心率血氧。通過下位機、EMQX云平臺、PYQT上位機相結(jié)合,打造了功能豐富、操作簡單的智慧社區(qū)養(yǎng)老監(jiān)護系統(tǒng)。
關鍵詞:心率;血氧;姿態(tài);智慧社區(qū);養(yǎng)老
中圖分類號:TP29" 文獻標志碼:A
基金項目:廣西科技計劃項目;項目編號:2020GXNSFAA159091。
作者簡介:黎蓮花(1973— ),女,講師,碩士;研究方向:虛擬儀器。
*通信作者:陸思翰(2001— ),男,工程師,學士;研究方向:物聯(lián)網(wǎng)。
0" 引言
當今社會我國老齡化情況不斷加重,很多年輕人都外出工作和學習,這導致了大量空巢老人的出現(xiàn),老年人的健康監(jiān)測已經(jīng)成為社會的熱點話題。利用社區(qū)“物聯(lián)網(wǎng)+互聯(lián)網(wǎng)+物業(yè)服務”開創(chuàng)新的服務模式,能第一時間保障老年人的生命健康安全[1-2]。
老年人健康監(jiān)測系統(tǒng)將成為社區(qū)養(yǎng)老管理領域中的熱點和前沿領域,并且產(chǎn)生很高的社會價值。通過監(jiān)控老年人的生理參數(shù)、活動軌跡以及日常習慣等信息,可以發(fā)現(xiàn)老年人可能存在的健康風險,并及時采取干預措施,保障老年人身體健康和安全[3-4]。
1" 系統(tǒng)總體設計
本系統(tǒng)主要由應用層、平臺層和硬件層組成[5]。細分為跌倒檢測、心率檢測、室內(nèi)煙霧濃度檢測、室內(nèi)溫度檢測、上位機設計及數(shù)據(jù)庫設計。
上位機用于用戶信息的注冊,創(chuàng)建SQLite用戶信息數(shù)據(jù)庫,創(chuàng)建多個線程,用于語音提醒、更新UI的TableView、更新用戶信息文件和數(shù)據(jù)庫、更新用戶數(shù)據(jù)文件、5個線程用于訂閱用戶發(fā)布的信息,較單線程訂閱更具有數(shù)據(jù)的可靠性和魯棒性,盡可能地不丟失用戶的緊急情況信息。用戶注冊流程是當用戶下位機Flash當中沒有用戶信息、主題信息時,用戶通過串口助手輸入用戶信息,填好用戶信息后按下按鍵,通過藍牙發(fā)送到系統(tǒng)母板,系統(tǒng)母板將信息通過ESP8266發(fā)送到EMQX平臺,上位機收到信息后存入數(shù)據(jù)庫,并分配給該用戶唯一的主題,發(fā)送該主題到下位機,下位機將保存該主題到Flash中,保證斷電后不丟失信息。
下位機分為手環(huán)板和系統(tǒng)母板,系統(tǒng)母板用于檢測室內(nèi)有害氣體濃度、室內(nèi)溫度,連接MQTT云平臺,藍牙模組用于連接手環(huán)板。手環(huán)板Flash存儲用戶信息,板載有MAX30102心率血氧飽和值采集傳感器、MPU6050六軸傳感器、低功耗藍牙模組、LCD、鋰電池充電電路。當手環(huán)板采集到異常數(shù)據(jù)或系統(tǒng)母板采集到異常數(shù)據(jù),將通過ESP8266發(fā)送MQTT給云平臺EMQX,上位機收到數(shù)據(jù)后將語音播報用戶地址、姓名以及異常數(shù)據(jù),根據(jù)異常數(shù)據(jù),社區(qū)人員也可以通過地圖查看該用戶所在地址的具體位置,系統(tǒng)總框架如圖1所示。
2" 手環(huán)板軟硬設計
手環(huán)板主控使用的是STM32F411CEU6,板載有六軸加速度傳感器MPU6050、心率血氧傳感器MAX30102、低功耗藍牙模組HLK-B40、CP2102電路、鋰電池及充電電路、LCD顯示電路、LDO降壓電路,MPU6050以及MAX30102是主控通過IIC進行通信,LCD是主控通過SPI進行通信,藍牙模組是主控通過串口進行通信,手環(huán)硬件框架如圖2所示。
2.1" 姿態(tài)傳感器MPU6050處理邏輯
MPU6050是IIC設備,其處理邏輯流程如圖3所示。為了能夠使用MPU6050內(nèi)置的DMP,需要對DMP進行初始化,DMP是基于硬件的算法,可以自動修正2種傳感器的偏差和誤差,保證數(shù)據(jù)精度,同時將陀螺儀的角速度測量結(jié)果與加速度計測得的距離信息相結(jié)合,使用冗余來校正測量誤差,并且消除因傳感器震蕩和溫度和噪聲導致的誤差。通過運算即可得到ax、ay、az、gx、gy、gz,并計算得到加速度矢量和的值SVM,如公式(1)所示。
SVM=ax2+ay2+az2(1)
2.2" 心率血氧傳感器MAX30102邏輯處理
當手指放在傳感器上方時,微處理器通過IIC協(xié)議讀取MAX30102的反射光變化值,經(jīng)過濾波和去噪算法,獲取高質(zhì)量的心率和血氧飽和值數(shù)據(jù)。
心率采集運算:在微處理器中的中斷回調(diào)函數(shù)中可以獲取經(jīng)過去噪濾波后的心率值,并將其依次放入數(shù)組,當元素個數(shù)超過設定好的CACHE數(shù)時,將從該心率數(shù)組中找出極值點的距離,在數(shù)組中找出2個波峰之間的距離(波峰對應的數(shù)據(jù)表現(xiàn)出較大的值),這個距離就是該部分心率檢測數(shù)據(jù)的周期長度。假設該周期長度的變量名為temp,根據(jù)公式 3000/temp 計算出心率值。
血氧采集運算:在微處理器中的中斷回調(diào)函數(shù)中可以獲取經(jīng)過去噪濾波后的光強度信號,并將其依次放入ir_input_data數(shù)組以及red_input_data,遍歷輸入的ir_input_data和red_input_data數(shù)據(jù)序列,通過記錄最大/最小值來確定當前檢測窗口內(nèi)的波峰和波谷。ir_max、ir_min、red_max、red_min分別表示IR和RED數(shù)據(jù)序列小值。根據(jù)公式(2),計算出R值,利用公式(3)可計算出血氧飽和值SpO2。
R=(irmax+ir_min)(redmax-red_min)(redmax+redmin)(irmax-irmin)(2)
SpO2=-45.060R2+30.354+94.845(3)
2.3" 手環(huán)板藍牙接收數(shù)據(jù)處理邏輯
手環(huán)板串口1直連HLK-B40,主要用于前期的調(diào)試和系統(tǒng)母板的通信。上電時,微處理器會讀取目的Flash中是否有主題信息,當存在有主題信息時,處理流程如圖4所示。
3" 系統(tǒng)母板軟硬件
系統(tǒng)母板主控使用的是STM32F411CEU6,板載有DS18B20溫度傳感器、MQ2煙霧傳感器、低功耗藍牙模組HLK-B40、物聯(lián)網(wǎng)模組ESP8266、OLED屏幕、CP2102電路,系統(tǒng)母板的軟件編寫使用的是RT-Thread Studio,RT-Thread支持STM32 HAL,在接入STM32CUBEMX配置硬件的同時,可以使用RT-Thread生態(tài)社區(qū)中豐富的軟件包[6]。其硬件框架如圖5所示。
3.1" 有害氣體傳感器MQ2線程數(shù)據(jù)處理
計算RS須要加入MQ2 傳感器上的電阻器電阻值RL,計算公式如下。
RS=(3.3f-Smog_Get_Vol)Smog_Get_Vol·RL(4)
求出RS后,可求出空氣中的有害氣體濃度PPM(百萬分之一),計算PPM須要加入RS、空氣中特定氣體(通常為可燃氣體)的電阻值R0,計算公式如下。
PPM=98.322f·PowRSR0,-1.458f(5)
3.2" 溫度傳感器DS18B20線程數(shù)據(jù)處理
使用RT-Thread提供的DS18B20軟件包,可以快速配置DS18B20,只需輸入代碼#define DS18B20_DATA_PIN GET_PIN(B, 12),即可完成指定GPIO的連接。
3.3" 系統(tǒng)母板藍牙線程數(shù)據(jù)處理
系統(tǒng)母板藍牙主要用于接收手環(huán)板所測數(shù)據(jù)、系統(tǒng)母板板載傳感器數(shù)據(jù)、手環(huán)板注冊信息等。當系統(tǒng)母板上電時,當前主題使用的是默認主題mqtt/1_P以及mqtt/1_P/watch,MQTT_PUBLIC對應的是mqtt/1_P,MQTT_DEFAULT_SUBTOPIC對應的是mqtt/1_P/watch。手環(huán)板上電后,發(fā)送手環(huán)板Flash存儲的主題信息,之后系統(tǒng)母板是以手環(huán)板發(fā)送過來的主題信息作為發(fā)布的主題以及訂閱的主題,具體流程如圖6所示。
4" 上位機軟件開發(fā)
上位機通過PYQT5進行開發(fā),MQTT Broker平臺使用EMQX平臺,它支持規(guī)?;疻ebSockets和MQTT協(xié)議客戶端接入,并能夠支持上百萬的并發(fā)連接。操作界面設計如圖7所示,異常數(shù)據(jù)列表如圖7中的彈窗所示。
4.1" 上位機訂閱主題
下位機在注冊用戶信息后會分配有一個主題,主題為mqtt/xx_P,xx為分配后的序號,上位機通過開辟5個線程來監(jiān)聽mqtt/+主題,使用多線程監(jiān)聽主題會出現(xiàn)多個線程同時接收到下位機發(fā)送到EMQX的消息,此時通過使用不帶群組的共享訂閱$queue這一機制,可以使得在使用多線程監(jiān)聽的同時,有且只有一個線程能夠收到從下位機發(fā)送到EMQX的消息,當沒有Subscriber訂閱某個Topic時,$queue隊列可以用來臨時存儲消息,以防止消息丟失。
由于下位機是通過JSON格式的數(shù)據(jù)發(fā)布到云平臺,上位機可以通過訂閱主題獲取數(shù)據(jù),并將原始數(shù)據(jù)轉(zhuǎn)為字典型數(shù)據(jù),并通過Python獲取鍵值對的方式取到數(shù)據(jù)。
4.2" 上位機發(fā)布主題
上位機僅在下位機發(fā)送注冊信息或是下位機發(fā)送獲取時間指令的時候,才會向主題發(fā)布信息。當下位機發(fā)布“time”,上位機將會獲取本地時間,以%Y%m%d%H%M%S的形式獲取時間,并發(fā)布該時間數(shù)據(jù),用于下位機的時間更新。
5" 系統(tǒng)測試與分析
根據(jù)本次系統(tǒng)的硬件設計,手環(huán)和母板硬件實物如圖8所示。
5.1" DS18B20測試
本次DS18B20測試分別在室內(nèi)、室外和有空調(diào)的室內(nèi)進行測試,DS18B20數(shù)據(jù)測試結(jié)果如表1所示。實測室內(nèi)溫度與DS18B20所測誤差在1 ℃范圍內(nèi),在無空調(diào)的情況下溫度誤差較大。后續(xù)可以將DS18B20遠離這2個發(fā)熱元器件,且在DS18B20附近不進行鋪銅處理,減少板端溫度對DS18B20的影響。
5.2" MQ2測試
煙霧傳感器MQ-2是通過微處理器讀取AO的電壓值,之后經(jīng)過換算可以得出PPM(百萬分之一)的有害氣體濃度值。軟件上,當MQ2傳感器濃度到達設定閾值(30)以上,蜂鳴器將會持續(xù)蜂鳴直至室內(nèi)有害氣體濃度降低至閾值以下,若有害氣體濃度值超過閾值30 s,系統(tǒng)將會通知社區(qū)管理人員。具體數(shù)據(jù)如表2所示。
5.3" 水流量檢測傳感器測試
水流量檢測傳感器通過采用傳感器轉(zhuǎn)子高低電平的切換次數(shù)來確定當前用水量。根據(jù)該傳感器的介紹可知,流經(jīng)該傳感器1 L水會產(chǎn)生300個脈沖信號,可用于測水流量。
5.4" 心率血氧傳感器MAX30102測試
由于技術原因,MAX30102無法測量手腕的心率、血氧飽和值,即使可以測,但是測量并不準確,故此次測試使用的是手指指尖處進行測量,測量時須保持靜坐,確保采集到的數(shù)據(jù)真實可靠,查看此次測試數(shù)據(jù)結(jié)果使用的工具是Serial Studio串口工具。測試結(jié)果如表3所示。
5.5" MPU6050跌倒測試
通過MPU6050實時采集手環(huán)的加速度數(shù)據(jù),通過定時器定時采集三軸加速度的矢量和,手環(huán)在不遇到強烈沖擊時不會觸發(fā)跌倒報警,當該矢量和數(shù)值超過一定閾值時將會觸發(fā)跌倒報警,手環(huán)板上用于檢測跌倒報警的LED亮,老人可以按下手環(huán)上的按鍵1、按鍵2、按鍵3取消跌倒報警,測試結(jié)果如表4所示。
通過以上測試可知,僅使用MPU6050用于檢測老人是否跌倒的準確率不高,會出現(xiàn)誤檢測的情況,快速擺手會使得MPU6050的加速度矢量和增加,會
讓系統(tǒng)誤認為老人跌倒,故在誤識別的情況下,老人可以通過按下手環(huán)板上的按鍵取消發(fā)送跌倒信號到系統(tǒng)母板。如果老人沒注意到手環(huán)板上的LED,系統(tǒng)母板的蜂鳴器也會提醒老人;如果沒有跌倒,會給老人30 s的時間來取消跌倒信號發(fā)送到上位機;如果期間沒有按鍵按下,上位機將會收到老人異常情況的信息,社區(qū)功能人員則能夠第一時間到達老人住宅。
6" 結(jié)語
本設計采用了上位機人機交互界面、數(shù)據(jù)存儲數(shù)據(jù)庫,結(jié)合下位機傳感器數(shù)據(jù)采集完成了社區(qū)獨居老人健康檢測系統(tǒng)的設計指標。實現(xiàn)了心率血氧飽和值的檢測、跌倒檢測、室內(nèi)溫度檢測、室內(nèi)用水量檢測、室內(nèi)有害氣體濃度檢測,可實時采集用戶的異常數(shù)據(jù),異常數(shù)據(jù)存儲在文本文件中,用戶信息存儲在SQLite數(shù)據(jù)庫中。
本設計的優(yōu)點有成本低、安全性高、可靠性強;整個系統(tǒng)操作簡單,用戶使用界面簡潔直觀。彌補了目前社區(qū)獨居老人健康檢測系統(tǒng)的缺點,在更快讓老年人上手的同時降低了設計成本。
參考文獻
[1]吳昊,唐忠.基于物聯(lián)網(wǎng)技術的廣西城鎮(zhèn)智慧居家養(yǎng)老服務體系構(gòu)建[J].數(shù)字技術與應用,2023(4):102-104.
[2]李嘉欣.住區(qū)配建社區(qū)養(yǎng)老服務設施適應性設計研究[D].大連:大連理工大學,2022.
[3]陳杰,張宇,石曼卿.當前居家社區(qū)養(yǎng)老服務體系存在的短板與創(chuàng)新:兼論“社區(qū)+物業(yè)+養(yǎng)老服務”模式推廣問題[J].行政管理改革,2022(6):84-93.
[4]趙光輝,曲慧娟.NB-IoT技術在智慧社區(qū)中的應用[J].智能建筑與智慧城市,2022(6):162-165.
[5]王錦濤.基于MQTT的物聯(lián)網(wǎng)設備接入及云上監(jiān)控系統(tǒng)研究[D].西安:西安工業(yè)大學,2021.
[6]羊月祺.基于物聯(lián)網(wǎng)的醫(yī)療設備運行環(huán)境與狀態(tài)監(jiān)測系統(tǒng)設計與實現(xiàn)[D].南京:東南大學,2019.
(編輯" 沈" 強)
Smart community elderly care monitoring system
LI" Lianhua1, LU" Sihan2*
(1.Guilin University of Electronic Science and Technology, Guilin 541004, China;
2.Dongguan Yuanfeng Technology Co., Ltd., Dongguan 523000, China)
Abstract:" To solve the problems of health management and safety monitoring for elderly people in the community, this article designs and implements a smart community elderly care monitoring system. The system effectively monitors the indoor environment and water usage of the entire house through indoor detection sensors. The system uses a wristband to real-time detect the elderly’s body posture, determine whether they have fallen, and monitor their heart rate and blood oxygen. By combining the lower computer, EMQX cloud platform, and PYQT upper computer, a smart community elderly care monitoring system with rich functions and simple operation has been created.
Key words: heart rate; blood oxygen; attitude; smart community; retirement