張玉杰 張海濤 劉麗
摘 要:針對(duì)目前國(guó)內(nèi)城市景觀照明系統(tǒng)中存在的以單體建筑照明為主、管理分散,難以實(shí)現(xiàn)大型景觀照明系統(tǒng)的同步控制以及花樣遠(yuǎn)程更新的不足,提出了一種基于云平臺(tái)的城市景觀照明控制系統(tǒng)。該系統(tǒng)采用多層控制模式,利用MQTT發(fā)布訂閱的優(yōu)勢(shì),將不同區(qū)域的景區(qū)照明系統(tǒng)接入云平臺(tái)進(jìn)行組網(wǎng),并結(jié)合MQTT通信和網(wǎng)絡(luò)時(shí)間同步特性,實(shí)現(xiàn)了系統(tǒng)的同步控制和故障監(jiān)測(cè),采用FTP協(xié)議實(shí)現(xiàn)了花樣文件的遠(yuǎn)程更新。該系統(tǒng)能夠滿足景觀照明系統(tǒng)統(tǒng)一管理的需求,為城市級(jí)景觀照明系統(tǒng)提供了可借鑒的方案。
關(guān)鍵詞:城市景觀照明系統(tǒng);組網(wǎng);MQTT;SNTP;FTP
中圖分類號(hào):TP273;TN915 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):2095-1302(2018)01-00-04
0 引 言
隨著城市化規(guī)模的擴(kuò)大和品質(zhì)要求的提升,景觀照明范圍和燈具數(shù)量逐漸增加,因此將景觀照明進(jìn)行有效控制、統(tǒng)一管理尤為重要[1]。目前城市景觀照明存在的問題有:國(guó)內(nèi)景觀照明應(yīng)用多以單體建筑照明系統(tǒng)為主,缺乏城市級(jí)景觀照明的同步控制和統(tǒng)一管理;由于分散管理等原因,對(duì)于景觀照明系統(tǒng)中的故障設(shè)備,無法得到及時(shí)有效的維護(hù)和處理;為了展現(xiàn)城市整體形象和局部區(qū)域特色,常需要對(duì)幾個(gè)街區(qū)或區(qū)域的景觀照明進(jìn)行同時(shí)或聯(lián)動(dòng)展示,并且景觀照明的花樣可以根據(jù)不同的需要隨時(shí)修改和更新[2]。
為滿足城市級(jí)景觀照明系統(tǒng)統(tǒng)一管理、故障信息實(shí)時(shí)獲取、聯(lián)動(dòng)控制以及遠(yuǎn)程花樣更新的需求,需要設(shè)計(jì)一種能夠?qū)崿F(xiàn)大規(guī)模、同步控制、可擴(kuò)展性強(qiáng)的景觀照明控制系統(tǒng)。消息隊(duì)列遙測(cè)傳輸(Message Queuing Telemetry Transport,MQTT)協(xié)議的發(fā)布訂閱模型是一種實(shí)現(xiàn)了一對(duì)多、多對(duì)多的松耦合異步通信模式,突破了C/S架構(gòu)請(qǐng)求/應(yīng)答通信機(jī)制存在的同步、緊耦合、點(diǎn)對(duì)點(diǎn)等局限,可滿足系統(tǒng)的通信需求。
本文針對(duì)景觀照明系統(tǒng)的需求,提出了基于云平臺(tái)的景觀照明系統(tǒng),在充分利用MQTT發(fā)布訂閱模型優(yōu)勢(shì)的基礎(chǔ)上,結(jié)合網(wǎng)絡(luò)時(shí)間同步和網(wǎng)絡(luò)文件傳輸服務(wù),實(shí)現(xiàn)了景觀照明系統(tǒng)的遠(yuǎn)程控制與管理,系統(tǒng)照明花樣、圖案等文件的遠(yuǎn)程更新,同步控制區(qū)域協(xié)調(diào)展示等功能,為城市級(jí)景觀照明控制和管理提出了可借鑒的方案。
1 系統(tǒng)總體設(shè)計(jì)方案
結(jié)合目前城市景觀照明系統(tǒng)的發(fā)展需求,本文設(shè)計(jì)的景觀照明系統(tǒng)具有如下運(yùn)作模式和特點(diǎn):
(1)各景區(qū)單體照明系統(tǒng)既受控于本系統(tǒng)的監(jiān)控中心,還將受控于城市級(jí)景觀照明系統(tǒng);
(2)城市級(jí)景觀照明系統(tǒng)利用MQTT發(fā)布訂閱模型傳輸控制信息,結(jié)合網(wǎng)絡(luò)時(shí)間同步,確保城市景觀照明系統(tǒng)的同步協(xié)調(diào)控制;
(3)城市級(jí)景觀照明系統(tǒng)增加了網(wǎng)絡(luò)文件服務(wù),通過城市級(jí)景觀照明監(jiān)控中心實(shí)現(xiàn)大型景觀照明花樣的遠(yuǎn)程更新,減少了原有人工拷貝手動(dòng)更新花樣列表的工作量;
(4)城市景觀照明系統(tǒng)利用MQTT發(fā)布訂閱模型的優(yōu)勢(shì),實(shí)現(xiàn)了故障信息向景區(qū)負(fù)責(zé)人員、城市級(jí)管理員、廠商維護(hù)人員等多方的實(shí)時(shí)推送,確保故障設(shè)備的及時(shí)發(fā)現(xiàn)和維護(hù)。
城市景觀照明系統(tǒng)采用多層控制模式,其網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)如圖1所示,由城市級(jí)管理層、網(wǎng)絡(luò)通信層、景區(qū)層、景點(diǎn)層等組成。
該城市級(jí)景觀照明系統(tǒng)在保留景區(qū)照明系統(tǒng)監(jiān)控中心原有功能的基礎(chǔ)上,增加了MQTT通信服務(wù),通過云平臺(tái)實(shí)現(xiàn)了城市級(jí)景觀照明系統(tǒng)的快速組網(wǎng),并增加了網(wǎng)絡(luò)時(shí)間同步服務(wù)和文件傳輸服務(wù),從而實(shí)現(xiàn)了城市級(jí)景觀照明系統(tǒng)的同步協(xié)調(diào)控制、花樣遠(yuǎn)程更新以及故障監(jiān)測(cè)。
(1)城市級(jí)管理層作為整個(gè)城市景觀照明系統(tǒng)的監(jiān)管中心,完成實(shí)現(xiàn)對(duì)整個(gè)照明系統(tǒng)的遠(yuǎn)程控制、管理和維護(hù);
(2)網(wǎng)絡(luò)通信層作為景觀照明系統(tǒng)數(shù)據(jù)的存儲(chǔ)中心以及數(shù)據(jù)傳輸?shù)臉屑~,可提供MQTT通信服務(wù)、文件傳輸服務(wù)、時(shí)間同步服務(wù)和數(shù)據(jù)分析、存儲(chǔ)服務(wù);
(3)景區(qū)層以下作為景區(qū)照明系統(tǒng)的監(jiān)控中心,向上通過網(wǎng)絡(luò)通信層與城市及照明管理層連接,是整個(gè)城市照明系統(tǒng)骨干網(wǎng)絡(luò)的重要組成部分。
2 云平臺(tái)接入與MQTT通信主題設(shè)計(jì)
2.1 云平臺(tái)接入方案設(shè)計(jì)
云平臺(tái)作為網(wǎng)絡(luò)通信層的重要組成部分,是城市級(jí)管理層和景區(qū)層的通信橋梁。根據(jù)系統(tǒng)功能需求分析,云平臺(tái)可提供用戶信息管理、數(shù)據(jù)存儲(chǔ)、MQTT通信及文件傳輸?shù)确?wù)。
云平臺(tái)采用資源定位的方式設(shè)計(jì),結(jié)合數(shù)據(jù)庫(kù)實(shí)現(xiàn)對(duì)用戶和燈具設(shè)備資源的存儲(chǔ)和管理。采用Rest風(fēng)格的Web服務(wù)對(duì)用戶注冊(cè)、數(shù)據(jù)管理等業(yè)務(wù)進(jìn)行接口封裝,通過URL描述終端,以HTTP常用操作POST、GET、DELETE、PUT等方法實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)資源的CURD(增刪改查)等功能[3]。通過部署Apache Apollo服務(wù)器(MQTT服務(wù)器),提供MQTT消息代理服務(wù)。FTP服務(wù)器采用Server-U軟件進(jìn)行配置。
監(jiān)控中心(城市級(jí)監(jiān)控中心和景區(qū)監(jiān)控中心)的云平臺(tái)接入包含以下幾個(gè)步驟:
(1)監(jiān)控中心信息注冊(cè)。通過用戶登錄界面進(jìn)行監(jiān)控中心的信息注冊(cè),完成監(jiān)控中心信息在云平臺(tái)數(shù)據(jù)庫(kù)中的創(chuàng)建。新的監(jiān)控中心在注冊(cè)時(shí)通過超文本傳輸協(xié)議(Hyper Text Transfer Protocol,HTTP)訪問云平臺(tái)的接口,將監(jiān)控中心的用戶名和密碼發(fā)送到云端數(shù)據(jù)庫(kù),完成注冊(cè)。
(2)MQTT通信服務(wù)接入。監(jiān)控中心注冊(cè)成功后,通過HTTP協(xié)議訪問云平臺(tái)的接口,獲取MQTT代理服務(wù)器的接入口令,驗(yàn)證通過后連接到MQTT代理服務(wù)器[4]。
(3)文件傳輸協(xié)議(File Transfer Protocol,F(xiàn)TP)傳輸服務(wù)接入。監(jiān)控中心在連接文件服務(wù)器之前,通過HTTP協(xié)議訪問云平臺(tái)的接口,獲取文件服務(wù)器授權(quán)的賬號(hào)和域名,連接FTP文件服務(wù)器[5]。
2.2 MQTT通信主題設(shè)計(jì)
MQTT通信作為實(shí)現(xiàn)城市級(jí)管理層與景區(qū)層監(jiān)控中心應(yīng)用數(shù)據(jù)交互的核心,基于消息主題號(hào)建立數(shù)據(jù)交互的通道。針對(duì)景觀照明系統(tǒng)運(yùn)行模式的需求,將主題號(hào)分為私有主題號(hào)、組主題號(hào)和廣播主題號(hào)三種類型。主題號(hào)的定義見表1所列。
私有主題號(hào)以各景區(qū)監(jiān)控中心的用戶名UserName命名,以確保各景區(qū)節(jié)點(diǎn)主題號(hào)的唯一性。當(dāng)景觀照明系統(tǒng)中的城市級(jí)監(jiān)控中心需要對(duì)單個(gè)景區(qū)進(jìn)行遠(yuǎn)程控制時(shí),通過主題號(hào)“UserName\in”發(fā)送控制命令;當(dāng)子景區(qū)監(jiān)控中心需要進(jìn)行命令回復(fù)或檢測(cè)到景區(qū)子系統(tǒng)出現(xiàn)故障時(shí),以主題號(hào)“UserName\out”向城市級(jí)監(jiān)控中心發(fā)送回復(fù)信息或故障信息。
分組主題號(hào)用于實(shí)現(xiàn)景觀照明系統(tǒng)的編組控制。針對(duì)某些場(chǎng)景效果,可能需要若干個(gè)節(jié)點(diǎn)端共同配合實(shí)現(xiàn)一個(gè)花樣效果,在布置景觀照明系統(tǒng)時(shí),將需要進(jìn)行編組控制的子景區(qū)合并成一個(gè)分組,以組號(hào)Group_ID作為組主題號(hào),分組中的所有景區(qū)監(jiān)控中心訂閱該組主題號(hào),城市級(jí)監(jiān)控中心通過組主題號(hào)發(fā)布控制命令,實(shí)現(xiàn)對(duì)照明系統(tǒng)中景區(qū)的編組控制。
廣播主題號(hào)用于實(shí)現(xiàn)對(duì)景觀照明系統(tǒng)的整體控制。系統(tǒng)中所有的景區(qū)監(jiān)控中心統(tǒng)一訂閱“broadcast”廣播主題號(hào),當(dāng)景觀照明系統(tǒng)中需要進(jìn)行整體定時(shí)開、關(guān)燈操作或整體聯(lián)動(dòng)時(shí),城市級(jí)監(jiān)控中心通過廣播主題號(hào)發(fā)布控制命令,實(shí)現(xiàn)對(duì)整個(gè)景觀照明系統(tǒng)的整體控制。
3 系統(tǒng)主要功能實(shí)現(xiàn)
3.1 同步控制功能實(shí)現(xiàn)
系統(tǒng)的同步控制是基于網(wǎng)絡(luò)時(shí)間同步和MQTT通信實(shí)現(xiàn)的,網(wǎng)絡(luò)時(shí)間同步可確保各節(jié)點(diǎn)端監(jiān)控中心時(shí)間保持一致,保證不同區(qū)域的景觀照明系統(tǒng)同時(shí)響應(yīng)總控端的控制命令。MQTT通信可確保城市級(jí)監(jiān)控中心到各景區(qū)監(jiān)控中心一對(duì)多控制命令的下發(fā)。
3.1.1 網(wǎng)絡(luò)時(shí)間同步
本設(shè)計(jì)中采用簡(jiǎn)單網(wǎng)絡(luò)時(shí)間協(xié)議(Simple Network Time Protocol,SNTP)結(jié)合PC機(jī)內(nèi)置的RTC時(shí)鐘實(shí)現(xiàn)各景區(qū)監(jiān)控中心的網(wǎng)絡(luò)時(shí)間同步。
SNTP協(xié)議支持單播、多播和廣播工作模式,本設(shè)計(jì)中選用單播模式。當(dāng)各景區(qū)監(jiān)控中心收到城市級(jí)監(jiān)控中心廣播的對(duì)時(shí)命令時(shí),SNTP客戶端與NTP服務(wù)器建立UDP連接,利用客戶端發(fā)送請(qǐng)求時(shí)的時(shí)間戳T1,服務(wù)器接收到請(qǐng)求時(shí)的時(shí)間戳T2,服務(wù)器發(fā)送回復(fù)時(shí)的時(shí)間戳T3,客戶端接收到回復(fù)的時(shí)間戳T4。計(jì)算客戶端與服務(wù)器之間的時(shí)間偏差值:((T2-T1)+(T3-T4))/2,網(wǎng)絡(luò)延時(shí)時(shí)間:(T2-T1)+(T4-T3)。根據(jù)偏差值校正本地的RTC時(shí)鐘[6]。部分實(shí)現(xiàn)代碼如下:
try
{
client = new UdpClient();
IPEndPoint ipEndPoint = _TimeServer.GetIPEndPoint();
client.Client.SendTimeout = _TimeOut * 1000;
client.Client.ReceiveTimeout = _TimeOut * 1000;
client.Connect(ipEndPoint);
client.Send(Request, byteCount);
byte[] received = client.Receive(ref ipEndPoint);
if (received.Length >= byteCount && ((received[0] & modeMask) == modeServer))
…
}
3.1.2 MQTT通信實(shí)現(xiàn)
M2Mqtt是一個(gè)適用于.NET平臺(tái)以及WinRT平臺(tái)的MQTT客戶端開源項(xiàng)目。該MQTT客戶端庫(kù)使用C#語言開發(fā),可連接任意MQTT代理服務(wù)器[7]。本系統(tǒng)中作為MQTT客戶端的總控端和節(jié)點(diǎn)端正是基于M2Mqtt庫(kù)開發(fā)的。
MQTT通信實(shí)現(xiàn)包含MQTT服務(wù)器連接、心跳管理、訂閱主題、取消訂閱、發(fā)布消息以及接收消息等完整的MQTT通信機(jī)制[8]。MQTT通信流程如圖2所示。
3.2 花樣遠(yuǎn)程更新功能實(shí)現(xiàn)
FTP是一種基于C/S架構(gòu)的TCP/IP的應(yīng)用層協(xié)議之一,用于實(shí)現(xiàn)計(jì)算機(jī)之間的文件傳輸。景觀照明系統(tǒng)的花樣遠(yuǎn)程更新采用FTP協(xié)議和MQTT通信實(shí)現(xiàn),包括三個(gè)環(huán)節(jié),即花樣文件上傳,花樣更新消息通知,花樣下載。
花樣文件上傳由城市級(jí)監(jiān)控中心作為FTP客戶端,利用FTP協(xié)議將花樣文件上傳至云端的FTP服務(wù)器[9]。上傳文件時(shí),首先使用OpenFileDailog()打開對(duì)話框,選擇需要上傳的花樣文件并獲取文件句柄,通過FileInfo()獲取文件大小等具體信息,以分配緩存區(qū)。準(zhǔn)備就緒后調(diào)用CreatFtpWebRequest ()將文件上傳到服務(wù)器,文件上傳結(jié)束后,關(guān)閉文件傳輸?shù)耐ǖ?,調(diào)用GetFileList()獲取文件列表,繼而刷新文件列表。
花樣更新消息通過建立的MQTT通道傳輸消息,并根據(jù)景觀照明效果的需求,將花樣更新的通知消息按照各景區(qū)單播、組播或廣播主題號(hào)下發(fā)到對(duì)應(yīng)的景區(qū)監(jiān)控中心,消息內(nèi)容為已上傳花樣文件的相關(guān)信息。
花樣下載由各景區(qū)監(jiān)控中心作為FTP客戶端訪問云端FTP服務(wù)器,完成花樣文件的下載。景區(qū)監(jiān)控中心根據(jù)接收的城市級(jí)監(jiān)控中心發(fā)送的花樣更新消息,提取相關(guān)花樣文件的信息,調(diào)用ShowFtpFileAndDirectory()獲取服務(wù)器上的文件目錄,選中要下載的文件,調(diào)用CreatFtpWebRequest()從服務(wù)器上下載文件[10]。
3.3 故障信息推送功能實(shí)現(xiàn)
景觀照明系統(tǒng)的故障信息推送功能基于MQTT通信實(shí)現(xiàn)。城市級(jí)管理層所有用戶需訂閱所有子景區(qū)監(jiān)控中心發(fā)布消息的單播主題號(hào)。子景區(qū)監(jiān)控中心周期性查詢子景區(qū)范圍內(nèi)各景點(diǎn)的燈具狀態(tài),當(dāng)檢測(cè)到燈具出現(xiàn)故障時(shí),景區(qū)監(jiān)控中心以主題號(hào)“UserName\out”發(fā)布故障信息,云平臺(tái)中的代理服務(wù)器完成故障信息向城市級(jí)管理層多個(gè)用戶的推送,能夠及時(shí)獲取設(shè)備的故障信息,方便及時(shí)維護(hù)和處理[11]。
4 系統(tǒng)測(cè)試
通過搭建測(cè)試平臺(tái)對(duì)城市景觀照明系統(tǒng)的功能進(jìn)行測(cè)試,主要包括同步協(xié)調(diào)控制、花樣更新以及故障監(jiān)測(cè)等功能的實(shí)現(xiàn)。測(cè)試系統(tǒng)由1臺(tái)安裝有城市級(jí)監(jiān)控中心軟件的PC機(jī)、2臺(tái)安裝有子景區(qū)監(jiān)控中心軟件的PC機(jī)、2個(gè)包含控制器和調(diào)光驅(qū)動(dòng)器的子燈具照明系統(tǒng)組成。城市照明管理系統(tǒng)的界面如圖3所示,花樣控制效果如圖4所示。
經(jīng)測(cè)試,該景觀照明系統(tǒng)可以實(shí)現(xiàn)城市級(jí)監(jiān)控中心對(duì)各景區(qū)監(jiān)控中心對(duì)應(yīng)燈具控制系統(tǒng)的同步控制、花樣遠(yuǎn)程更新以及故障監(jiān)測(cè),系統(tǒng)運(yùn)行穩(wěn)定,達(dá)到了預(yù)期的效果。
5 結(jié) 語
本文提出了基于云平臺(tái)的景觀照明系統(tǒng),通過對(duì)各景區(qū)監(jiān)控中心的軟件進(jìn)行升級(jí),增加MQTT客戶端程序、FTP客戶端程序以及SNTP客戶端程序,將各景區(qū)監(jiān)控中心接入云平臺(tái)實(shí)現(xiàn)景觀照明系統(tǒng)的快速組網(wǎng),借助云平臺(tái)提供的MQTT通信服務(wù)、文件傳輸服務(wù),實(shí)現(xiàn)了城市景觀照明系統(tǒng)的同步協(xié)調(diào)控制、花樣更新以及故障監(jiān)測(cè)等功能。經(jīng)測(cè)試,該方法穩(wěn)定可靠,滿足了城市景觀照明系統(tǒng)統(tǒng)一管理、靈活控制的需求,具有較好的前景和實(shí)際應(yīng)用價(jià)值。
參考文獻(xiàn)
[1]劉廷章,王健,楊曉.基于Web的城市景觀照明遠(yuǎn)程監(jiān)控技術(shù)研究[J].電氣應(yīng)用,2009,28(3): 32-35.
[2]張玉杰,周潔,邱金妮.LED景觀照明系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].電子器件,2017,40(1):262-266.
[3]周蘭鳳,孟馳,彭俊杰. 一種基于云環(huán)境的文件存儲(chǔ)策略的研究[J].計(jì)算機(jī)工程與科學(xué),2016,38(2):262-268.
[4]許金喜,張新有.Android平臺(tái)基于MQTT協(xié)議的推送機(jī)制[J].計(jì)算機(jī)系統(tǒng)應(yīng)用,2015,24(1):185-190.
[5]王占軍,王偉,趙志剛.基于FTP協(xié)議的文件傳輸組件設(shè)計(jì)與實(shí)現(xiàn)[J].沈陽(yáng)師范大學(xué)學(xué)報(bào)(自然科學(xué)版),2012,30(3):375-377.
[6]胡巨,高新華.SNT對(duì)時(shí)方式在數(shù)字化變電站中應(yīng)用[J]. 電力自動(dòng)化設(shè)備,2009,29(3):143-145.
[7]溫彬民.一種基于自適應(yīng)心跳機(jī)制的MQTT通信協(xié)議的研究與應(yīng)用[D].廣州:華南理工大學(xué),2015.
[8] Collina M, Corazza G E,Vacelli-Coralli A, Introducing the QEST broker: Scaling the IoT by bridging MQTT and REST[C].2012 IEEE 23rd International Symposium on Personal Indoor and Mobile Radio Communications (PIMRC), 2012:36-41.
[9] Cai Bin.Formalized Description and Analysis of FTP on Petri Net[C].2015 International Conference on Intelligent Information Hiding and Multimedia Signal Processing (IIH-MSP).IEEE, 2015:1135-1139.
[10]羅遷.嵌入式家庭信息中心研究與設(shè)計(jì)[D].北京:北京郵電大學(xué),2015.
[11]彭可,馮準(zhǔn),鄭懷鵬,等.城市LED照明系統(tǒng)遠(yuǎn)程監(jiān)控平臺(tái)設(shè)計(jì)與開發(fā)[J].計(jì)算機(jī)測(cè)量與控制, 2016,24(9):103-106.