魏志榮,梁志勛,趙家祺,覃海林,羅富貴
河池學院 大數據與計算機學院,廣西 河池 546300
夜景照明燈光是為了滿足城市夜景效果而設置的燈光,豐富的城市夜景照明有助于塑造城市景物的亮點,提升人們在夜晚對城市的感知度[1]。景觀照明是園林景觀設計師將園林景觀按照其特有的空間結構以景觀燈加以點綴,從而突出不一樣的精神內涵,以達到觀賞的目的。如桂林地下溶洞的照明就是采用地域特色與景觀燈相結合的設計方法,形成了“1+1>2”的設計效果??紤]到景觀照明對于城市景觀的重要性,對景觀照明進行合理布局是十分必要的。在傳統的布置過程中,照明景觀燈的位置不確定,傳統的有線控制方式也使得布局時還需要考慮走線問題,提升了工作的難度。再加上當前我國城市景觀照明智能化發展水平參差不齊,在景觀燈光系統規劃、建設管理、協議接口標準的統一性、功能設置等方面還有待完善[2]。
傳統的景觀照明控制方法由于分布比較雜散,多處于室外,無法實現對景觀燈的靈活控制和實時監控[3]?;诖?,文章提出了基于無線傳感器網絡的智能LED景觀控制方案。該方案使用ESP8266作為節點主控、ESP-MESH作為組網方案進行組網,大大地減少了各個景觀燈之間的線路連接。ESP-MESH將一個區域內所有的LED景觀光源數據匯聚到主節點,主節點使用4G模塊將數據傳輸到云平臺,云平臺再將數據下發到手機App或者電腦上位機端,通過手機App或者電腦上位機可以控制一個區域內的LED景觀光源[4]。
系統通過電腦上位機或手機App統一協調控制同一區域內景觀燈的無線組網。在本系統內,各個終端節點與協調器節點組建為無線MESH網絡,MESH網絡與阿里云服務器通過協調器節點搭載的4G模塊實現通信。上傳到阿里云服務器的數據將下發到電腦上位機或者手機App(見圖1),手機App和電腦上位機的景觀燈設置數據也可通過云服務器下發到搭載4G模塊的協調器節點,協調器節點再處理后轉發到無線MESH網絡[5]。

圖1 系統總體框架
景觀燈控制系統協調器節點(見圖2)通過4G網絡與阿里云服務器建立連接。系統選用AIR724模塊,協調器節點的主控為STC8A8K64S4A12單片機(STC單片機),負責處理來自4G模塊和ESP網絡的數據。ESP8266通過RGB燈具控制電路模塊驅動RGB LED燈具,RGB LED燈具的控制需要通過PWM實現,ESP8266引腳能夠實現10 bit PWM。由于ESP8266的輸出功率較低,采用MOS管驅動電路可以滿足50 W大功率RGB LED燈具的工作需求[6]。

圖2 協調器節點框架圖
在終端節點(見圖3)中,ESP8266通過RGB燈具控制電路可控制RGB燈具,因此在終端節點的電路中不需要使用STC單片機。ESP8266使用ESP-MESH進行組網,通過LED驅動電路控制LED燈具。

圖3 終端節點框架圖
設計方案采用額定功率為50 W、額定電壓為24 V的RGB LED燈具,型號為IRF540N的MOS管作為LED驅動電路。MOS管的柵極相對于源極的電壓Vgs=20 V,需要添加前置三極管、單片機引腳驅動三極管,三極管可以再驅動N溝道MOS管。
使用的ESP8266的型號為ESP07S,連接棒狀天線,可以加大通信距離[7]。ESP8266在系統中的作用是構建ESP-MESH網絡,每個終端節點都使用ESP8266作為主控,兼顧無線網絡通信,使用引腳IO5、IO4、IO0作為RGB燈具PWM控制的輸出引腳。
景觀燈的輸入總電源采用的是220 V轉24 V的電源模塊,并采用“DC-DC+LDO”方案為控制器供電。DC-DC芯片的型號是LM2596S-5.0,LDO芯片的型號是AMS1117-3.3。
系統的開發環境選用的是Keil μVision 5和Arduino IDE,使用Altium Designer繪制原理圖及PCB圖。
協調器節點上電之后開始系統初始化(見圖4),之后檢查是否已經登錄到阿里云服務器。如果沒有登錄,則開始執行登錄操作;如果已經登錄,則等待數據的到來并判斷數據來源。如果數據為云服務器下發的數據,STC單片機會開始解析JSON數據,并通過串口1發送到MESH網絡;如果數據為MESH網絡上傳的節點數據,STC單片機會將處理過的數據通過串口2上連接的4G模塊上傳到云服務器[8]。

