胡 煜,劉岳烯,陳 越,陶 銘
(東莞理工學(xué)院 計算機科學(xué)與技術(shù)學(xué)院,廣東 東莞 523808)
隨著經(jīng)濟和城市化建設(shè)的快速發(fā)展,各城市道路的路燈亮化系統(tǒng)不斷在擴展,但路燈的管理水平也不盡相同。亮化能源使用越來越大,浪費越來越嚴(yán)重,安全隱患頻發(fā)。隨著智慧城市建設(shè)的需要,路燈的控制管理需求也在不斷加大,管理不到位的情況也有出現(xiàn),因此對路燈進行智能化管理變得更為重要。基于物聯(lián)網(wǎng)的信息管理系統(tǒng)的不斷創(chuàng)新和發(fā)展,對路燈管理水平有很大的促進作用[1]。
物聯(lián)網(wǎng)(Internet of Things, IoT)是信息科技產(chǎn)業(yè)第三次革命。物聯(lián)網(wǎng)指的是通過信息采集設(shè)備,采集所需要的信息,根據(jù)規(guī)定好的協(xié)議,將物體與網(wǎng)絡(luò)相連接,以網(wǎng)絡(luò)為介質(zhì),實現(xiàn)物物相連。物聯(lián)網(wǎng)中有人與物體作為主體,能夠?qū)⑽镔|(zhì)世界中的物質(zhì)科學(xué)地連接起來,通過傳感器,實現(xiàn)物品之間的感應(yīng),達到物與物之間,人與物之間相互關(guān)聯(lián)以及有效控制[2]。無線傳感器網(wǎng)絡(luò)(Wireless Sensor Networks, WSNs)是物聯(lián)網(wǎng)采集網(wǎng)絡(luò)的重要技術(shù)形式,是由部署在監(jiān)測區(qū)域內(nèi)的大量傳感器節(jié)點進行觀察、采集信息或檢測事件的發(fā)生等,通過互相通信形成的多跳自組織網(wǎng)絡(luò),再將感測數(shù)據(jù)傳輸至信宿[3]。隨著物聯(lián)網(wǎng)的技術(shù)快速發(fā)展,“智慧路燈+物聯(lián)網(wǎng)”的結(jié)合可以有效實現(xiàn)道路亮化智能化管理以及滿足節(jié)能降耗的需求,方便路燈管理者實時查看路燈信息以及對異常情況作出及時響應(yīng)。
本套系統(tǒng)采用CC2530處理器作為采集節(jié)點的嵌入式系統(tǒng),搭載系統(tǒng)所需要的各式傳感器,以ZigBee作為無線傳感網(wǎng)絡(luò)的數(shù)據(jù)傳輸節(jié)點,使用CC2530中的串口作為數(shù)據(jù)傳輸工具,通過串口將采集到的數(shù)據(jù)傳輸?shù)椒?wù)器端,路燈管理員可以登陸手機客戶端系統(tǒng),查看路燈的使用情況。不僅如此,當(dāng)路燈故障時,也會通過手機報錯,達到快速告知管理員進行路燈維護的效果。
ZigBee技術(shù)是一種低功耗、短距離和低速率下的無線通信技術(shù),過去又稱為“FireFly”和“HomeRF Lite”技術(shù),目前被統(tǒng)一稱為ZigBee技術(shù)[4]。ZigBee技術(shù)基于IEEE 802.15.4協(xié)議標(biāo)準(zhǔn),該標(biāo)準(zhǔn)具有穩(wěn)定性好、自組織能力強、低成本、網(wǎng)絡(luò)容量大、低能耗等優(yōu)點,在無線傳感網(wǎng)絡(luò)和無線局域網(wǎng)等領(lǐng)域都得到了廣泛的應(yīng)用[5]。ZigBee模塊是一種物聯(lián)網(wǎng)無線數(shù)據(jù)終端,通過板載嵌入式系統(tǒng)的采集,利用ZigBee網(wǎng)絡(luò)為用戶提供無線數(shù)據(jù)傳輸功能,將采集到的數(shù)據(jù)匯總并上傳處理。該系統(tǒng)采用CC2530作為載體,通過ZigBee協(xié)議棧的自組織功能,實現(xiàn)數(shù)據(jù)的透明傳輸;ZigBee低功耗設(shè)計,最低功耗小于1 mA,使得系統(tǒng)運行時間足夠長;且ZigBee提供多路I/O,可以實現(xiàn)數(shù)字量輸入/輸出、脈沖輸出等;其中還有3路I/O可實現(xiàn)模擬量采集、脈沖計數(shù)等功能,大大方便了傳感器對數(shù)據(jù)的采集。
串行接口(Serial Interface)是采用串行通信方式的擴展接口。串行接口技術(shù)是指數(shù)據(jù)一位一位地通過串口線順序傳送[6]。其特點是通信線路簡單,串口只要有一對傳輸線就可以進行雙向通信,從而大大地降低了成本,適用于遠距離通信,但傳送速度較慢。
同步串行接口(Synchronous Serial Interface, SSI)是指通過同步時鐘控制,發(fā)送方和接收方同步進行數(shù)據(jù)的傳送。
基于物聯(lián)網(wǎng)技術(shù)的物聯(lián)網(wǎng)路燈智能控制系統(tǒng)由ZigBee無線傳感器網(wǎng)絡(luò)、基于CC2530的串行通信技術(shù)、Android客戶端、數(shù)據(jù)庫服務(wù)器4部分組成。無線傳感器網(wǎng)絡(luò)由ZigBee協(xié)調(diào)器節(jié)點廣播發(fā)起組網(wǎng)信號,ZigBee端點通過協(xié)議棧進行自組網(wǎng)[7]。ZigBee端節(jié)點采集數(shù)據(jù)后通過ZigBee搭建的無線傳感網(wǎng)絡(luò)發(fā)送數(shù)據(jù)到協(xié)調(diào)器端,協(xié)調(diào)器通過CC2530的串行通信技術(shù)將數(shù)據(jù)傳輸?shù)椒?wù)器端。路燈管理人員可以通過手機客戶端查詢某個路燈節(jié)點的數(shù)據(jù)信息,系統(tǒng)框架結(jié)構(gòu)如圖1所示。
圖1 系統(tǒng)結(jié)構(gòu)
感知節(jié)點的通訊模塊采用了CC2530,是TI公司的片上系統(tǒng),該芯片適合于ZigBee Pro/2007復(fù)雜協(xié)議棧的應(yīng)用[8]。這款嵌入式處理器CC2530片上有多個GPIO口,利用其中兩個模擬驅(qū)動I2C總線,連接PCF8591模塊,該模塊集成了3個A/D模塊、1個D/A模塊以及一個光敏模塊。PCF8591模塊中的光敏用來監(jiān)測空中的亮暗,利用2個A/D模塊分別連接光敏模塊(監(jiān)測路燈亮暗)、紅外測距模塊。其感知節(jié)點硬件結(jié)構(gòu)圖如圖2所示。
圖2 感知節(jié)點硬件結(jié)構(gòu)
節(jié)點采集到的數(shù)據(jù)需要經(jīng)過一系列協(xié)議進行數(shù)據(jù)的收發(fā),協(xié)議實際上是定義了一系列的通信標(biāo)準(zhǔn),編寫完協(xié)議后,可以通過一系列函數(shù)API進行調(diào)用。本套系統(tǒng)的無線傳感網(wǎng)絡(luò)基于Z-Stack協(xié)議棧。路燈監(jiān)測系統(tǒng)不僅從傳感器收到各個節(jié)點發(fā)來的數(shù)據(jù),還需要獲取數(shù)據(jù)節(jié)點的位置,本系統(tǒng)采用編號的方式定位節(jié)點,代替GPS定位之類的硬件模塊,具體操作過程如圖3所示。首先,給節(jié)點上電后,ZigBee節(jié)點初始化各類傳感器,通過Z-Stack協(xié)議棧連接成無線傳感網(wǎng)絡(luò),并初始化串口,連通服務(wù)器。由于采用編號的方式寫入?yún)f(xié)議棧代碼,便可以根據(jù)路燈位置連接CC2530,通過協(xié)調(diào)器連接服務(wù)器,服務(wù)器傳輸數(shù)據(jù)到Android客戶端,在Android端便可以看到所示路燈位置的情況。這時,在Android端的路燈數(shù)據(jù)開始顯示,感知節(jié)點初始化完畢。
圖3 編號對應(yīng)節(jié)點
智慧物聯(lián)網(wǎng)的應(yīng)用,使得路燈系統(tǒng)的自我調(diào)節(jié)能力較好,能夠根據(jù)不同的情況開、關(guān)燈,管理員也可以根據(jù)Android端的數(shù)據(jù)查詢路燈的狀況,以及在路燈故障時進行維護。路燈管理系統(tǒng)根據(jù)環(huán)境亮度以及車輛行駛情況判斷是否進行開關(guān)燈操作。首先,光敏傳感器判斷環(huán)境亮度是否達到開燈的限度;其次,利用紅外測距,判斷是否有車經(jīng)過;綜合后,當(dāng)有車經(jīng)過時,且環(huán)境亮度達到該開燈的條件的時候,路燈亮,為車輛照明,否則滅,減少路燈的能耗。當(dāng)遇到突發(fā)情況需要開燈時,路燈管理者還可以通過Android端進行開燈操作,提高了智慧路燈的靈活性。當(dāng)路燈發(fā)生損壞無法亮燈時,路燈光敏與路燈開關(guān)標(biāo)志(是否正在開燈)共同判斷是否出現(xiàn)故障,如果出現(xiàn)故障,會立刻發(fā)送待處理事件到Android客戶端。具體算法流程圖如圖4所示。
圖4 算法流程
服務(wù)器后端系統(tǒng)基于Spring框架編寫,Spring是一個輕量級的控制反轉(zhuǎn)(IoC)和面向切面(AOP)的容器框架,利用其特性可編寫出更干凈、更可管理、并且更易于測試的代碼[10]。控制層接收安卓客戶端發(fā)送過來的請求,請求進入業(yè)務(wù)層代碼進行相關(guān)的業(yè)務(wù)處理,并通過數(shù)據(jù)持久層對數(shù)據(jù)庫進行CIUD操作。主要任務(wù)是返回路燈及采集到的所選當(dāng)前環(huán)境的一些實時數(shù)據(jù)情況,實現(xiàn)對指定路燈的開關(guān)控制以及對異常信息的處理審核,通過使用log4j日志框架,相關(guān)的硬件異常及客戶端的操作詳情都會生成日志數(shù)據(jù)記錄到每天的日志文件中。服務(wù)器與硬件端通過串口進行通信,接收ZigBee傳過來的數(shù)據(jù)后,解析處理數(shù)據(jù)并把數(shù)據(jù)存儲到數(shù)據(jù)庫中,如圖5所示。服務(wù)器啟動HTTP進程,處理安卓客戶端的數(shù)據(jù)請求,流程圖如圖6所示。
圖5 數(shù)據(jù)存儲流程
圖6 用戶請求處理流程
Android系統(tǒng)具有開發(fā)性、程序間無界限、程序平等性和程序開發(fā)方便快捷等優(yōu)點。該系統(tǒng)架構(gòu)由應(yīng)用程序、程序服務(wù)框架、系統(tǒng)庫、Android運行時以及Linux內(nèi)核5個部分組成。在運行程序時,不是使用Java虛擬機來運行,而是采用其自有的Android運行時,包括Dalvik虛擬機和核心庫兩部分,能使一臺移動設(shè)備在消耗較少的資源同時運行多個虛擬機程序,并且Android的應(yīng)用程序都在其自有的Dalvik虛擬機中運行[9]。
Android客戶端的主要功能是向用戶展示路燈的各項數(shù)據(jù)以及對路燈進行控制,其模塊主要包含有路燈位置顯示模塊、路燈數(shù)據(jù)呈現(xiàn)模塊、路燈控制模塊、異常信息處理模塊四個部分,如圖7所示。路燈位置顯示模塊主要是在校園地圖上,根據(jù)路燈所在的位置在地圖打上標(biāo)簽點,實現(xiàn)對路燈位置的顯示功能。當(dāng)用戶點擊地圖上的標(biāo)簽點時,根據(jù)標(biāo)簽點的信息通過使用HttpClient網(wǎng)絡(luò)接口對服務(wù)器端請求獲取對應(yīng)的路燈數(shù)據(jù),獲取數(shù)據(jù)成功后在數(shù)據(jù)顯示界面對路燈的數(shù)據(jù)進行顯示,并定時向服務(wù)器端發(fā)送獲取數(shù)據(jù)的請求用以完成路燈數(shù)據(jù)的更新,實現(xiàn)了路燈數(shù)據(jù)實時呈現(xiàn)的功能。在路燈數(shù)據(jù)顯示頁面的下方,有兩個路燈控制按鈕“開/關(guān)”“人工權(quán)限設(shè)置”,分別是實現(xiàn)對路燈的開關(guān)和路燈控制模式的轉(zhuǎn)換,用戶通過點擊按鈕向服務(wù)器端發(fā)送數(shù)據(jù),服務(wù)器端根據(jù)用戶發(fā)送的數(shù)據(jù)實現(xiàn)對路燈的操作,再將路燈操作的結(jié)果返回給客戶端的用戶,以此來實現(xiàn)對路燈進行控制的功能。當(dāng)用戶點擊處理界面時,客戶端向服務(wù)器端請求異常數(shù)據(jù)信息,成功后在界面上顯示顯示異常數(shù)據(jù)的信息,用戶可點擊這些異常信息進行處理,處理后點擊提交按鈕將處理信息返回給服務(wù)器端,完成對異常信息的處理。
圖7 Android客戶端功能結(jié)構(gòu)
系統(tǒng)開始運行,啟動硬件端相應(yīng)路燈節(jié)點以及協(xié)調(diào)器節(jié)點、服務(wù)器端,將感知節(jié)點所獲得的路燈數(shù)據(jù)通過ZigBee發(fā)送到協(xié)調(diào)器節(jié)點,協(xié)調(diào)器節(jié)點再通過串口將其發(fā)送到服務(wù)器端中存儲,最終用戶通過Android客戶端對服務(wù)器的訪問獲得路燈信息,并實現(xiàn)對路燈的控制等。具體的操作如下:用戶通過Android客戶端可以看到校園地圖上路燈感知節(jié)點的位置分布圖,如圖8所示;路燈節(jié)點的數(shù)據(jù)如圖9所示;對路燈的控制如圖10所示;對異常信息的處理如圖11所示。路燈節(jié)點除了可以通過Android客戶端控制外,還可以通過自身所獲得的信息進行智能控制,當(dāng)路燈上的紅外感知器沒有感知到車輛經(jīng)過并且是陰天或夜晚時,將不會開燈,在有車經(jīng)過時才會開燈;當(dāng)在白天時,無論有沒有車都不會開燈。
圖8 路燈位置分布圖
圖9 路燈狀態(tài)數(shù)據(jù)
圖10 路燈控制界面
圖11 異常信息處理界面
物聯(lián)網(wǎng)路燈智能控制系統(tǒng),將物聯(lián)網(wǎng)技術(shù)與路燈進行結(jié)合,實現(xiàn)了路燈智能化管理,大幅減少了能耗。隨著智慧城市不斷發(fā)展,路燈更需要智慧物聯(lián)。本項目雖然實現(xiàn)了路燈的基本功能,但仍存在諸多不足,還有待未來進行進一步完善。