李 迅,顏曉東,李春華,瞿 盟,郭 鵬
(合肥工業(yè)大學(xué) 計(jì)算機(jī)與信息學(xué)院,安徽 合肥 230601)
隨著社會工作和生活壓力的逐漸增大,很多子女沒有足夠的精力陪伴老人。獨(dú)居老年人作為弱勢群體,迫切需要社會的關(guān)注和關(guān)懷[1-4]。穿戴式硬件設(shè)備的研發(fā)日趨成熟,智慧養(yǎng)老相關(guān)產(chǎn)品更趨向于人性化,但針對老年人的適老性可穿戴產(chǎn)品的軟件平臺仍處于發(fā)展階段,終端產(chǎn)品的易用性不高。通過把可穿戴式設(shè)備與老年人健康監(jiān)測服務(wù)系統(tǒng)結(jié)合起來,能夠更好地對獨(dú)居老人進(jìn)行看護(hù)。當(dāng)前物聯(lián)網(wǎng)硬件產(chǎn)品與互聯(lián)網(wǎng)技術(shù)相結(jié)合已成為趨勢,因此設(shè)計(jì)一款適用于獨(dú)居老人穿戴式設(shè)備的物聯(lián)網(wǎng)軟件十分有必要。
與一般的軟件應(yīng)用相比,物聯(lián)網(wǎng)設(shè)備的軟件系統(tǒng)在數(shù)據(jù)實(shí)時(shí)性、數(shù)據(jù)精準(zhǔn)性、應(yīng)用成本、使用人群等方面有著較大的不同。面向獨(dú)居老人的可穿戴式設(shè)備的軟件系統(tǒng)不需要太多復(fù)雜的功能,而更重要的是硬件和服務(wù)端之間的匹配。鑒于此,本文要實(shí)現(xiàn)的軟件系統(tǒng)有以下需求:
(1)軟件系統(tǒng)的界面設(shè)計(jì)盡量簡潔。復(fù)雜的界面設(shè)計(jì)會降低用戶體驗(yàn),加大操作難度。將軟件界面設(shè)計(jì)得簡潔美觀,會更容易操作。
(2)提供靈活的消息提示機(jī)制。在保證系統(tǒng)可用性的前提下,提供靈活的消息提醒機(jī)制,如APP消息推送、電話提醒、短信提醒、郵箱提醒等,能夠?qū)⒗先说臓顩r進(jìn)行更有效地傳達(dá)。
(3)構(gòu)建更加簡便有效的物模型。物聯(lián)網(wǎng)設(shè)備的物模型主要由三個(gè)要素構(gòu)成:屬性、服務(wù)和事件。本項(xiàng)目對應(yīng)物模型的屬性要素是指用戶可在軟件應(yīng)用中查看當(dāng)前設(shè)備的狀態(tài),支持查詢、修改等功能;服務(wù)要素是指設(shè)備可以被外部的軟件應(yīng)用所調(diào)用的能力或方法;事件要素是指設(shè)備在運(yùn)行時(shí)發(fā)生的可控事件。本文對應(yīng)的設(shè)備物模型如圖1所示。
圖1 面向獨(dú)居老人的可穿戴式設(shè)備的物模型
為了做到高程度的系統(tǒng)復(fù)用、降低運(yùn)維成本,本項(xiàng)目采用前后端分離的B/S架構(gòu):系統(tǒng)后端運(yùn)行在服務(wù)器上,負(fù)責(zé)系統(tǒng)的數(shù)據(jù)交互和存儲;前端開發(fā)使用HTML5 Plus規(guī)范,可以方便地轉(zhuǎn)化為Android、iOS移動(dòng)端APP或小程序來使用,從而減少開發(fā)成本[5]。系統(tǒng)的總體架構(gòu)如圖2所示。
圖2 軟件系統(tǒng)總體架構(gòu)
本項(xiàng)目依據(jù)物聯(lián)網(wǎng)設(shè)備的特性,實(shí)現(xiàn)了基礎(chǔ)功能,并添加了一些特色功能。系統(tǒng)總體實(shí)現(xiàn)了用戶管理、設(shè)備管理、數(shù)據(jù)渲染可視化、閾值報(bào)警、第三方消息推送(短信提醒、電話提醒)、準(zhǔn)確定位六大功能,如圖3所示。
圖3 系統(tǒng)總體結(jié)構(gòu)設(shè)計(jì)
(1)前端開發(fā)環(huán)境
本項(xiàng)目采用了JAVAScript作為前端開發(fā)語言,使用Vue.js響應(yīng)式框架使項(xiàng)目組件化。
(2)服務(wù)端開發(fā)環(huán)境
本項(xiàng)目采用JAVA語言作為服務(wù)端開發(fā)語言,使用Spring Boot作為后端開發(fā)框架[6];與硬件設(shè)備通信方面,采用 了MQTT協(xié) 議(Message Queuing Telemetry Transport, 消息隊(duì)列遙測傳輸協(xié)議),它是一種基于發(fā)布/訂閱(publish/subscribe)模式的輕量級通信協(xié)議;并且使用EMQX作為消息服務(wù)器[7],實(shí)現(xiàn)了MQTT協(xié)議開源且性能優(yōu)越,作為數(shù)據(jù)采集層的核心,它分別與硬件設(shè)備和服務(wù)端進(jìn)行交互,硬件通過MQTT協(xié)議向其發(fā)送消息[8],服務(wù)端通過接口將數(shù)據(jù)保存到服務(wù)端的持久化平臺中。EMQX的使用原理如圖4所示。
圖4 EMQX 工作原理示意圖
本文主要完成了軟件系統(tǒng)中用戶管理、設(shè)備管理、數(shù)據(jù)渲染和計(jì)算、閾值報(bào)警和消息推送的設(shè)計(jì)任務(wù)。系統(tǒng)的整體功能界面如圖5所示。
圖5 系統(tǒng)界面效果
2.4.1 用戶管理模塊
用戶管理模塊包括用戶注冊、用戶授權(quán)、用戶登錄、用戶信息管理功能。首先進(jìn)行用戶注冊[9]、用戶登錄后,可對設(shè)備進(jìn)行管理;用戶信息管理功能指用戶可進(jìn)行信息修改,包括修改密碼和手機(jī)號碼等,便于接收第三方平臺的通知等。具體實(shí)現(xiàn)效果如圖6所示。
圖6 用戶模塊
2.4.2 設(shè)備管理模塊
設(shè)備管理模塊包括設(shè)備連接控制、設(shè)備狀態(tài)查看、報(bào)警閾值設(shè)置,如圖7所示。在軟件上,可以實(shí)時(shí)查看設(shè)備連接的狀態(tài);對設(shè)備監(jiān)測數(shù)據(jù)報(bào)警閾值進(jìn)行設(shè)置,服務(wù)端監(jiān)測到設(shè)備發(fā)送的數(shù)據(jù)持續(xù)不符合規(guī)定數(shù)值時(shí),依托第三方應(yīng)用提供的服務(wù),向用戶及時(shí)推送報(bào)警信息。
圖7 設(shè)備管理模塊
2.4.3 數(shù)據(jù)可視化模塊
數(shù)據(jù)可視化模塊用于對服務(wù)器端數(shù)據(jù)進(jìn)行渲染,形成動(dòng)態(tài)圖表,直觀地查看老人的實(shí)時(shí)狀況,如圖8所示。
圖8 可視化模塊效果展示
2.4.4 地圖定位模塊
地圖定位模塊采用uni-app的地圖定位功能,設(shè)備通過發(fā)送位置信息給服務(wù)端,前端向服務(wù)端請求數(shù)據(jù),對老人的位置進(jìn)行定位,并且可以導(dǎo)航,準(zhǔn)確知曉老人位置。地圖定位功能效果如圖9所示。
圖9 地圖精準(zhǔn)定位效果展示
2.5.1 數(shù)據(jù)采集和存儲性能問題解決瓶頸的分析及優(yōu)化思路
當(dāng)硬件設(shè)備數(shù)量增多,同時(shí)向EMQX消息服務(wù)器發(fā)布消息時(shí),可能出現(xiàn)服務(wù)端數(shù)據(jù)處理量驟增的情況,將占用服務(wù)器大量的內(nèi)存,并出現(xiàn)請求阻塞、超時(shí)等問題[10]。服務(wù)端收到數(shù)據(jù),需將數(shù)據(jù)解碼存入數(shù)據(jù)庫,這是一個(gè)非常耗時(shí)的操作。當(dāng)連接數(shù)量越來越多時(shí),傳感器發(fā)布的消息也越來越多,這就成為了性能提升的瓶頸。本項(xiàng)目采用消息隊(duì)列進(jìn)行異步操作的思路:讓獲取消息的方法不直接處理消息,而是作為消息中轉(zhuǎn)站,接收到消息后直接轉(zhuǎn)發(fā)出去,在其他地方對消息進(jìn)行處理。
2.5.2 頻繁使用設(shè)備信息的解決方案
針對采集后的數(shù)據(jù),首先要查詢對應(yīng)的設(shè)備信息,再存入數(shù)據(jù)庫中。設(shè)備的采集頻率相對較高,但設(shè)備信息通常不會改變,頻繁地查詢造成了較多的資源消耗。此外,數(shù)據(jù)還需與閾值進(jìn)行比較,而每個(gè)傳感器的閾值基本固定不變,重復(fù)查詢會降低響應(yīng)速度。本項(xiàng)目的解決方法是:將這些頻繁使用且基本不變的數(shù)據(jù)進(jìn)行緩存,提高查詢速度。當(dāng)設(shè)備連接成功時(shí),將信息緩存;當(dāng)需要修改時(shí),則將該數(shù)據(jù)刪除。使用這些數(shù)據(jù)時(shí),先從緩存中查詢,若得到結(jié)果則直接使用;如果沒有查詢到該數(shù)據(jù),則到數(shù)據(jù)庫中查詢,并將數(shù)據(jù)進(jìn)行緩存。
隨著中國人口老齡化形勢日趨嚴(yán)峻,獨(dú)居老人逐漸得到社會的關(guān)注。本文實(shí)現(xiàn)的面向獨(dú)居老人的可穿戴式看護(hù)設(shè)備的軟件平臺,基本能夠?qū)崿F(xiàn)智能看護(hù)老人的功能,在一定程度上減少了老人安全事故的發(fā)生,起到看護(hù)和及時(shí)預(yù)警作用,應(yīng)用價(jià)值和成果推廣前景較為可觀。作為與物聯(lián)網(wǎng)硬件設(shè)備搭配使用的軟件平臺,本項(xiàng)目從用戶體驗(yàn)和可用性出發(fā),實(shí)現(xiàn)了5個(gè)基本模塊:用戶管理、設(shè)備管理、數(shù)據(jù)可視化展示、地圖精準(zhǔn)定位以及消息推送模塊。這些模塊相互協(xié)作,滿足了基本需求,能夠較好地配合硬件平臺的工作,在解決獨(dú)居老人的遠(yuǎn)程看護(hù)問題時(shí)有著重要的現(xiàn)實(shí)意義。