葉 貴,張林靜
(安徽警官職業(yè)學(xué)院 信息管理系,合肥 230031)
隨著物聯(lián)網(wǎng)、大數(shù)據(jù)、人工智能技術(shù)的快速發(fā)展,誕生了各種應(yīng)用產(chǎn)品應(yīng)用在人們的日常生活中?,F(xiàn)在社會(huì)中出現(xiàn)了很多關(guān)于智能家居的產(chǎn)品,其中包括了各種家電,常見的有智能電視、音響、空調(diào)、冰箱、電燈等,都會(huì)給我們帶來很多的便利。根據(jù)調(diào)查顯示,人們每天在室內(nèi)的生活時(shí)間,大概占到一天總時(shí)間的90%以上。根據(jù)世界衛(wèi)生組織報(bào)告,人類感染疾病與室內(nèi)環(huán)境質(zhì)量有密切相關(guān)。文獻(xiàn)[1]研究,發(fā)現(xiàn)了關(guān)于室內(nèi)環(huán)境的污染源預(yù)測(cè),室內(nèi)環(huán)境對(duì)人們身體健康影響極大,因此對(duì)室內(nèi)環(huán)境質(zhì)量的研究具有重要意義。該系統(tǒng)是一款智能硬件設(shè)備,采集數(shù)據(jù)、數(shù)據(jù)傳輸、數(shù)據(jù)的融合與分析,利用無線傳感器網(wǎng)絡(luò)節(jié)點(diǎn)的部署到室內(nèi),并通過傳感器采集室內(nèi)的環(huán)境物理信息[2-3],進(jìn)而對(duì)數(shù)據(jù)進(jìn)行相應(yīng)的處理和分析,最后可以實(shí)時(shí)得出室內(nèi)環(huán)境的動(dòng)態(tài)變化情況,并且可以預(yù)測(cè)出一天中每個(gè)時(shí)間段的環(huán)境信息的變化情況,并將其分析結(jié)果實(shí)時(shí)反饋給用戶,提醒用戶當(dāng)前的室內(nèi)環(huán)境狀況。很好地給用戶掌握室內(nèi)環(huán)境的各物理信息的指標(biāo),從而極大地提高了室內(nèi)的環(huán)境質(zhì)量[4-7],保證了人們的身體健康。
實(shí)時(shí)獲取室內(nèi)環(huán)境信息,并對(duì)得到的多元數(shù)據(jù)進(jìn)行融合處理并通過多元線性回歸算法分析和預(yù)測(cè),將當(dāng)前的室內(nèi)環(huán)境空氣質(zhì)量實(shí)時(shí)顯示給用戶,從而大大降低了室內(nèi)環(huán)境對(duì)人們?cè)斐傻纳眢w危害程度,保證了人們?cè)谑覂?nèi)有一個(gè)舒適健康的環(huán)境指標(biāo)。因此,對(duì)該課題的研究具有重要的意義。
該系統(tǒng)的設(shè)計(jì)主要包括3部分:無線傳感器節(jié)點(diǎn)、協(xié)調(diào)器和多元數(shù)據(jù)融合算法模塊。該系統(tǒng)的設(shè)計(jì)系統(tǒng)架構(gòu)如圖1所示。該系統(tǒng)采用ZigBee無線通信技術(shù)用于系統(tǒng)的組網(wǎng)和通信基礎(chǔ),并利用各類傳感器進(jìn)行室內(nèi)環(huán)境數(shù)據(jù)的采集,將各類數(shù)據(jù)經(jīng)過無線傳感器網(wǎng)絡(luò)節(jié)點(diǎn)進(jìn)行數(shù)據(jù)傳輸?shù)絽f(xié)調(diào)器,最后傳回到云端,在云端進(jìn)行數(shù)據(jù)處理和多元數(shù)據(jù)的融合,將幾種數(shù)據(jù)進(jìn)行融合分析,最終得到對(duì)室內(nèi)環(huán)境的評(píng)價(jià)指標(biāo)。
圖1 系統(tǒng)結(jié)構(gòu)圖
通過與藍(lán)牙、wifi等相關(guān)的無線通信技術(shù)對(duì)比,選擇ZigBee做為本系統(tǒng)的設(shè)計(jì)基礎(chǔ),因?yàn)槠渚哂幸韵聨追N優(yōu)點(diǎn):
1)抗干擾力強(qiáng):采用基于IEEE802.15.4的通信協(xié)議,ZigBee收發(fā)模塊使用的是2.4G直序擴(kuò)頻技術(shù),具有更好的抗干擾能力;
2)傳輸距離:傳輸距離相對(duì)于藍(lán)牙和wifi具有較遠(yuǎn)點(diǎn)的距離;
3)低功耗:無線模塊自動(dòng)每隔一段時(shí)間,如果沒有收到網(wǎng)關(guān)指令,就進(jìn)入休眠狀態(tài);
4)組網(wǎng)靈活:ZigBee是自組網(wǎng)方式進(jìn)行組網(wǎng),可以是樹狀、網(wǎng)狀、星狀不同形式;
5)傳輸速度快:ZigBee傳輸數(shù)據(jù)主要是采用短幀傳送方式,因此,傳輸數(shù)據(jù)速度快,實(shí)時(shí)性強(qiáng);
6)魯棒性高:ZigBee組網(wǎng)容易且靈活,如果某一個(gè)節(jié)點(diǎn)斷電或損壞,整個(gè)網(wǎng)絡(luò)可以自動(dòng)恢復(fù)組網(wǎng)方式。
該系統(tǒng)主要分為無線傳感器節(jié)點(diǎn)、協(xié)調(diào)器、數(shù)據(jù)融合3部分。
1)無線傳感器終端節(jié)點(diǎn):該無線傳感器節(jié)點(diǎn)采用開源的ZigBee通信技術(shù)[8],并使用是德州儀器的Z-Stack半開源的協(xié)議棧[12-14],對(duì)其應(yīng)用層進(jìn)行相應(yīng)的開發(fā),我們知道ZigBee具有一些優(yōu)點(diǎn),其中包括傳輸距離遠(yuǎn)、低功耗、節(jié)點(diǎn)的組網(wǎng)靈活。其中傳感器包括了PM2.5傳感器、VOCs傳感器及DHT11溫濕度傳感器。這些傳感器都與終端相連,并由終端的CC2530芯片對(duì)其進(jìn)行控制。PM2.5傳感器采集室內(nèi)的細(xì)微顆粒的濃度。
VOCs傳感器是采集室內(nèi)有機(jī)氣體的濃度;溫濕度采集室內(nèi)溫度和濕度情況。該CC2530芯片對(duì)和傳感器的連接方式[9-11]如圖2所示。
圖2 節(jié)點(diǎn)硬件示意圖
2)協(xié)調(diào)器:協(xié)調(diào)器是系統(tǒng)的無線通信網(wǎng)絡(luò)模塊的核心,主要是傳輸數(shù)據(jù)和組網(wǎng)的紐帶,其組網(wǎng)采用了星型網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu),有4個(gè)終端與一個(gè)協(xié)調(diào)器進(jìn)行組網(wǎng)。并將獲取到的數(shù)據(jù)通過協(xié)調(diào)器和串口線與電腦端的用戶軟件通信,而無線傳感器節(jié)點(diǎn)的終端都是采用ZigBee無線通信技術(shù)進(jìn)行通信。在這里,協(xié)調(diào)器啟動(dòng)必須首先啟動(dòng),進(jìn)而各個(gè)終端部分開始啟動(dòng),只用這種方式,系統(tǒng)的組網(wǎng)才是成功的,不然會(huì)失敗,這是由ZigBee通信協(xié)議所決定。
多元數(shù)據(jù)融合:將4類傳感器采集的數(shù)據(jù)進(jìn)行融合得到結(jié)果。本文考慮到系統(tǒng)的實(shí)時(shí)性和有效性采用多元線性回歸算法對(duì)數(shù)據(jù)進(jìn)行建模,并對(duì)數(shù)據(jù)進(jìn)行預(yù)測(cè)和判別不同顯著性因素的影響。
另一方面,將數(shù)據(jù)進(jìn)行有效分析處理的用戶軟件界面應(yīng)用。其中驅(qū)動(dòng)應(yīng)用軟件,是對(duì)CC2530芯片與傳感器的相關(guān)應(yīng)用,其中包括對(duì)傳感器的控制和數(shù)據(jù)采集的邏輯業(yè)務(wù)軟件。還包括對(duì)Z-Stack協(xié)議棧的開發(fā),主要是負(fù)責(zé)對(duì)數(shù)據(jù)的發(fā)送和接受相關(guān)業(yè)務(wù)應(yīng)用的軟件。
本系統(tǒng)主要是采集室內(nèi)4個(gè)地方的環(huán)境,分別是客廳、臥室、廚房和衛(wèi)生間,每個(gè)場(chǎng)地部署若干個(gè)無線傳感器終端節(jié)點(diǎn)進(jìn)行室內(nèi)環(huán)境數(shù)據(jù)的采集。
本章主要對(duì)系統(tǒng)的硬件和軟件以及在多元數(shù)據(jù)融合3個(gè)方面進(jìn)行詳細(xì)地說明。首先,系統(tǒng)的硬件設(shè)計(jì)主要描述該系統(tǒng)采用的硬件類型,何如設(shè)計(jì)和工作;其次,軟件設(shè)計(jì)是實(shí)現(xiàn)該工程的應(yīng)用,包括通信協(xié)議棧的使用和傳感器的程序設(shè)計(jì);最后,多元數(shù)據(jù)融合算法本文從多元線性回歸算法[15-19]詳細(xì)介紹。
系統(tǒng)為了組網(wǎng)靈活和低功耗等特點(diǎn),選擇使用ZigBee無線通信技術(shù)作為該系統(tǒng)的通信基礎(chǔ)平臺(tái),由于目前ZigBee應(yīng)用在很多無線傳感器網(wǎng)絡(luò)的應(yīng)用領(lǐng)域中,有著很好的穩(wěn)定性和魯棒性。該系統(tǒng)是采用德州儀器公司生產(chǎn)的CC2530的微控制器作為該系統(tǒng)的主芯片。同時(shí),利用Z-Stack半開源協(xié)議棧,進(jìn)行有效地開發(fā)相應(yīng)的應(yīng)用程序代碼,并且可以熟悉掌握該通信技術(shù)的方式。根據(jù)CC2530芯片手冊(cè),對(duì)其進(jìn)行開發(fā)和外圍電路的設(shè)計(jì)。該芯片是8-bit微控制器采用的類型是CC2530F256,它是8051內(nèi)核,具有flash存儲(chǔ)為256 KB,RAM為8 KB的容量。
該無線傳感器節(jié)點(diǎn)的硬件設(shè)計(jì)如圖3所示,其中包括了主控制單元CC2530、時(shí)鐘電路、電源電路、外圍設(shè)備電路(提供傳感器使用的IO端口)等。
圖3 硬件設(shè)計(jì)示意圖
室內(nèi)環(huán)境的物理信息采集通過不同種類的傳感器,每一種傳感器都是連接到CC2530控制板的GPIO(general-purpose input/output)。通過主控芯片來控制各類傳感器的工作、數(shù)據(jù)采集、傳輸。對(duì)于采集到的不同數(shù)據(jù)進(jìn)行對(duì)應(yīng)的編碼格式,通過Z-stack協(xié)議進(jìn)行傳輸。TJAG (joint test action group)接口模塊是為了給主控芯片下載和調(diào)試程序使用。時(shí)鐘電路模塊是為了讓單片機(jī)按照一定頻率進(jìn)行工作。電源電路則是為了讓每一個(gè)模塊提供電力,不同模塊需要的電路是不一樣的,有的需要3.3 V的電壓供電,有的需要5 V電壓供電。這些電壓都是通過穩(wěn)壓芯片進(jìn)行穩(wěn)壓后才為后續(xù)的每個(gè)模塊使用。傳感器模塊這部門是按照不同類型的傳感器進(jìn)行與主控板的GPIO端口進(jìn)行連接,以及根據(jù)具體需要提供不同的電源。
利用ZigBee無線通信技術(shù)原理和傳感器技術(shù),對(duì)室內(nèi)的環(huán)境信息進(jìn)行采集,并將獲取的數(shù)據(jù)進(jìn)行有效的分析。軟件設(shè)計(jì)主要是利用ZigBee通信技術(shù)的Z-stack通信協(xié)議棧完成的,在該協(xié)議棧中,開發(fā)出屬于本系統(tǒng)的應(yīng)用功能模塊,就可以完成整個(gè)系統(tǒng)的功能。主要是對(duì)不同傳感的的初始化和采集數(shù)據(jù)以及控制其采集編碼方式等。軟件的整個(gè)偽代碼如下所示:
相關(guān)軟件實(shí)現(xiàn)的偽代碼
PROCEDUER BeginHW_INIT();Sensor_Init();While(true) doSample_APP();Z_stack_Func();AF_DataRequest();zb_SendDataRequest ();End while;End;
CC2530主控板單片機(jī)的通信應(yīng)用類軟件是采用IAR工具進(jìn)行程序編寫、編譯、調(diào)試、燒錄的。主要是在Z-stack通信協(xié)議棧進(jìn)行的應(yīng)用程序的開發(fā),其中就包括各種傳感器的初始化、數(shù)據(jù)采集的相關(guān)代碼的實(shí)現(xiàn),最終由協(xié)議棧完成數(shù)據(jù)的路由與發(fā)送到協(xié)調(diào)器,然后協(xié)調(diào)器連接到電腦端,通過串口進(jìn)行傳輸采集到的數(shù)據(jù)。
此外,還有另外一部分軟件是對(duì)數(shù)據(jù)處理、分析以及訓(xùn)練的代碼,該部分的代碼在后序進(jìn)行詳細(xì)介紹。
對(duì)于n維特征的樣本數(shù)據(jù),使用多元線性回歸,那么對(duì)應(yīng)的模型可以用公式(1)的形式表示:
Hθ(x1,x2,…,xn)=θ0+θ1x1+θ2x2+…+θnxn
(1)
可以把公式(1)簡(jiǎn)寫成下公式(2):
(2)
其中:x0=1。對(duì)于樣本采集的數(shù)據(jù)可以用矩陣X表示維度為m×n,參數(shù)θ表示維度為n×1,則公式(1)可以采用Hθ(X)=X*θ代替。在使用該模型的時(shí)候,其損失函數(shù)一般采用均方誤差作為損失函數(shù),這樣可以有效地求解出模型的最優(yōu)解。
損失函數(shù)可以用公式(3)表示:
(3)
同理,可以將公式(3)表示為矩陣的形式,如公式(4)所示:
(4)
在計(jì)算最優(yōu)解采用梯度下降法或者采用最小二乘法來求解多元線性回歸的解,梯度下降法其優(yōu)化函數(shù)如公式(5)表示:
θt+1=θt-αXT(θX-Y)
(5)
其中:α為學(xué)習(xí)步長(zhǎng)也被稱為學(xué)習(xí)率。最小二乘法優(yōu)化函數(shù)如公式(6)表示:
θ=(XTX)-1(XT-Y)
(6)
通過4類不同的傳感器對(duì)室內(nèi)環(huán)境數(shù)據(jù)采集,分別采集溫度、濕度、PM2.5、VOCs 共4種不同的室內(nèi)空氣環(huán)境的數(shù)據(jù)信息。實(shí)驗(yàn)地點(diǎn)分別在客廳、臥室、廚房和衛(wèi)生間,各放置3個(gè)無線傳感器終端節(jié)點(diǎn),每一個(gè)終端節(jié)點(diǎn)都具備4種物理信息的采集、發(fā)送功能,經(jīng)過一個(gè)月時(shí)間的采集收集,并對(duì)數(shù)據(jù)進(jìn)行有效的分析處理。同時(shí),采用多元線性回歸算法對(duì)數(shù)據(jù)進(jìn)行擬合,求出最優(yōu)解,最終可以得出多元線性回歸模型并預(yù)測(cè)得到室內(nèi)環(huán)境的信息。
對(duì)于數(shù)據(jù)的采集如圖4所示,分別是客廳、臥室、廚房、衛(wèi)生間的平均值的分布,每20分鐘采樣記錄一次當(dāng)前的數(shù)據(jù)。圖中顯示的是計(jì)算的是每小時(shí)內(nèi)采集的3次的平均值,再對(duì)室內(nèi)的每個(gè)位置的3個(gè)終端節(jié)點(diǎn)采集的溫度、濕度、PM2.5、VOCs的數(shù)值平均。
由圖4可以觀察到,其中廚房的VOCs的指標(biāo)變化幅度比較大,對(duì)于衛(wèi)生間的濕度變化且平均值較高,臥室的溫度較穩(wěn)平穩(wěn),客廳的各項(xiàng)指標(biāo)都有所變化。這些指標(biāo)也正說明了人們生活在室內(nèi)的生活習(xí)慣。做飯時(shí)廚房的VOCs和PM2.5指標(biāo)會(huì)明顯增加,使用衛(wèi)生間時(shí)其濕度變化就會(huì)較為明顯。
圖4 不同場(chǎng)所的各項(xiàng)指標(biāo)的均值分布
本文通過設(shè)計(jì)一套無線傳感器網(wǎng)絡(luò)的系統(tǒng),對(duì)室內(nèi)的各個(gè)位置的室內(nèi)物理信息的采集進(jìn)行數(shù)據(jù)分析,通過多元線性回歸算法對(duì)室內(nèi)的環(huán)境變化進(jìn)行模型的搭建和訓(xùn)練,得到的模型可以預(yù)測(cè)出室內(nèi)各項(xiàng)指標(biāo)的情況。
在數(shù)據(jù)分析過程中,系統(tǒng)主要是采用機(jī)器學(xué)習(xí)框架Scikit-learn包[20-22],并使用python語(yǔ)言實(shí)現(xiàn)代碼。其中對(duì)于室內(nèi)不同的位置進(jìn)行了不同的多元線性回歸的模型構(gòu)建,最后將整個(gè)室內(nèi)的數(shù)據(jù)進(jìn)行多元線性回歸算法的模型構(gòu)建。
多元線性回歸的模型構(gòu)建過程,將不同時(shí)間段作為預(yù)測(cè)用Y表示,各項(xiàng)指標(biāo)的在不同時(shí)間段內(nèi)的平均值用X表示,這樣就可以采用多元線性回歸模型進(jìn)行有效的構(gòu)建,其中在一個(gè)月中的數(shù)據(jù)很多是噪聲數(shù)據(jù)和冗余數(shù)據(jù),因此在數(shù)據(jù)處理之前做一些數(shù)據(jù)預(yù)處理的過程采用歸一化處理,這里采用Z-score標(biāo)準(zhǔn)化的方法,可以使得模型學(xué)習(xí)的收斂速度更快,并提高精度。在使用機(jī)器學(xué)習(xí)框架Scikit-learn包中,用到的主要工具包接口進(jìn)行簡(jiǎn)單介紹如表1所示。
表1 Scikit-learn框架接口
由表1可以看到,在使用Scikit-learn工具包使用主要用到了兩個(gè)API (application programming interface)。其中,用到的一個(gè)是train_test_split接口,這是將數(shù)據(jù)分割為訓(xùn)練集和測(cè)試集兩個(gè)部分,這里的test_size參數(shù)是測(cè)試的所占的比例,這里設(shè)為0.1,則說明測(cè)試集數(shù)據(jù)占10%。另一個(gè)接口是LinearRegression線性回歸,是為了后面數(shù)據(jù)進(jìn)行模型的學(xué)習(xí)。linereg.fit()接口是用來模型訓(xùn)練的。linereg.predict()接口是用來模型測(cè)試。
無線傳感器節(jié)點(diǎn)的部署在4個(gè)位置的數(shù)據(jù)進(jìn)行多元線性回歸擬合,采集得到的不同時(shí)間的各項(xiàng)指標(biāo)的顯著性權(quán)重和RMSE均方根誤差,如表2所示。
表2 不同位置的各項(xiàng)指標(biāo)通過多元線性回歸得到的 顯著性參數(shù)和擬合出的RMSE
根據(jù)采集到的數(shù)據(jù)進(jìn)程數(shù)據(jù)處理、訓(xùn)練,得到對(duì)應(yīng)的模型,用模型進(jìn)行相應(yīng)的測(cè)試,采用均方根誤差作為模型的評(píng)價(jià)指標(biāo)。
根據(jù)多元線性回歸擬合得到的結(jié)果在表3中可以看到,各項(xiàng)均方根誤差都是5%以下,同時(shí)也得到各項(xiàng)指標(biāo)的顯著度因子權(quán)重大小的值。
整個(gè)室內(nèi)環(huán)境的變化可以將所有數(shù)據(jù)合并一起再進(jìn)行多元線性回歸的擬合得到如圖5所示,每項(xiàng)指標(biāo)所得到的分類決策平面。
圖5 各項(xiàng)指標(biāo)的分類決策面
實(shí)驗(yàn)最終得到的結(jié)果如圖6所示,通過一個(gè)月時(shí)間的系統(tǒng)部署所采集的數(shù)據(jù)。將無線傳感器節(jié)點(diǎn)部署在室內(nèi)的4個(gè)地方進(jìn)行采集和實(shí)驗(yàn),對(duì)數(shù)據(jù)進(jìn)行清洗、整理、處理、訓(xùn)練、最終得到的多元線性回歸模型用來做預(yù)測(cè),得到的預(yù)測(cè)值與真實(shí)值的擬合結(jié)果是比較接近,因此本系統(tǒng)的方法適用于室內(nèi)環(huán)境指標(biāo)的預(yù)測(cè)。
圖6 擬合得到的預(yù)測(cè)值結(jié)果
通過得到的模型應(yīng)用于該系統(tǒng)。將無線傳感器節(jié)點(diǎn)部署在室內(nèi)4個(gè)場(chǎng)所,并采集的空氣環(huán)境的各項(xiàng)物理信息進(jìn)行預(yù)測(cè)處理,得到的結(jié)果與實(shí)際采集到的數(shù)值進(jìn)行對(duì)比,能夠較好地對(duì)室內(nèi)各項(xiàng)空氣指標(biāo)的預(yù)測(cè)。
該系統(tǒng)采用無傳感器節(jié)點(diǎn)對(duì)室內(nèi)空氣環(huán)境的四類重要指標(biāo)進(jìn)行數(shù)據(jù)采集,并采用多元線性回歸算法對(duì)數(shù)據(jù)進(jìn)行分析和擬合。該系統(tǒng)是自組網(wǎng),低功耗,同時(shí)具有較好的穩(wěn)定性和魯棒性,并且系統(tǒng)的組網(wǎng)方式多樣,具有自組網(wǎng)能力,傳輸距離遠(yuǎn)、體積小、方便使用的優(yōu)點(diǎn)。
該系統(tǒng)可以實(shí)時(shí)獲取室內(nèi)多種物理信息,并能夠可視化地展現(xiàn)出來,能夠智能化的提醒用戶,某項(xiàng)環(huán)境信息不達(dá)標(biāo)。通過多元線性回歸算法擬合得到的RMSE最大為0.049 5,所有采用該方法能夠很好地?cái)M合出室內(nèi)的各項(xiàng)因素的預(yù)測(cè)。