張劍云,朱 穎,盤 瑤,江 源,朱金榮
(揚州大學(xué),江蘇 揚州 225000)
智慧路燈系統(tǒng)的建設(shè)是智慧城市發(fā)展的關(guān)鍵一環(huán)。城市路網(wǎng)縱橫交錯,而路燈終端是路網(wǎng)的附屬物,在路燈上部署信號源可實現(xiàn)對城市的全面覆蓋;相較于其他載體,在路燈終端部署傳感器獲取的城市環(huán)境參數(shù)更加全面,所以智慧路燈是數(shù)字化智慧城市感知層的主要載體。
近10年,智慧路燈發(fā)展十分迅速,市場上現(xiàn)有的路燈控制系統(tǒng)采用的通信方案通常是NB-IoT或GPRS通信技術(shù),而這兩種技術(shù)都是由運營商運營,存在流量資費開銷,且模組本身價格較高。而ZigBee通信成本很低,配合射頻功放的通信距離能滿足智慧路燈需求,且其自組網(wǎng)特性非常適用于智慧路燈環(huán)境。本文考慮到智慧路燈應(yīng)用場景的特點,將ZigBee技術(shù)與NB-IoT結(jié)合起來[1],構(gòu)成兩層網(wǎng)絡(luò),在數(shù)量巨大的路燈終端上配置ZigBee模組組網(wǎng),并在其協(xié)調(diào)器上配置NB-IoT網(wǎng)關(guān)與云平臺進行異構(gòu)網(wǎng)絡(luò)數(shù)據(jù)交互,平臺可實時控制路燈開閉、亮度,并監(jiān)控路燈工作狀態(tài)或讀取路燈終端搭載的傳感器數(shù)值。另外,針對組播數(shù)據(jù)擁塞問題設(shè)計了鬧鐘機制;在實際開發(fā)中,為解決NB模組網(wǎng)絡(luò)閑置斷連問題,設(shè)計了心跳機制。
過去,路燈控制依賴于人工管理,檢修工作消耗了大量的人力物力,即使這樣也不能保證故障路燈被及時發(fā)現(xiàn)。傳統(tǒng)的路燈多是總線式的結(jié)構(gòu),在這種結(jié)構(gòu)下,單點的故障常常會導(dǎo)致整條線路的工作異常[2]。針對以上問題,本文設(shè)計一種智慧[3-4]路燈管理系統(tǒng),特點如下:
1)按地區(qū)分配地區(qū)號
在一片區(qū)域內(nèi)定義路燈群,每個路燈終端分配獨立ID號作為控制依據(jù);在管理平臺可實現(xiàn)區(qū)域內(nèi)廣播、路燈群組播、單燈控制等功能。
2)兩級異構(gòu)網(wǎng)絡(luò)通信
在路燈群內(nèi)構(gòu)建本地ZigBee網(wǎng)絡(luò),將本地數(shù)據(jù)匯總到搭載協(xié)調(diào)器的網(wǎng)關(guān);在網(wǎng)關(guān)配置NB-IoT模組,使用MQTT協(xié)議連接云平臺,與云平臺進行數(shù)據(jù)交互;網(wǎng)關(guān)負(fù)責(zé)兩層異構(gòu)網(wǎng)絡(luò)間的協(xié)議轉(zhuǎn)換。
3)鬧鐘機制
每個路燈終端可配置4個鬧鐘位,鬧鐘位包含時、分信息和鬧鐘事件。
4)心跳機制
利用MQTT協(xié)議特點設(shè)計心跳機制,保證網(wǎng)關(guān)NB模組與MQTT服務(wù)器長連。
在傳統(tǒng)路燈項目中,指令的下達和信息的反饋主要有電力寬帶載波技術(shù)、RS 485通信技術(shù)和GPRS通信技術(shù)等幾種方式,總體來說,有先集中數(shù)據(jù)再接入平臺和單燈直接接入平臺兩種方式。前一種方式的代表是RS 485組網(wǎng),將總線上所有路燈終端數(shù)據(jù)集中到RS 485主站,再通過網(wǎng)線上傳平臺,便于區(qū)域范圍內(nèi)路燈的統(tǒng)一管理[5],但是受限于布線條件和RS 485的通信距離;后一種方式的代表是GPRS技術(shù),每一個單燈配置GPRS模組,直接接入云平臺,這種方式對于單燈的控制更靈活,但是成本較高。
智慧路燈管理系統(tǒng)硬件部分主要由ZigBee單燈控制器和NB-IoT智慧路燈網(wǎng)關(guān)組成,通信部分在路燈群[6]內(nèi)部使用基于ZigBee的Mesh網(wǎng)絡(luò)將單燈控制終端與智慧路燈網(wǎng)關(guān)聯(lián)系起來;在網(wǎng)關(guān)與平臺之間基于NBIoT[7],采用MQTT通信協(xié)議的方式進行數(shù)據(jù)交互。系統(tǒng)的總體架構(gòu)圖如圖1所示。
圖1 系統(tǒng)總體架構(gòu)圖
路燈控制終端節(jié)點的硬件結(jié)構(gòu)圖如圖2所示,主要由主控制器、防雷保護電路、電量采集模塊、交直流轉(zhuǎn)換電路、降壓穩(wěn)壓電路、繼電器開關(guān)電路、通信定位模塊、CC2530 ZigBee模塊、電源模塊和PWM生成電路組成。
圖2 路燈控制終端節(jié)點硬件結(jié)構(gòu)圖
單燈終端采用32位的STM32F103C8T6單片機作為主控MCU。
電源部分采用開關(guān)電源將220 V交流電降至12 V。然后采用兩級LDO降壓的方案,采用LM7805電路將12 V電壓降至5 V,再采用1117電路將5 V電壓[8]降至3.3 V。
EMC電路主要由氣體放電管TVS、壓敏電阻、共模電感、X2安規(guī)電容、Y電容以及保險絲構(gòu)成,使用安規(guī)電容的原因是:即使元器件壞掉也不影響電路狀態(tài),該電路有抗雷擊、抗浪涌的作用,當(dāng)電流過大時,該電路可以起到有效的保護作用。
電量計量采集模塊選用的是HLW8032芯片,這是一款高精度的電能計量IC,采用CMOS制造工藝,具有功耗小、可靠性高和環(huán)境能力強的優(yōu)點,主要適用于單相應(yīng)用。本文選用康銅電阻采樣的方式,通過串聯(lián)分壓原理進行采樣分析。
智慧路燈網(wǎng)關(guān)系統(tǒng)硬件結(jié)構(gòu)如圖3所示[9],外部接口主要有AC輸入、ZigBee天線、NB天線、外設(shè)DC供電、RS 485外設(shè)接口和調(diào)試串口;內(nèi)部主要由ZigBee協(xié)調(diào)器、NB-IoT模組、防雷和抗浪涌電路、MCU(STM32F103C8T6)、硬件看門狗、開關(guān)電源、MOS電路、電能監(jiān)控、RS 485轉(zhuǎn)換以及配置、日志串口等組成。
圖3 智慧路燈網(wǎng)關(guān)系統(tǒng)硬件結(jié)構(gòu)圖
本文系統(tǒng)設(shè)計了一種IoT云平臺與網(wǎng)關(guān)之間的MQTT通信協(xié)議。MQTT是一種訂閱∕發(fā)布式的通信協(xié)議,由一個消息中間件連接多個通信方,在這種結(jié)構(gòu)下,平臺與網(wǎng)關(guān)終端不是直接連接,而是在MQTT服務(wù)器內(nèi)的不同主題中進行訂閱∕發(fā)布來交互信息。
系統(tǒng)的通信協(xié)議主題按照地區(qū)、路燈群、功能進行三級劃分,在實際使用中平臺可利用MQTT通配符“∕#”進行批量訂閱。
例如,地區(qū)號為YZDX,路燈群號為0021的路燈群網(wǎng)關(guān),上傳網(wǎng)關(guān)內(nèi)某個單燈終端的電能信息的主題為YZDX∕0021∕ElcData,并在消息內(nèi)容中包含該單燈終端的群內(nèi)ID。
MQTT的訂閱發(fā)布機制不限制同一主題下的發(fā)送方數(shù)量和接收方數(shù)量。這一機制有利于平臺對同地區(qū)多個路燈群進行指令組播或針對單燈進行指令控制。例如在編號為YZDX的地區(qū)內(nèi),平臺可通過在該地區(qū)的組播主題YZDX∕BROADCAST中發(fā)布的數(shù)據(jù)幀結(jié)構(gòu)的內(nèi)容進行群體指令控制。圖4為組播數(shù)據(jù)幀結(jié)構(gòu)。
圖4 組播數(shù)據(jù)幀結(jié)構(gòu)
圖4中,群號代表路燈群編號,該編號為0000時代表本條指令的目標(biāo)是本地區(qū)內(nèi)的所有路燈群。網(wǎng)關(guān)接收到指令后,首先發(fā)送回復(fù)信息,報告平臺已接收到指令,再通過ZigBee Mesh網(wǎng)絡(luò)在群內(nèi)廣播該指令[8],之后進行輪詢檢查所有單燈狀態(tài),確保該指令下發(fā)到每一個終端,保證組播的可靠性。
指令類別和指令內(nèi)容是該指令的具體內(nèi)容,圖4中的Light Ctrl:0132的含義為開燈且亮度設(shè)為50%。在本文系統(tǒng)的單燈終端中,調(diào)光是通過PWM方式控制燈頭亮度與PWM波的占空比成正比;指令中,使用十六進制的00~64代表MCU生成的PWM波占空比為0~100%,所以圖4組播數(shù)據(jù)幀結(jié)構(gòu)中的32代表亮度50%。值得注意的是,PWM調(diào)光的方式在占空比低于15%時,燈頭的功率因數(shù)將劇烈下降,如表1所示,故本文系統(tǒng)設(shè)計亮度下限為15%。
表1 PWM調(diào)光的占空比與功率因數(shù)
本文系統(tǒng)中設(shè)計的MQTT指令內(nèi)容如表2所示。
在MQTT通信協(xié)議中,使用了縱向冗余校驗(LRC)的方法進行數(shù)據(jù)校驗,低位在前,高位在后。LRC方法適用于基于ASCII碼傳輸?shù)膮f(xié)議的數(shù)據(jù)校驗。
單燈控制是本文系統(tǒng)的另一項主要業(yè)務(wù),可配合攝像頭的實時路況分析實現(xiàn)智能調(diào)光。平臺實現(xiàn)單燈控制的數(shù)據(jù)幀結(jié)構(gòu)如圖5所示。平臺發(fā)布指令的主題為YZDX∕0001∕SIGNELCTRL,主題中的群號0001代表目標(biāo)單燈所在群,群內(nèi)單燈ID是控制目標(biāo)單燈的15位ID號。指令類別和內(nèi)容如表2所示,可在同一條下發(fā)消息中下發(fā)多個指令,最后進行LRC校驗。
圖5 單燈控制數(shù)據(jù)幀結(jié)構(gòu)
表2 平臺下發(fā)的MQTT指令內(nèi)容
城市路燈單燈的主要業(yè)務(wù)就是定時開關(guān)燈[8]。在同一地區(qū),開關(guān)燈的時間是相對固定的,且這個動作一般是所有單燈同時進行的。目前市場上的智慧路燈控制系統(tǒng)[10]實現(xiàn)該業(yè)務(wù)的做法一般是在對應(yīng)時間由平臺下發(fā)開關(guān)燈的廣播信息對所有下轄單燈進行控制,但是這種同一時間的大量信息下發(fā)的可靠性不能得到保證,為此必須建立指令回復(fù)機制,但是同一時間對大量的廣播消息進行回復(fù)又會導(dǎo)致服務(wù)器數(shù)據(jù)處理壓力的激增。為了解決該問題,本文系統(tǒng)設(shè)計了鬧鐘機制。
系統(tǒng)的單燈[11]終端內(nèi)置RTC,從網(wǎng)關(guān)獲取實時時間,由高精度32.768 kHz晶振提供時鐘源,且按一定周期校準(zhǔn);單燈終端提供了4個可配置的鬧鐘位,一般作2組成對使用。每個鬧鐘位由鬧鐘時間和鬧鐘事件組成,鬧鐘時間代表觸發(fā)鬧鐘的時間點,只有時、分信息,不區(qū)分日期;鬧鐘事件包含開關(guān)燈和燈亮度信息,在鬧鐘觸發(fā)時執(zhí)行該開關(guān)燈和調(diào)光動作。鬧鐘配置內(nèi)容如表3所示。
表3 鬧鐘配置內(nèi)容
單燈終端的鬧鐘配置信息在接收到配置指令進行更新后固化在MCU的FLASH中,設(shè)備重新上電后可重新讀取,即使設(shè)備掉電也能永久保存。
單燈終端的鬧鐘配置與2.1節(jié)所述一致,可由平臺組播進行配置,也可針對單燈配置[12]。一般在路燈群中,所有終端配置相同的鬧鐘內(nèi)容,那么在對應(yīng)時間點,所有單燈會同時執(zhí)行鬧鐘內(nèi)容,這一機制解耦了燈控信息下發(fā)時平臺與單燈終端的實時連接。由于日照時長變化,智慧路燈系統(tǒng)需要更改定時開關(guān)燈的時間點或亮度,本文系統(tǒng)只需要在事件時間到來的前數(shù)個小時完成鬧鐘配置更改即可,避免了大量數(shù)據(jù)擁塞的問題。
NB-IoT模組在連接基站時,如果長時間無動作,模組和基站會斷開連接。在智慧路燈系統(tǒng)有平臺實時下發(fā)指令的需求,所以必須保證連接的可靠性,為此本文利用MQTT協(xié)議的特點設(shè)計了心跳機制,以維持網(wǎng)絡(luò)長連。
MQTT的訂閱發(fā)布結(jié)構(gòu)決定了如果一個終端訂閱自身發(fā)布消息的主題,在發(fā)送消息時也能從MQTT服務(wù)器收到該消息。利用這個機制,本文系統(tǒng)為每個網(wǎng)關(guān)終端設(shè)置了心跳主題,網(wǎng)關(guān)每隔30 s向該主題發(fā)布一條心跳消息,并等待接收該消息,收到消息代表連接正常;未收到則代表連接狀態(tài)異常。連續(xù)地檢測到異常時,網(wǎng)關(guān)將重啟NB模組并重新連接MQTT服務(wù)器。
本文系統(tǒng)中,平臺也訂閱了每個網(wǎng)關(guān)的心跳主題,以該主題內(nèi)有無消息來判斷網(wǎng)關(guān)的在線與否狀態(tài)。
該智慧城市路燈管理系統(tǒng)實現(xiàn)了平臺對地區(qū)、路燈群控制和單燈控制[13-14],具體有開關(guān)、調(diào)光、狀態(tài)監(jiān)控、傳感器數(shù)據(jù)讀取等功能;設(shè)計的鬧鐘機制很好地解決了組播數(shù)據(jù)擁塞問題;利用MQTT協(xié)議特點設(shè)計的心跳機制解決了NB網(wǎng)絡(luò)閑置掉線問題。另外,在實際項目中,考慮到產(chǎn)品灌膠后更改配置困難的問題,該系統(tǒng)還搭載了藍牙模組,利用專門設(shè)計的藍牙通信協(xié)議可在燈桿下對燈控器進行直接配置,極大地降低了后期維護成本。本文所設(shè)計的兩層異構(gòu)網(wǎng)絡(luò)通信的智慧路燈管理系統(tǒng)可以在各大城市廣泛應(yīng)用,為城市路燈的管理員提供極大的便利,響應(yīng)國家推進智慧城市路燈的號召,為社會做出一定的貢獻。