摘 要:利用STM32W108平臺(tái)進(jìn)行無(wú)線傳感網(wǎng)的數(shù)據(jù)采集、控制及傳輸,通過(guò)移動(dòng)終端的軟件設(shè)計(jì),可以實(shí)現(xiàn)工業(yè)數(shù)據(jù)的全時(shí)段移動(dòng)監(jiān)測(cè),滿足對(duì)工業(yè)現(xiàn)場(chǎng)的遠(yuǎn)程實(shí)時(shí)監(jiān)測(cè)需求,大大提高了工業(yè)生產(chǎn)管理的效率,減少了巡檢工人的勞動(dòng)強(qiáng)度。
關(guān)鍵詞:無(wú)線傳感網(wǎng);移動(dòng)終端;移動(dòng)應(yīng)用
引言
無(wú)線傳感網(wǎng)絡(luò)是由大量小體積、低成本,具有無(wú)線通信能力、也能采集和處理相關(guān)數(shù)據(jù)的傳感器節(jié)點(diǎn)組成。無(wú)線傳感網(wǎng)絡(luò)涵蓋了多門學(xué)科的理論與技術(shù),因此在各個(gè)領(lǐng)域收到了廣泛的關(guān)注。無(wú)線傳感網(wǎng)絡(luò)的產(chǎn)生和高速發(fā)展得益于現(xiàn)代網(wǎng)絡(luò)技術(shù)、無(wú)線通信技術(shù)、傳感器技術(shù)和嵌入式系統(tǒng)技術(shù)的快速發(fā)展。由于無(wú)線傳感網(wǎng)絡(luò)具備快速獲取信息、精確度高、延時(shí)短等特點(diǎn),因此在軍事、農(nóng)業(yè)、工業(yè)、智能家居、醫(yī)療和環(huán)境監(jiān)控等多個(gè)領(lǐng)域得到了廣泛應(yīng)用。[1][2]
在工業(yè)現(xiàn)場(chǎng)數(shù)據(jù)監(jiān)測(cè)采集這方面,目前我國(guó)大多是采用有線方式,現(xiàn)場(chǎng)需要大量布線,安裝費(fèi)時(shí)費(fèi)力,維護(hù)難度高,成本高,布局固定,這些因素降低了系統(tǒng)的靈活性、擴(kuò)展性和性價(jià)比。
本系統(tǒng)基于Zigbee無(wú)線網(wǎng)絡(luò)技術(shù),利用無(wú)線網(wǎng)絡(luò)節(jié)點(diǎn)組成了工業(yè)數(shù)據(jù)采集系統(tǒng),靈活度高,可隨意更改節(jié)點(diǎn)位置,而無(wú)需擔(dān)心布線和維護(hù)的問(wèn)題,且設(shè)計(jì)并開發(fā)了可應(yīng)用于移動(dòng)終端的軟件,實(shí)現(xiàn)在工業(yè)現(xiàn)場(chǎng)以外也能通過(guò)手機(jī)等便攜設(shè)備實(shí)時(shí)監(jiān)測(cè)工業(yè)現(xiàn)場(chǎng)的數(shù)據(jù)。
1 系統(tǒng)工作原理
本系統(tǒng)由無(wú)線傳感網(wǎng)絡(luò)節(jié)點(diǎn)、無(wú)線傳感網(wǎng)關(guān)、數(shù)據(jù)庫(kù)、移動(dòng)終端等幾部分組成。無(wú)線傳感網(wǎng)絡(luò)節(jié)點(diǎn)是整個(gè)系統(tǒng)的基礎(chǔ),節(jié)點(diǎn)彼此間通過(guò)Zigbee網(wǎng)絡(luò)進(jìn)行數(shù)據(jù)的傳輸,可安置在工業(yè)現(xiàn)場(chǎng),進(jìn)行各種工業(yè)數(shù)據(jù)的采集。采集后的數(shù)據(jù)及時(shí)上傳到無(wú)線網(wǎng)關(guān),經(jīng)過(guò)無(wú)線網(wǎng)關(guān)的處理,將數(shù)據(jù)通過(guò)Internet網(wǎng)絡(luò)傳輸?shù)揭苿?dòng)終端,在移動(dòng)終端可進(jìn)行數(shù)據(jù)查詢,以達(dá)到實(shí)時(shí)監(jiān)測(cè)工業(yè)現(xiàn)場(chǎng)的目的。
本系統(tǒng)的無(wú)線傳感網(wǎng)絡(luò)主要是通過(guò)Zigbee技術(shù)來(lái)實(shí)現(xiàn)的。Zigbee技術(shù)具有傳輸距離較近、能耗低、成本低、延時(shí)短等特點(diǎn),是一種雙向的無(wú)線通訊技術(shù),主要服務(wù)于規(guī)模小、成本低的無(wú)線網(wǎng)絡(luò),進(jìn)行網(wǎng)絡(luò)連接與相關(guān)控制。在工業(yè)領(lǐng)域中,使用以Zigbee技術(shù)為基礎(chǔ)的傳感器網(wǎng)絡(luò),能夠大大方便相關(guān)數(shù)據(jù)的采集與整合。[3]
2 系統(tǒng)架構(gòu)
2.1 無(wú)線傳感網(wǎng)節(jié)點(diǎn)
本系統(tǒng)中的無(wú)線傳感網(wǎng)絡(luò)節(jié)點(diǎn),即在工業(yè)現(xiàn)場(chǎng)進(jìn)行工業(yè)數(shù)據(jù)采集的端設(shè)備。端設(shè)備節(jié)點(diǎn)由處理器模塊、采集模塊、電源模塊及其他外圍模塊組成。節(jié)點(diǎn)以STM32W108芯片作為處理器模塊,該處理器也是整個(gè)節(jié)點(diǎn)的核心,用于完成數(shù)據(jù)發(fā)送,數(shù)據(jù)處理、數(shù)據(jù)存儲(chǔ)、執(zhí)行通信協(xié)議和節(jié)點(diǎn)調(diào)度管理等工作;采集模塊包括各種傳感器和執(zhí)行器, 用于采集工業(yè)數(shù)據(jù)和執(zhí)行各種內(nèi)部功能;電源模塊直接為該系統(tǒng)所有硬件部分供電;其他外圍模塊包括按鍵模塊、LED模塊、低電量檢測(cè)電路等,這些模塊同樣為系統(tǒng)進(jìn)行服務(wù)、執(zhí)行相關(guān)指令。
STM32W108與其他2.4GHzSoC芯片對(duì)比來(lái)看,其優(yōu)勢(shì)非常明顯。首先,在保持低功耗的基礎(chǔ)上,STM32W108采用了32 位的 ARM Cortex-M3內(nèi)核,提高了強(qiáng)大的處理能力,處理速度遠(yuǎn)超其他 8、16 位處理器;其次,芯片內(nèi)部自帶功率放大器(PA),發(fā)射輸出功率可達(dá)+7dBm,與其他外置PA的系統(tǒng)相比,在保持了發(fā)射功率的同時(shí)更加簡(jiǎn)單、便捷;除此之外,STM32W108 芯片不同版本分別固化了 802.15.4MAC、ZigBee、RF4CE 等協(xié)議棧, 用戶無(wú)需理解開發(fā)網(wǎng)絡(luò)協(xié)議,就可以進(jìn)行符合相關(guān)標(biāo)準(zhǔn)的無(wú)線網(wǎng)絡(luò)產(chǎn)品開發(fā),從而降低開發(fā)難度,簡(jiǎn)化開發(fā)流程,縮短開發(fā)周期。
2.2 無(wú)線傳感網(wǎng)關(guān)
2.2.1 網(wǎng)關(guān)功能分析
智能家居、智能交通等智能化網(wǎng)絡(luò)在實(shí)現(xiàn)過(guò)程中往往涉及到兩種或多種不同結(jié)構(gòu)的網(wǎng)絡(luò),如無(wú)線傳感器網(wǎng)絡(luò)和Internet網(wǎng)絡(luò)。無(wú)線網(wǎng)關(guān)是連接無(wú)線傳感網(wǎng)絡(luò)與Internet網(wǎng)絡(luò)之間的橋梁。基于ZigBee 的無(wú)線網(wǎng)關(guān)整體結(jié)構(gòu)包含ZigBee協(xié)調(diào)器節(jié)點(diǎn)部分和以太網(wǎng)控制部分,協(xié)調(diào)器節(jié)點(diǎn)負(fù)責(zé)收集無(wú)線傳感網(wǎng)絡(luò)節(jié)點(diǎn)所采集到的數(shù)據(jù),并處理收集的數(shù)據(jù),將數(shù)據(jù)經(jīng)內(nèi)部處理打包傳輸給以太網(wǎng)控制單元,以太網(wǎng)控制單元模塊將數(shù)據(jù)轉(zhuǎn)換成以太網(wǎng)協(xié)議數(shù)據(jù),使得數(shù)據(jù)能夠通過(guò) Internet網(wǎng)絡(luò)和移動(dòng)終端之間互相傳輸,實(shí)現(xiàn)與移動(dòng)終端之間的數(shù)據(jù)交互。[4][5]
對(duì)于無(wú)線網(wǎng)關(guān)應(yīng)該具有如下功能:(1)無(wú)線網(wǎng)關(guān)能夠管理無(wú)線傳感網(wǎng)絡(luò)節(jié)點(diǎn),實(shí)現(xiàn)數(shù)據(jù)的收集、發(fā)送。(2)無(wú)線網(wǎng)關(guān)能儲(chǔ)存數(shù)據(jù),實(shí)現(xiàn)數(shù)據(jù)的實(shí)時(shí)調(diào)用。(3)網(wǎng)關(guān)不僅要完成兩個(gè)協(xié)議之間數(shù)據(jù)的互聯(lián)互通,而且能夠保證高效、穩(wěn)定、可靠的傳輸數(shù)據(jù)。(4)網(wǎng)關(guān)能夠?qū)崿F(xiàn)接入以太網(wǎng)絡(luò)時(shí)網(wǎng)絡(luò)參數(shù)的靈活匹配。
2.2.2 網(wǎng)關(guān)總體方案設(shè)計(jì)
基于無(wú)線傳感網(wǎng)絡(luò)和以太網(wǎng)轉(zhuǎn)換的網(wǎng)關(guān)系統(tǒng)包括無(wú)線傳感網(wǎng)絡(luò)數(shù)據(jù)收集和以太網(wǎng)驅(qū)動(dòng)實(shí)現(xiàn)兩部分。無(wú)線網(wǎng)關(guān)通過(guò)無(wú)線傳感網(wǎng)絡(luò)協(xié)調(diào)器節(jié)點(diǎn)收集 ZigBee網(wǎng)絡(luò)內(nèi)的節(jié)點(diǎn)數(shù)據(jù),并解析ZigBee網(wǎng)絡(luò)數(shù)據(jù)包,將數(shù)據(jù)包中的有效數(shù)據(jù)發(fā)送到網(wǎng)關(guān)控制部分,網(wǎng)關(guān)控制部分接收到數(shù)據(jù)包后,控制以太網(wǎng)驅(qū)動(dòng)單元根據(jù)以太網(wǎng)協(xié)議進(jìn)行數(shù)據(jù)轉(zhuǎn)換并發(fā)送數(shù)據(jù)包,最后通過(guò)Internet網(wǎng)絡(luò)將數(shù)據(jù)發(fā)送到移動(dòng)終端,完成整個(gè)網(wǎng)絡(luò)的數(shù)據(jù)傳輸。(如圖1所示)
2.3 數(shù)據(jù)庫(kù)
SQLite是一種開源的、與底層無(wú)關(guān)的,輕量級(jí)的數(shù)據(jù)庫(kù) , 最大支持2048 GB的數(shù)據(jù)存儲(chǔ),與其它大多SQL數(shù)據(jù)庫(kù)不同的是, SQLite沒(méi)有獨(dú)立的服務(wù)進(jìn)程。 SQLite中的數(shù)據(jù)庫(kù)文件是跨平臺(tái)的,可以在32位和64位系統(tǒng)之間,甚至Big-Endian和Little-Endian兩種不同的架構(gòu)之間自由的拷貝數(shù)據(jù),SQLite數(shù)據(jù)庫(kù)被用在大量的消費(fèi)類電子產(chǎn)品中 。
SQLite數(shù)據(jù)庫(kù)具有以下特點(diǎn):(1)零配置。SQLite數(shù)據(jù)庫(kù)不需要安裝和管理配置,在系統(tǒng)崩潰或失電之后可自動(dòng)恢復(fù);(2)支持標(biāo)準(zhǔn)SQL。特別是SQLite支持視圖、觸發(fā)器,支持嵌套SQL;SQLite還具有事務(wù)處理功能;(3)無(wú)中間服務(wù)器。SQLite數(shù)據(jù)庫(kù)沒(méi)有中間服務(wù)器進(jìn)程。在使用SQLite時(shí),訪問(wèn)數(shù)據(jù)庫(kù)的程序直接從磁盤上的數(shù)據(jù)庫(kù)文件讀寫;(4)精簡(jiǎn)性。當(dāng)尺寸優(yōu)化后,在不減少功能的情況下,整個(gè)SQLite小于225kB。如果在編譯時(shí)去掉一些不需要的特征,能被減少到170kB;(5)存儲(chǔ)量大。最高能支持2TB的數(shù)據(jù)庫(kù),運(yùn)行速度比MySQL快1到2倍;(6)數(shù)據(jù)可自由共享。SQLite數(shù)據(jù)庫(kù)在PC機(jī)和嵌入式設(shè)備中采用相同的數(shù)據(jù)格式,其數(shù)據(jù)庫(kù)文件可以在PC機(jī)和嵌入式設(shè)備上自由共享;(7)無(wú)數(shù)據(jù)類型的限制。SQLite支持絕大部分的 SQL92標(biāo)準(zhǔn),允許開發(fā)人員使用 SQL語(yǔ)句操作數(shù)據(jù)庫(kù)中的數(shù)據(jù),但它不像MySQL、Oracle數(shù)據(jù)庫(kù)那樣需要安裝、啟動(dòng)服務(wù)器進(jìn)程,它是一種被嵌入到應(yīng)用程序中的數(shù)據(jù)庫(kù),它將存儲(chǔ)的數(shù)據(jù)都放在一個(gè)文件里面,這種方式非常適合移動(dòng)終端平臺(tái)下的數(shù)據(jù)處理。SQLite的操作方式是一種很便捷的文件操作,應(yīng)用程序只需打開一個(gè)文件進(jìn)行讀寫操作即可。它不適合項(xiàng)目中有大量數(shù)據(jù)存儲(chǔ)及用戶并發(fā)儲(chǔ)存的場(chǎng)合,因?yàn)樗挠?jì)算和存儲(chǔ)能力都不足以讓它充當(dāng)服務(wù)器的角色。
SQLite支持目前Linux、Android、Windows、IOS等幾乎目前所有主流操作系統(tǒng),同時(shí)對(duì)Java、C、C++等主流編程語(yǔ)言也支持完好。綜合它的小巧、易操作、易管理、易維護(hù)、占用資源少及查詢速度高等各方面優(yōu)點(diǎn),只會(huì)有更多的嵌入式設(shè)備都用它來(lái)進(jìn)行數(shù)據(jù)存儲(chǔ)。
結(jié)合以上分析,本平臺(tái)終端最終選擇SQLite數(shù)據(jù)庫(kù)來(lái)實(shí)現(xiàn)移動(dòng)終端的部分?jǐn)?shù)據(jù)存儲(chǔ)及管理功能。SQLite數(shù)據(jù)庫(kù)是一個(gè)真正的輕量級(jí)的數(shù)據(jù)庫(kù),它沒(méi)有所謂的后臺(tái)進(jìn)程,整個(gè)數(shù)據(jù)庫(kù)就對(duì)應(yīng)于一個(gè)幾百KB的文件,這樣可以非常方便地在不同設(shè)備之間移植。[6]-[9]
2.4 移動(dòng)終端
2.4.1 Android平臺(tái)
Android 是 Google 于 2007 年開發(fā)的基于 Linux 平臺(tái)的、開源的、免費(fèi)的、智能手機(jī)系統(tǒng),也是一個(gè)專為移動(dòng)設(shè)備設(shè)計(jì)的軟件平臺(tái),它包括一個(gè)操作系統(tǒng)、中間件和一些關(guān)鍵性的平臺(tái)應(yīng)用。而且還可被移植到不同的硬件平臺(tái)上去,目前發(fā)布的 Android SDK 提供了使用Java語(yǔ)言開發(fā)Android平臺(tái)應(yīng)用的必要工具和API。
一般Android系統(tǒng)分為了移植開發(fā)和上層應(yīng)用程序開發(fā)兩個(gè)不同的開發(fā)方向;手機(jī)廠商大多數(shù)從事移植開發(fā)工作,而上層的應(yīng)用程序開發(fā)則一般由任一單位和個(gè)人完成,開發(fā)的過(guò)程可以基于真實(shí)的硬件系統(tǒng),也可以基于仿真器環(huán)境。因?yàn)槠涿赓M(fèi)開源,贏得了大多數(shù)開發(fā)者與廠商的喜愛(ài)。
在Android平臺(tái)中,應(yīng)用程序之間可以進(jìn)行非常方便高效的溝通。一個(gè)應(yīng)用程序的組件可以在另一個(gè)應(yīng)用程序中起作用,也可以將Android內(nèi)置的組件替換成自己開發(fā)或修改的組件;而且經(jīng)過(guò)簡(jiǎn)單的聲明后,應(yīng)用程序之間可以相互交互、訪問(wèn)或調(diào)用對(duì)方的數(shù)據(jù)或功能來(lái)使用。
與其他平臺(tái)相比,安卓平臺(tái)提供了更多的即用型內(nèi)置服務(wù)并且可以對(duì)應(yīng)用程序?qū)嵭凶詣?dòng)化管理,如采用多層的安全措施將應(yīng)用程序之間彼此分離,使智能電話的穩(wěn)定性增強(qiáng),這些功能有利于提高功能標(biāo)準(zhǔn),同時(shí)降低開發(fā)成本,并針對(duì)低能耗、低內(nèi)存的設(shè)備進(jìn)行優(yōu)化。
除此之外,安卓平臺(tái)還提供了豐富的開發(fā)環(huán)境包括設(shè)備模擬器、調(diào)試工具、內(nèi)存及性能分析圖表和Eclipse集成開發(fā)環(huán)境插件。Android開發(fā)包SDK中包含了大量的類庫(kù)和開發(fā)工具。所有的開發(fā)代碼可以在ARM、X86和其他架構(gòu)之間進(jìn)行移植。[10]由于安卓平臺(tái)具有以上優(yōu)點(diǎn)及特性,經(jīng)過(guò)綜合考慮,選擇安卓平臺(tái)來(lái)搭建移動(dòng)終端軟件。
2.4.2 移動(dòng)應(yīng)用開發(fā)流程
在著手開發(fā)應(yīng)用軟件之前,應(yīng)該把開發(fā)流程先確定好,這樣按步驟實(shí)行,既可以高效完成任務(wù),又不容易出錯(cuò)。首先開發(fā)者應(yīng)對(duì)需求進(jìn)行分析,做好市場(chǎng)調(diào)研,根據(jù)需求設(shè)計(jì)移動(dòng)終端平臺(tái)上的基本功能模塊。接下來(lái)進(jìn)行交互設(shè)計(jì),主要設(shè)計(jì)應(yīng)用軟件與用戶的互動(dòng)界面,使其更加智能化。下一步應(yīng)進(jìn)行界面視覺(jué)設(shè)計(jì),視覺(jué)設(shè)計(jì)會(huì)使得應(yīng)用軟件更具操作性和靈活性,用視覺(jué)語(yǔ)言去解決邏輯問(wèn)題,用最簡(jiǎn)潔的色彩和圖片表達(dá)出最準(zhǔn)確的內(nèi)容。經(jīng)過(guò)前幾個(gè)步驟,就可以根據(jù)靜態(tài)樣本進(jìn)行代碼設(shè)計(jì)了。代碼設(shè)計(jì)是重中之重,通過(guò)計(jì)算機(jī)語(yǔ)言具體實(shí)現(xiàn)各個(gè)模塊的功能。實(shí)現(xiàn)每一個(gè)功能模塊完成之后要進(jìn)行功能測(cè)試,完成后再把所有功能模塊架構(gòu)到整體框架下進(jìn)行整體測(cè)試,并進(jìn)行代碼優(yōu)化和修改。本系統(tǒng)的軟件開發(fā)流程如圖2所示。
2.4.3 功能模塊設(shè)計(jì)
移動(dòng)終端所實(shí)現(xiàn)的功能主要是對(duì)工業(yè)現(xiàn)場(chǎng)數(shù)據(jù)的實(shí)時(shí)顯示,并可以在移動(dòng)終端查詢一定時(shí)間范圍內(nèi)的歷史數(shù)據(jù)。因此,功能模塊主要包括工業(yè)數(shù)據(jù)實(shí)時(shí)顯示模塊和歷史數(shù)據(jù)查詢模塊。圖3為系統(tǒng)的運(yùn)行界面。
3 系統(tǒng)功能
系統(tǒng)在工作人員操作下,由無(wú)線傳感網(wǎng)絡(luò)節(jié)點(diǎn)采集工業(yè)數(shù)據(jù),在移動(dòng)終端即可實(shí)現(xiàn)對(duì)所有工業(yè)數(shù)據(jù)的實(shí)時(shí)監(jiān)測(cè)。系統(tǒng)工作流程如圖4所示。
4 結(jié)束語(yǔ)
文章介紹了無(wú)線傳感網(wǎng)移動(dòng)監(jiān)測(cè)系統(tǒng)的設(shè)計(jì)方案,相對(duì)于傳統(tǒng)同現(xiàn)場(chǎng)的監(jiān)測(cè)方案,該系統(tǒng)有著成本低、靈活度高、機(jī)動(dòng)性高等諸多優(yōu)勢(shì),解決了傳統(tǒng)監(jiān)測(cè)方案中布線難、維護(hù)難、成本高等諸多問(wèn)題,具有創(chuàng)新性和市場(chǎng)應(yīng)用價(jià)值,具有非常好的推廣前景。
參考文獻(xiàn)
[1]王驥.基于無(wú)線傳感器網(wǎng)絡(luò)的環(huán)境監(jiān)測(cè)系統(tǒng)[J].傳感技術(shù)學(xué)報(bào),2015,28(11):1732-1740.
[2]Prabhudutta Mohanty,Manas Ranjan Kabat.Energy efficient structure-free data aggregation and delivery in WSN[J].Egyptian Informatics Journal,2016.
[3]楊萌.基于Zigbee技術(shù)的無(wú)線傳感網(wǎng)絡(luò)研究[J].電子技術(shù)與軟件工程,2015(1).
[4]陳寧坡.基于STM32的以太網(wǎng)/Zigbee網(wǎng)關(guān)設(shè)計(jì)[D].2014:10.
[5]成金祥.無(wú)線傳感器網(wǎng)絡(luò)網(wǎng)關(guān)節(jié)點(diǎn)的設(shè)計(jì)與實(shí)現(xiàn)[D].2013:3.
[6]劉婕.基于Android系統(tǒng)的移動(dòng)終端通訊錄的研究與設(shè)計(jì)[D].2012:17.
[7]韓善峰.SQLite數(shù)據(jù)庫(kù)在嵌入式程序開發(fā)中的應(yīng)用[J].物探設(shè)備,2015,21(3),170-178.
[8]黎陽(yáng)子.基于Android平臺(tái)的移動(dòng)醫(yī)療系統(tǒng)的研究與設(shè)計(jì)[D].2014:34.
[9]Moriki Yamamoto,Hisao Koizumi.An Experimental Evaluation using SQLite for Real-Time Stream Processing[J].
[10]馮馨.一種基于Android平臺(tái)移動(dòng)學(xué)習(xí)系統(tǒng)研究與設(shè)計(jì)[D].2013:13.
作者簡(jiǎn)介:張勇(1974-),男,吉林農(nóng)安,碩士,副教授,研究方向:智能儀器及物聯(lián)網(wǎng)應(yīng)用設(shè)計(jì)。