徐 艇, 張衛(wèi)強(qiáng), 胡建平, 羅健宇, 楊 劍
(寧波大學(xué) 信息科學(xué)與工程學(xué)院,浙江 寧波 315211)
隨著傳感技術(shù)和通信技術(shù)的飛躍式的發(fā)展,當(dāng)養(yǎng)老服務(wù)遇上傳感和通信技術(shù),新的養(yǎng)老看護(hù)系統(tǒng)便由此而生,養(yǎng)老院提供一種更加人性化、智能化、便捷化的監(jiān)護(hù)模式,有利于提升服務(wù)[H1]。目前應(yīng)用比較廣泛的視頻圖像監(jiān)測作為看護(hù)系統(tǒng),似乎是對老人的完全監(jiān)視,但老人的個人隱私無法保障。而可穿戴式室內(nèi)定位設(shè)備[2],容易產(chǎn)生干擾,且給老人帶來不便。
針對以上問題,本文設(shè)計了一種養(yǎng)老院室內(nèi)老人看護(hù)系統(tǒng),該系統(tǒng)結(jié)合定位算法可以將在室內(nèi)坐輪椅的老人進(jìn)行定位并顯示,掌握老人是否在室內(nèi)以及不同時刻的生活狀態(tài),很好地保護(hù)了老人的隱私,同時可采取相應(yīng)控制措施,保證老人室內(nèi)環(huán)境的舒適度,系統(tǒng)有著很好的人性化。
系統(tǒng)架構(gòu)如圖1所示,系統(tǒng)由STM32主控板、ZigBee網(wǎng)絡(luò)定位模塊、WiFi傳輸模塊、傳感器組、繼電器和上位機(jī)組成。其中,4個ZigBee終端和1個ZigBee協(xié)調(diào)器組成無線傳感器網(wǎng)絡(luò),用戶可通過上位機(jī)查看老人在室內(nèi)位置和各傳感器采集的環(huán)境值,也可以通過上位機(jī)下傳指令到ZigBee終端控制繼電器,以此實(shí)現(xiàn)看護(hù)。
圖1 系統(tǒng)架構(gòu)
本文設(shè)計選用基于意法半導(dǎo)體Cortex-M3內(nèi)核的32位STM32F103ZET6微控制器作為核心主控器,該芯片內(nèi)置高速大容量存儲器及豐富的片內(nèi)外設(shè)模塊,性能十分優(yōu)越。
利用ZigBee技術(shù)組建WSNs,本系統(tǒng)選用CC2530模塊作為終端設(shè)備和協(xié)調(diào)器,針對CC2530模塊的RSSI-距離損耗模型在距離過大時誤差變大的情況,選用4個CC2530模塊作為定位的信標(biāo)節(jié)點(diǎn),以此來減小誤差。協(xié)調(diào)器作為移動待定位節(jié)點(diǎn),建立維護(hù)ZigBee網(wǎng)絡(luò),接收信標(biāo)節(jié)點(diǎn)的數(shù)據(jù)包(MAC和RSSI)并傳送至STM32。ZigBee終端設(shè)備作為信標(biāo)節(jié)點(diǎn)加入網(wǎng)絡(luò)并周期性向外發(fā)送數(shù)據(jù)包。
當(dāng)老人在室內(nèi)抽煙時,室內(nèi)煙霧濃度上升,采用氣體傳感器MQ-9對室內(nèi)CO濃度進(jìn)行有效測量??諝庵蠧O氣體會使其電導(dǎo)率發(fā)生改變從而使通過測量電路的電信號發(fā)生改變,經(jīng)單片機(jī)接收轉(zhuǎn)換為可讀取的數(shù)據(jù)。CO2傳感器模塊選用MG811模塊[3],其工作時受溫濕度的影響小,性能穩(wěn)定,憑借其良好的靈敏度可以較好檢測出CO2濃度反映室內(nèi)通風(fēng)情況。酒后呼出的酒精可以用MQ-3乙醇?xì)怏w傳感器來檢測,其工作原理與MQ-9類似。采用BH1750光強(qiáng)度傳感器模塊可檢測室內(nèi)光照強(qiáng)度,該傳感器能有效檢測較大量程范圍內(nèi)的光照變化。
由于定位數(shù)據(jù)與環(huán)境數(shù)據(jù)通過串口的方式發(fā)送給上位機(jī)會帶來拖線移動的麻煩[4],故本設(shè)計選用應(yīng)用較為廣泛的ESP8266 WiFi模塊作為發(fā)送設(shè)備,將處理后數(shù)據(jù)從STM32按TCP/IP協(xié)議發(fā)到上位機(jī)。ESP8266內(nèi)置TCP/IP協(xié)議棧。本文ESP8266的Rx和Tx分別接STM32的UART2_Tx和UART2_Rx。
協(xié)調(diào)器作為移動待定位節(jié)點(diǎn),終端節(jié)點(diǎn)作為固定在室內(nèi)環(huán)境中的信標(biāo)節(jié)點(diǎn),協(xié)調(diào)器周期性輪讀4個ZigBee終端發(fā)送的MAC和RSSI值,通過串口傳遞到STM32單片機(jī),結(jié)合算法處理實(shí)現(xiàn)協(xié)調(diào)器在室內(nèi)的高精度定位,同時STM32單片機(jī)接收來自CO2傳感器、乙醇傳感器、CO傳感器、光強(qiáng)度傳感器采集的數(shù)據(jù),與定位數(shù)據(jù)一起打包,通過WiFi模塊與路由器傳至辦公室上位機(jī)。軟件設(shè)計是整個系統(tǒng)運(yùn)行的核心,主要由以下三部分組成。
3.1.1 協(xié)調(diào)器軟件設(shè)計
在IAR開發(fā)環(huán)境進(jìn)行程序編寫與下載調(diào)試。初始化芯片,當(dāng)協(xié)調(diào)器建立好網(wǎng)絡(luò),且終端設(shè)備成功加入ZigBee網(wǎng)絡(luò)后,黃色LED燈提示亮。當(dāng)終端設(shè)備加入網(wǎng)絡(luò)后則調(diào)用發(fā)送函數(shù)向終端節(jié)點(diǎn)發(fā)送對應(yīng)數(shù)據(jù),若隨后收到終端節(jié)點(diǎn)發(fā)送的數(shù)據(jù),則讀取4個終端設(shè)備各自的MAC地址和RSSI值并往串口發(fā)送。此外,若收到來自STM32控制命令的任務(wù)請求時,協(xié)調(diào)器處理任務(wù)向相應(yīng)終端節(jié)點(diǎn)發(fā)送命令。協(xié)調(diào)器工作流程如圖2(a)所示。
3.1.2 終端節(jié)點(diǎn)軟件設(shè)計
協(xié)調(diào)器成功創(chuàng)建網(wǎng)絡(luò)后,終端節(jié)點(diǎn)發(fā)送申請,請求加入該網(wǎng)絡(luò),成功加入網(wǎng)絡(luò)并收到協(xié)調(diào)器發(fā)送的響應(yīng)后,便通過網(wǎng)絡(luò)周期性地向協(xié)調(diào)器發(fā)送自身且全球唯一的64位MAC地址與RSSI值。此外,當(dāng)收到協(xié)調(diào)器發(fā)送的下發(fā)控制命令后,終端節(jié)點(diǎn)控制繼電器,實(shí)現(xiàn)窗戶、窗簾、燈光和換氣扇的調(diào)節(jié)。終端節(jié)點(diǎn)工作流程如圖2(b)所示。
3.1.3 定位算法設(shè)計
如圖3所示,在定位過程中,將6 m×3 m的臥室分為3 m×3 m的兩個子區(qū)域,原點(diǎn)已標(biāo)明,4個信標(biāo)節(jié)點(diǎn)分別位于矩形每條邊的中點(diǎn),根據(jù)待定位節(jié)點(diǎn)即協(xié)調(diào)器接收到的RSSI值來判斷待定位節(jié)點(diǎn)位于哪個區(qū)域。判斷方法如下:
圖3 定位區(qū)域
1)當(dāng)RSSI1+RSSI2+RSSI3>RSSI4+RSSI2+RSSI3,則待定位節(jié)點(diǎn)位于Ⅰ區(qū)域;
2)當(dāng)RSSI1+RSSI2+RSSI3 由于定位過程中因室內(nèi)非視距、多徑傳輸以及其他環(huán)境因素的影響,導(dǎo)致測距存在誤差,定位精度不夠。故首先要改善RSSI-距離模型,以適應(yīng)該環(huán)境。本文采用Shadowing模型,經(jīng)過簡化處理后的公式為 d=10(A-RSSI)/(10n) (1) 算法先將在臥室內(nèi)多次測量的每個不同距離各自對應(yīng)的RSSI值集進(jìn)行粒子濾波預(yù)處理,隨后將濾波后得到的RSSIM與對應(yīng)距離dM用最小二乘法向式(1)擬合,得到初步擬合公式,然而由于室內(nèi)物體的增多或減少導(dǎo)致的反射、散射干擾以及環(huán)境(如濕度)等因素的改變,由于初步公式對室內(nèi)環(huán)境適應(yīng)性差,通過該初步公式測距,會出現(xiàn)3個圓并不兩兩相交或交疊區(qū)域過大[5],使得加權(quán)三邊質(zhì)心定位算法無法用于實(shí)現(xiàn)定位,故需要進(jìn)行二次擬合以修正公式參數(shù)。修正方法如下: 1)3個大小不同的圓交疊區(qū)域較大,取3個圓兩兩相交而成的6個交點(diǎn)中離待定位點(diǎn)近的3個交點(diǎn)(xi,yj)|(i=1,2,3,j=1,2,3),取3個交點(diǎn)兩兩之間的最短距離α較大但小于0.18 m作為誤差。 2)3個大小不同的圓兩兩相離,但兩圓圓弧與圓弧之間最短距離β小于最小通信半徑作為誤差。 取同時滿足上述2種誤差,修正圓的通信半徑,若超出該誤差范圍,則保留并輸出上一次定位結(jié)果待誤差減小后重新計算定位。修正后有 (2) 以修正后的測距公式得到的3個通信半徑作為半徑,3個圓交疊在一起,交疊區(qū)域選為三角形[6],取d1,d2,d3為3個圓的通信半徑,三角形的3個頂點(diǎn)A,B,C中離信標(biāo)節(jié)點(diǎn)遠(yuǎn)的,就賦予較小的權(quán)值,反之,近的就賦予較大權(quán)值來起主要作用,結(jié)合對待定位點(diǎn)以及三角形在區(qū)域Ⅰ還是Ⅱ的識別,則待定位點(diǎn)的坐標(biāo)所求如下 (3) 式中n=2動態(tài)可調(diào)整系數(shù),影響著權(quán)值。 CO2傳感器,MQ-3乙醇傳感器和MQ-9傳感器的信號輸出通過多通道ADC實(shí)現(xiàn)模/數(shù)轉(zhuǎn)換[7],DMA將數(shù)字信號快速傳到內(nèi)存。BH1750光照傳感器與STM32之間的通信方式選用軟件模擬I2C通信。 STM32與上位機(jī)之間采用TCP/IP協(xié)議進(jìn)行無線通信,在通信前需要通過串口向模塊發(fā)送AT指令的方式來配置工作模式,將ESP8266模塊的工作模式設(shè)置為STA模式,工作流程如圖4所示。 圖4 ESP8266工作流程 上位機(jī)采用圖形化編程語言LabVIEW編寫,通過TCP/IP協(xié)議接收經(jīng)下位機(jī)傳輸過來的數(shù)據(jù)[8],并對數(shù)據(jù)進(jìn)行處理與顯示,上位機(jī)上的按鈕開關(guān)控制終端設(shè)備控制繼電器,幫助老人改善室內(nèi)環(huán)境[9]。監(jiān)控界面如圖5(a)所示,老人的定位數(shù)據(jù)也在界面上顯示,并隨老人的移動而變化。上位機(jī)工作流程如圖5(b)所示。 圖5 上位機(jī)臨控界面與工作流程 實(shí)驗(yàn)在6 m×3 m的臥室內(nèi)進(jìn)行,4個信標(biāo)節(jié)點(diǎn)均離地面一定高度,系統(tǒng)實(shí)物裝在由固定在輪椅上直立桿的較高位置,信標(biāo)節(jié)點(diǎn)與一致高度,以減少人體移動帶來的干擾[10]。 在4個不同時刻所選取的4組室內(nèi)信息如表1所示,分別對應(yīng)著以下4種情形。 表1 4組室內(nèi)信息表 情形1上位機(jī)顯示室內(nèi)空氣中酒精含量比之前1h高,且逐漸升高,老人的輪椅位于餐桌旁,中午老人正在用餐吃飯。 情形2室內(nèi)CO2濃度比前一天傍晚時分高很多,老人輪椅位于床邊,光照強(qiáng)度比戶外低,老人上午還未起床??赏ㄟ^上位機(jī)控制窗簾拉開,也可通風(fēng)。 情形3室內(nèi)CO2濃度很低,光照也強(qiáng)于之前1 h,窗戶打開,老人晨起后離開臥室前往戶外,在老人準(zhǔn)備關(guān)門時被定位。如果老人長時間不回室內(nèi),則需尋找。 情形4室內(nèi)CO濃度很高,下午老人輪椅位于書桌旁,老人邊抽煙邊看報紙。可通過上位機(jī)控制窗戶繼電器的開啟,達(dá)到開窗通風(fēng)。 通過算法的設(shè)計與仿真、硬件系統(tǒng)的搭建與調(diào)試以及軟件的設(shè)計與優(yōu)化,使得基于傳感技術(shù)的室內(nèi)老人看護(hù)系統(tǒng)穩(wěn)定可靠,智能便捷,定位精度高。若增加信標(biāo)節(jié)點(diǎn)個數(shù),再結(jié)合該算法,則會將定位更加精確。該系統(tǒng)的上位機(jī)能直觀顯示室內(nèi)環(huán)境參數(shù)當(dāng)前曲線和歷史參考值,可考慮將老人室內(nèi)信息上傳到云服務(wù)器,實(shí)現(xiàn)老人的子女在工作單位方便查看老人室內(nèi)生活情形,必要時可電話聯(lián)系,提升子女對父母的關(guān)愛度。3.2 環(huán)境值測量軟件設(shè)計
3.3 WiFi傳輸軟件設(shè)計
3.4 上位機(jī)監(jiān)控軟件設(shè)計
4 實(shí)驗(yàn)測試
5 結(jié)束語