余戰(zhàn)秋
隨著大數(shù)據(jù)時代的到來及無線傳感器網(wǎng)絡(luò)的升級與改進(jìn),網(wǎng)絡(luò)數(shù)據(jù)呈現(xiàn)暴增狀態(tài),數(shù)據(jù)量級達(dá)到海量級別[1-2].又因無線傳感器網(wǎng)絡(luò)結(jié)構(gòu)逐漸復(fù)雜,導(dǎo)致網(wǎng)絡(luò)數(shù)據(jù)采集的難度增大.如何對海量數(shù)據(jù)進(jìn)行采集、挖掘與分析成為現(xiàn)今國家重點(diǎn)課題之一.
針對無線傳感器網(wǎng)絡(luò)數(shù)據(jù)采集存在的不足,相關(guān)學(xué)者進(jìn)行了深入研究.陳琪等[3]提出了無線傳感器網(wǎng)絡(luò)中移動節(jié)點(diǎn)輔助的數(shù)據(jù)采集效率優(yōu)化方法,該算法基于數(shù)據(jù)量將所有節(jié)點(diǎn)均勻劃分成簇,并在簇內(nèi)采用節(jié)點(diǎn)分級的方法進(jìn)行數(shù)據(jù)的多跳傳輸,再使用移動采集器沿著最短路徑訪問簇頭節(jié)點(diǎn),對指定節(jié)點(diǎn)進(jìn)行數(shù)據(jù)集采集.劉強(qiáng)[4]提出了基于后向散射和軟件定義的無線傳感器網(wǎng)絡(luò)通信,其由實(shí)現(xiàn)射頻載波生成、零差檢測和復(fù)雜信息處理的中心Hub及具有載波調(diào)制功能的傳感器構(gòu)成;前者構(gòu)建了軟件定義的收發(fā)器發(fā)送載波、接收來自各個傳感器的反射,提取并處理它們發(fā)送的信息;后者每個傳感器的發(fā)射機(jī)被簡化為一個連接到天線上的晶體管,實(shí)現(xiàn)傳感器的信息被調(diào)制到其唯一的子載波上;進(jìn)而建立起完整的后向散射無線電鏈路通信系統(tǒng),實(shí)現(xiàn)每個傳感器和中心Hub之間的通信.朱曉宇等[5]提出了一種基于Android安全容器的網(wǎng)絡(luò)數(shù)據(jù)采集系統(tǒng),該系統(tǒng)按Android軟件棧的層次順序,分析客戶端與服務(wù)器端間的網(wǎng)絡(luò)數(shù)據(jù)通信過程,找到可供網(wǎng)絡(luò)數(shù)據(jù)采集的入口,結(jié)合Android安全容器實(shí)現(xiàn)自動化的網(wǎng)絡(luò)數(shù)據(jù)采集系統(tǒng).上述方法存在數(shù)據(jù)采集能耗較大、數(shù)據(jù)采集耗時較長、采集數(shù)據(jù)壓縮率過高等問題,導(dǎo)致數(shù)據(jù)采集效果不佳.為解決這些方法存在的不足,本文研究了基于Python的無線傳感器網(wǎng)絡(luò)數(shù)據(jù)采集系統(tǒng),引入Python算法,以期提高無線傳感器網(wǎng)絡(luò)數(shù)據(jù)采集系統(tǒng)的性能.
設(shè)計系統(tǒng)硬件包括數(shù)據(jù)采集芯片選型單元、無線收發(fā)芯片選型單元與串口通訊電路設(shè)計單元.
依據(jù)無線傳感器網(wǎng)絡(luò)數(shù)據(jù)特性,研究選取I-7000系列芯片作為數(shù)據(jù)采集硬件結(jié)構(gòu),見表1.
表1 數(shù)據(jù)采集芯片選型表
I-7000系列芯片之間采用RS-485雙向串行總線進(jìn)行通信,并且依據(jù)數(shù)據(jù)采集的需求,適當(dāng)編程通信速率,其最大值為115.2 Kbps.由于篇幅限制,僅展示I-7060D芯片結(jié)構(gòu),如圖1所示.
圖1 I-7060D芯片結(jié)構(gòu)示意圖
I-7060D芯片具有以下優(yōu)勢:①該芯片采用節(jié)能設(shè)計,能夠有效降低功耗,延長設(shè)備的續(xù)航時間;②I-7060D芯片能夠提供出色的計算和處理性能,滿足多種復(fù)雜應(yīng)用的需求;③該芯片集成了多種功能模塊和接口,例如輸入/輸出接口、傳感器接口等.
上述過程完成數(shù)據(jù)采集芯片的選取,構(gòu)造數(shù)據(jù)采集硬件結(jié)構(gòu),為無線傳感器網(wǎng)絡(luò)數(shù)據(jù)采集的實(shí)現(xiàn)奠定基礎(chǔ)[6].
無線收發(fā)芯片是數(shù)據(jù)采集的始端與終端,是設(shè)計系統(tǒng)關(guān)鍵硬件設(shè)備之一[7].研究選取TI/Chipcon公司生產(chǎn)的CC1110芯片作為無線收發(fā)芯片,結(jié)構(gòu)如圖2所示.
圖2 CC1110芯片結(jié)構(gòu)示意圖
CC1110無線收發(fā)芯片具有以下優(yōu)勢:①CC1110芯片適應(yīng)多種調(diào)制格式,為數(shù)據(jù)緩沖、傳輸?shù)忍峁┲С?;②CC1110芯片成本較低,可以根據(jù)數(shù)據(jù)采集需求配置MCU,使用較為靈活,功耗較低;③CC1110芯片具有多個波段載波頻率,為數(shù)據(jù)采集提供多通道支撐,并容易設(shè)置在其他頻率上,方便無線收發(fā)芯片的配置.此外,CC1110無線收發(fā)芯片損耗較低,休眠模式下,電流損耗為5 mA;運(yùn)行模式下,電流損耗為16 mA.同時,各種模式的切換時間較短,符合設(shè)計系統(tǒng)需求[8].
串口通訊電路是保障設(shè)計系統(tǒng)硬件互相連接的關(guān)鍵,也是實(shí)現(xiàn)數(shù)據(jù)傳輸?shù)闹匾h(huán)節(jié)[9].依據(jù)設(shè)計系統(tǒng)硬件設(shè)備特性,設(shè)計串口通訊電路,如圖3所示.串口通訊電路采用3個電容,初始參數(shù)設(shè)置為0.1 uF,并且電容參數(shù)可依據(jù)實(shí)際情況進(jìn)行適當(dāng)?shù)恼{(diào)整,但必須保障3個電容參數(shù)同時增加或者減少,維持電容比例不變[10].
圖3 串口通訊電路示意圖
設(shè)計系統(tǒng)軟件模塊包括網(wǎng)絡(luò)數(shù)據(jù)挖掘采集框架設(shè)計模塊、采集數(shù)據(jù)壓縮模塊與采集數(shù)據(jù)緩存模塊.
Python語言是使用廣泛的設(shè)計腳本語言之一,具有較好的交互性、解釋性、可讀性和可維護(hù)性,可節(jié)省軟件開發(fā)的時間和成本[11].網(wǎng)絡(luò)數(shù)據(jù)挖掘采集框架中,最關(guān)鍵技術(shù)為scrapy爬蟲技術(shù),是應(yīng)用Python語言開發(fā)并封裝的技術(shù),有效承接了Python語言的獨(dú)特優(yōu)勢,可快速挖掘和采集網(wǎng)絡(luò)數(shù)據(jù).網(wǎng)絡(luò)數(shù)據(jù)挖掘采集框架如圖4所示.
圖4 網(wǎng)絡(luò)數(shù)據(jù)挖掘采集框架圖
結(jié)合圖4的網(wǎng)絡(luò)數(shù)據(jù)挖掘采集框架和Python語言制定無線傳感器網(wǎng)絡(luò)數(shù)據(jù)挖掘采集程序,具體步驟:①應(yīng)用Python配置scrapy爬蟲規(guī)則,初始化爬蟲目標(biāo)[12],啟動爬蟲任務(wù);②加載步驟①設(shè)置的爬蟲目標(biāo),利用調(diào)度器組件對網(wǎng)絡(luò)進(jìn)行調(diào)度;③收到數(shù)據(jù)挖掘采集請求后,爬蟲從指定地址出發(fā)全網(wǎng)搜索,搜索完成后輸出挖掘采集響應(yīng)數(shù)據(jù);④通過Spider中間件將步驟③輸出的響應(yīng)數(shù)據(jù)傳遞給Spiders,啟動回調(diào)函數(shù),統(tǒng)一解析響應(yīng)數(shù)據(jù);⑤加載響應(yīng)數(shù)據(jù)解析后的信息實(shí)體,對其進(jìn)行清洗、驗(yàn)證、持久化等相關(guān)處理;⑥經(jīng)過爬蟲不斷迭代循環(huán)操作,即可完成網(wǎng)絡(luò)數(shù)據(jù)的挖掘采集[13].若滿足迭代循環(huán)停止條件,則輸出網(wǎng)絡(luò)數(shù)據(jù)挖掘采集結(jié)果;未滿足則轉(zhuǎn)至步驟①,繼續(xù)迭代循環(huán).
按上述步驟應(yīng)用Python語言,設(shè)計網(wǎng)絡(luò)數(shù)據(jù)挖掘采集框架,制定網(wǎng)絡(luò)數(shù)據(jù)挖掘采集程序,執(zhí)行程序即可挖掘采集到用戶需求的無線傳感器網(wǎng)絡(luò)數(shù)據(jù)[14].
以上述挖掘采集的網(wǎng)絡(luò)數(shù)據(jù)為基礎(chǔ),應(yīng)用SLIM算法壓縮采集數(shù)據(jù),能夠節(jié)省數(shù)據(jù)存儲空間、降低設(shè)計系統(tǒng)整體能耗[15].SLIM算法主要通過比較兩個扇形區(qū)域,即最后寫入數(shù)據(jù)與最后讀入數(shù)據(jù)的位置關(guān)系決定新數(shù)據(jù)的取舍.扇形區(qū)域斜率上限與下限計算公式為:
以壓縮后的采集數(shù)據(jù)為依據(jù),結(jié)合用戶需求,基于裝載因子制定采集數(shù)據(jù)緩存策略,實(shí)現(xiàn)無線傳感器網(wǎng)絡(luò)數(shù)據(jù)采集.緩存主要為了提高設(shè)計系統(tǒng)的TPS,降低設(shè)計系統(tǒng)的整體能耗[17].裝載因子計算公式為:
為驗(yàn)證設(shè)計系統(tǒng)的網(wǎng)絡(luò)數(shù)據(jù)采集性能,選取基于Android安全容器的網(wǎng)絡(luò)數(shù)據(jù)采集系統(tǒng)[5]作為對比系統(tǒng),該系統(tǒng)按照Android軟件棧的層次順序,分析客戶端與服務(wù)器端之間的網(wǎng)絡(luò)數(shù)據(jù)通信過程,找到可供網(wǎng)絡(luò)數(shù)據(jù)采集的入口,結(jié)合Android安全容器實(shí)現(xiàn)自動化的網(wǎng)絡(luò)數(shù)據(jù)采集系統(tǒng).實(shí)驗(yàn)以數(shù)據(jù)采集耗時、采集數(shù)據(jù)壓縮率、數(shù)據(jù)采集能耗為評價指標(biāo).
實(shí)驗(yàn)準(zhǔn)備是數(shù)據(jù)采集性能測試的有效保障.實(shí)驗(yàn)準(zhǔn)備階段承擔(dān)著實(shí)驗(yàn)對象的選取及其配置的任務(wù).根據(jù)數(shù)據(jù)采集實(shí)驗(yàn)的需求,選取某區(qū)域無線傳感器網(wǎng)絡(luò)作為實(shí)驗(yàn)對象,其結(jié)構(gòu)如圖5所示.
圖5 無線傳感器網(wǎng)絡(luò)結(jié)構(gòu)示意圖
由圖5可知,無線傳感器網(wǎng)絡(luò)結(jié)構(gòu)包含了接收器、互聯(lián)網(wǎng)、管理節(jié)點(diǎn)、傳感器節(jié)點(diǎn)等,其中設(shè)置的傳感器節(jié)點(diǎn)與接收器的比例為5∶2.
以實(shí)驗(yàn)準(zhǔn)備內(nèi)容為依據(jù),進(jìn)行無線傳感器網(wǎng)絡(luò)數(shù)據(jù)采集實(shí)驗(yàn).為直接顯示系統(tǒng)的應(yīng)用性能,選取數(shù)據(jù)采集耗時、采集數(shù)據(jù)壓縮率與數(shù)據(jù)采集能耗作為評價指標(biāo),以下為具體實(shí)驗(yàn)結(jié)果分析過程.
3.2.1 數(shù)據(jù)采集耗時分析
數(shù)據(jù)采集耗時直接反映系統(tǒng)的應(yīng)用效率.一般情況下,數(shù)據(jù)采集耗時越短,表示系統(tǒng)應(yīng)用效率更快;反之,則表示系統(tǒng)應(yīng)用效率更慢.通過實(shí)驗(yàn)獲得數(shù)據(jù)采集耗時數(shù)據(jù)如圖6所示.
圖6 數(shù)據(jù)采集耗時數(shù)據(jù)圖
如圖6,相比對比系統(tǒng),應(yīng)用設(shè)計系統(tǒng)采集數(shù)據(jù)耗時更短,最小值為1.5 min,最高值僅為10.5 min;但對比系統(tǒng)的最低耗時為7.5 min,最高達(dá)17 min,其最大值和最小值均高于設(shè)計系統(tǒng),折線整體高于設(shè)計系統(tǒng),表明設(shè)計系統(tǒng)有效降低了數(shù)據(jù)采集耗時,應(yīng)用效率更高.
3.2.2 采集數(shù)據(jù)壓縮率分析
采集數(shù)據(jù)壓縮率決定著系統(tǒng)存儲空間的利用率.一般情況下,采集數(shù)據(jù)壓縮率數(shù)值越大,表明系統(tǒng)存儲空間利用率越高;反之,則表明系統(tǒng)存儲空間利用率越低.通過實(shí)驗(yàn)獲得的采集數(shù)據(jù)壓縮率數(shù)據(jù)如表2所示.
表2 采集數(shù)據(jù)壓縮率數(shù)據(jù)表
由表2可知,應(yīng)用設(shè)計系統(tǒng)獲得的采集數(shù)據(jù)壓縮率數(shù)值更大,最大值為64.51%,對比系統(tǒng)的最大值僅為31.09%,兩者相差33.42%,因此,設(shè)計系統(tǒng)的存儲空間利用率更高.
3.2.3 數(shù)據(jù)采集能耗分析
數(shù)據(jù)采集能耗大小直接影響系統(tǒng)的應(yīng)用性價比.一般情況下,數(shù)據(jù)采集能耗越小,表明系統(tǒng)應(yīng)用性價比越高;反之,則表明系統(tǒng)應(yīng)用性價比越低.通過實(shí)驗(yàn)獲得數(shù)據(jù)采集能耗數(shù)據(jù)如圖7所示.
圖7 數(shù)據(jù)采集能耗數(shù)據(jù)圖
由圖7可知,應(yīng)用設(shè)計系統(tǒng)獲得的數(shù)據(jù)采集能耗更小,具有一定的穩(wěn)定性,最小值為70 mAh,對比系統(tǒng)的最小值為115 mAh,遠(yuǎn)高于設(shè)計系統(tǒng),故設(shè)計系統(tǒng)的能耗更低,應(yīng)用性價比更高.
研究應(yīng)用Python語言設(shè)計了全新的無線傳感器網(wǎng)絡(luò)數(shù)據(jù)采集系統(tǒng),極大地縮短了數(shù)據(jù)采集耗時,提升了采集數(shù)據(jù)壓縮率,降低了數(shù)據(jù)采集能耗,能夠?yàn)閿?shù)據(jù)采集提供更有效的系統(tǒng)支撐,也為數(shù)據(jù)采集相關(guān)研究提供一定的借鑒與參考.