圖4 協調器節點程序流程圖
無線傳感器網絡與云服務器之間采用JSON數據格式進行通信,各屬性的意義如下:switch為節點開關值;ID為節點號,ALL為全部節點;delaytime為延時時間,用于炫彩模式的光色彩變換速度;luminance為亮度值,取值范圍為0~255;mode為工作模式,1為落日模式,2為定時模式;rgbmode為RGB燈具模式,1為單色模式,2為炫彩模式;lightvalue為環境光照值,在環境光照值為10的時候自動開啟燈具(在落日模式下生效);R、G、B為燈具的RGB值;time為定時模式下景觀燈的開啟、關閉時間;open_hour為開啟時間;close_hour為關閉時間。
終端節點上電之后開始系統的初始化(見圖5),之后開始檢測是否連接上MESH網絡。如果沒有連接上,則搜尋附近具有相同前綴和密碼設置的節點進行連接,組建MESH網絡;如果已經連接上MESH網絡,則開始等待MESH網絡中的消息,當有消息到來時,需要判斷數據種類。數據有兩類,一類是云服務器下發的景觀燈設置JSON數據,另一類是協調器節點下發到MESH網絡的時間更新JSON數據。協調器節點會每隔30 s獲取1次當前時間,組成JSON數據{"ID":"ID號","status":"ok"},并下發到MESH網絡。當接收到的數據為云服務器下發的景觀燈設置JSON數據時,終端節點開始解析該JSON數據并根據數據設置景觀燈的狀態或顏色;當接收到的數據為協調器節點下發到MESH網絡的時間更新JSON數據時,需要解析JSON數據并設置景觀燈的時間,該時間用于景觀燈的定時模式。

圖5 終端節點程序流程
使用MQTT.fx軟件進行測試,在MQTT.fx上登錄阿里云賬號,并訂閱相關Topic,接著向指定Topic發送JSON數據,觀察LED燈具的變化。
(1)把“rgbmode”的值設為1(此時RGB值為R=0,G=0,B=100),“lightvalue”的值設為20。用手捂住主節點上的光敏電阻,此時景觀燈亮起藍色;松開手,環境光強值上升,此時景觀燈熄滅。
(2)把“rgbmode”的值設為2,“delaytime”的值由1 000改為5 000。此時,景光燈開啟炫彩模式,景光燈開始顏色變換,光顏色的變換速度變慢。
(3)把“mode”設為2,“open_hour”設為19,“close_hour”設為5,開啟定時模式,預期19:00燈光開啟,5:00燈光關閉。實際結果為UTC北京時間19:00:42燈光開啟,5:00:20燈光關閉,誤差較小。
(4)測試相鄰兩個節點的最遠通信距離。手持一個節點,逐漸遠離最近的另一個節點,并在遠離的時候發送JSON數據,發現最遠通信距離達36 m,該距離足以滿足大部分景觀設計的距離要求。
IPv6的大規模應用為物聯網應用掃清了障礙,使物聯網的發展迎來了高潮,物物互聯的時代即將到來。物聯網的迅猛發展使得很多傳統行業產生了新的突破,文章提出的方案借助了物聯網與無線傳感器網絡技術,解決了傳統景觀照明控制不方便與實時監控難的問題,為景觀照明控制開拓了新的發展方向。