龔佳妮,呂永旺,周南旭,劉燎原
(江蘇建筑職業技術學院,江蘇 徐州 221116)
現在智能產品越來越多地在生活中推廣應用,智能家電也是家中常見的東西,如智能開關、智能窗簾、掃地機器人或者感知調光系統,采用各種感知控制進行便利化生活已經是日常生活的一部分。隨著現代社會對保護自然環境的重視,國內在感知系統測控方面的研究日趨成熟。
燈光感知測控也是感知系統測控的一種,感應開關已經廣泛應用于照明、開關、安防3個領域。智慧景觀燈的設計就是利用太陽能供電下的自動檢測行人、環境參數等,從而實現燈光自動調節的一種節能技術。多棵智慧景觀樹通過物聯網技術連接在一起,實現了樹樹聯動、樹與云聯動。產品配合由大數據中心、物聯網平臺以及人工智能云計算中心共同建構的管理云平臺,實現了樹網聯動,使產品擁有極強的智慧處理能力[1]。
本文主要針對智慧樹中的路燈系統,介紹了一種根據物體靠近速度與距離進行調光的一種設計方案,并且能通過物聯網進行實時監測數值傳輸。感知調光的依據奌主要有3個:環境光照度、有人進到照明范圍、有人將要進到照明范圍。基本的工作算法是當周圍光照較亮時,景觀燈不開展照明工作,太陽能充電系統為系統供電蓄電池提供太陽能儲能充電;當周圍光照低于一定值時,景觀燈開始照明工作;有人進入照明范圍,則將根據行人距離景觀燈的距離來控制光照的強弱,同時依據樹樹聯合的檢測判斷出該行人將要進入的下一個照明范圍,以提前將下一個景觀燈提高亮度,實現友好、安全照明。
項目可用的物聯網技術主要是LoRa,ZigBee,WiFi等,本文在以下兩個方案中選擇。
方案1:選用ZigBee技術。ZigBee是基于IEEE 802.15.4標準的低功耗局域網協議,是一種近距離、低復雜度、低功耗、低速率、低成本的雙向無線通信技術。主要用于距離短、功耗低且傳輸速率不高的各種電子設備之間,進行數據傳輸以及典型的有周期性數據、間歇性數據和低反應時間數據傳輸的應用,其傳輸距離一般在10~75 m的范圍內。
方案2:選用LoRa技術。LoRa 能實現遠距離、長電池壽命、大容量的系統,進而擴展傳感網絡。LoRa 主要在全球免費頻段運行,包括433,868,915 MHz等。LoRa技術具有遠距離、低功耗(電池壽命長)、多節點、低成本的特性。LoRa的發展勢頭很好,LoRa設備和網絡部署的增多,相互之間會出現一定的頻譜干擾[2]。
伴隨著LoRa技術的不斷壯大,LoRa無線通信設備和互聯網部署不斷地增加,彼此之間會發生相應的頻帶影響。而且LoRa在布設過程中,需要用戶自己組建互聯網,應用上要投入更大。而ZigBee的通信距離合適,抗干擾性強,費用低且模塊易得,因此本設計采用方案1技術。
如圖1所示為ZigBee組網方式,PC機服務器采集各個景觀燈的數據,包括紅外傳感器、環境參數等[3]。
圖1 ZigBee組網方式
1.3.1 各類節點工作過程
(1)節點工作過程:終端節點的工作流程為:數據檢測—無線發送數據包—等待路由節點的確認幀。若沒有收到確認幀則重發數據包;若收到確認幀則進行下一次數據檢測。
(2)路由節點:接收數據包—發送確認幀給終端節點—將數據包無線發送到協調器,等待協調器的確認幀。若沒有收到確認幀則重新發送數據包;若收到確認幀,則接收下一個數據包。
(3)協調器節點:接收路由器的數據包,發送確認幀,發送數據包到串口,接收下一個數據包。如果接收節點(協調器、路由器)處在非接收狀態下,發送節點(終端、路由器)是要將數據重新傳輸的。
1.3.2 組網過程
組建一個完整的ZigBee網狀網絡包括兩個步驟:網絡初始化、節點加入網絡。其中節點加入網絡又包括兩個步驟,即通過與協調器連接入網和通過已有父節點入網。
網絡初始化:ZigBee網絡的建立是由網絡協調器發起的,任何一個ZigBee節點要組建一個網絡必須滿足以下兩點要求:(1)節點是FFD節點,具備ZigBee協調器的能力;(2)節點還沒有與其他網絡連接,當節點已經與其他網絡連接時,此節點只能作為該網絡的子節點,因為一個ZigBee網絡中有且只有一個網絡協調器。
生活中最常見的是用開關來控制燈的亮滅,可以有很明顯的亮和暗的變化。因為人的視覺有1/24 s左右的視覺停留,所以當開關的頻率高于這個值時,人就不會看見燈的亮滅閃爍,而是覺得亮度穩定。在這個頻率下,每個周期中的正脈沖占整個脈沖周期的比值,即為這個頻率下的占空比。占空比從全為高電平的1可以變化到全為低電平的0,不同占空比下所輸出的能量是不一樣的,所控制的燈的亮度也就不一樣。占空比為1時,全功率亮燈,燈最亮;占空比為0時,沒有功率提供,因此燈實際上是滅的。由此可知調節這個占空比就能達到調光的目的,目前流行的一種調節占空比來實現控制的調光方式就是PWM調光[4-5]。
在現實中不會有這樣的人為高頻開關動作,但是用單片機輸出高頻脈沖就能實現。PWM調光方式是利用簡單的數字脈沖,在高于視覺停留的頻率下(比如高達50 Hz以上)控制不同占空比的調光技術。只需要提供不同寬窄的數字式脈沖,就可以很輕松的改變輸出電流的大小,從而調節光的亮度。
脈寬調制(PWM)是利用微處理器的數字輸出來對模擬電路進行控制的一種非常有效的技術,對模擬信號電平進行數字編碼。通過高分辨率計數器的使用,方波的占空比被調制用來對一個具體模擬信號的電平進行編碼。
只要帶寬足夠,任何模擬值都可以使用PWM進行編碼。假設一個占空比為10%的PWM輸出,即在信號周期中,10%的時間為高電平,其余90%的時間為低電平。再假設供電電源為9 V,占空比為10%,則對應的相當于燈在10%周期內亮,而90%周期內是滅,因此這里的燈光亮度大約相當于全亮時的10%。
(1)環境光照度調光。
如圖2所示,環境光照強度越強,PWM波的占空比越低,即高電平所占周期比例越少,從而影響景觀燈的光強度變弱。當環境光照強度強到一定程度時,PWM波的占空比為零,此時景觀燈處在關閉電源輸出狀態,照明燈關閉[6-7]。
圖2 光照強度與PWM波占空比的關系
(2)紅外人體檢測。
系統安裝的紅外人體檢測可以檢測照明范圍內是否有人進入。在需要照明的條件下(如光線低到一定值),有人經過時實現依照環境光條件下的亮燈。
(3)判斷行人走向。
根據先后檢測的人體信號,系統算法可以判斷出行人行進方向,從而提前點亮其前進方向上的下一個燈,并關閉后向燈,以提高照明友好性。
如圖3所示,當行人在街道1行走時,進入A的范圍后A燈亮;慢慢行走至B點,進入B的范圍,B亮A恢復原亮度,同時預判將進入C,此時C亮度提高。再向前當進入十字路口,D和G同時亮起微光,行人左轉進入街道2后,G滅D全亮,同時E也提高亮度。
圖3 十字路口景觀燈分布
系統選用CC2530芯片實現ZigBee組網和現地控制,其最小系統如圖4所示,CC2530有兩個晶振接口:高速晶振(一般32 MHZ)高精度的低速晶振(一般32.768 KHZ),常用端口有去偶電容(PIN_40)和偏置電阻(PIN_30)IO口、復位電路(PIN_20)、下載仿真端口(VCC,GND,RESET,P2_1,P2_2)、射頻電路(PIN_25,PIN_26),以及總計21個通用引腳 P0_0-P0_7,P1_0-P1_7,P2_0-P2_4[8]。
圖4 CC2530最小系統
光照傳感器檢測到的外界環境光照度值以及紅外傳感器檢測到有人經過的信號,均輸入給CC2530,經過計算和判斷,形成控制的PWM波輸出到路燈驅動電路,從而調節亮度[9-10]。PWM調光控制框圖如圖5所示。
圖5 PWM調光控制
為了確保不閃爍,本文設計的系統采用了f=100 Hz的工作頻率,可以知道單個周期為t=1/f=1 000 ms/100=10 ms。在10 ms周期下,以1ms為調節增量,則可選定調節的亮度級別為11級,如果需要更多亮度控制級,其控制過程與此處所給過程一致。其調節時的占空比與高、低電平輸出時間如表1所示[11]。
由上面看出,在軟件循環中,如果產生1 ms的時鐘中斷,則根據當前的亮度要求,控制相應連續中斷數來產生高低電平,就可以實現不同占空比的PWM輸出,從而控制亮度。從邏輯上看,以10為倍數構成一個亮度調節周期(即10 ms),每1 ms產生1個時鐘中斷,每次亮度調節周期開始時,即輸出高電平(亮度級級別為0時除外,此時直接輸出低電平),而當中斷數為亮度級別減1時則電平翻轉為低電平,直到到達10個時鐘中斷數。
比如目前確認亮度為5,則根據表1所示,在連續4個中斷(即4 ms)中輸出高電平,連續6個中斷(即6 ms)中輸出低電平,即實現了占空比為40%的PWM波輸出,且頻率為100 Hz。
1 ms時鐘中斷的設置見下程序代碼說明,其中斷軟件的流程圖如圖6所示。
圖6 調光中斷處理流程
CC2530有4個時鐘:16MRC、32MOSC、32KRC、32.768K。無線通信時必須采用外部32M晶振。用到的寄存器:SLEEPCMD,SLEEPSTA,CLKCONCMD,CLKCONSTA。
void InitClock(void)
{
SLEEPCMD &= ~0x04;
while(!(SLEEPSTA & 0x40));
delay();
CLKCONCMD &= ~0x47;
while(CLKCONSTA & 0x40);
SLEEPCMD ∣= 0x04;
}
每1 ms設置一個中斷,采用定時器中斷的初始化如下代碼。
//定時器初始化
void InitT3()
{
T3CTL ∣= 0x08 ; //開溢出中斷
T3IE = 1; //開總中斷和 T3 中斷
T3CTL ∣=0XE0; //128 分頻,128/16000000*N=0.5S,N=65200
T3CTL &= ~0X03; //自動重裝 00->0xff 65200/256=254(次)
T3CTL ∣=0X10; //啟動
EA = 1; //開總中斷
}
void main(void) {
InitLed(); //調用初始化函數
InitT3();
while(1){}
}
#pragma vector = T3_VECTOR //定時器 T3
__interrupt void T3_ISR(void) {
IRCON = 0x00; //清中斷標志, 也可由硬件自動完成
}
本文所介紹的方法用于基于物聯網的多功能智慧景觀樹的感知調光系統,在亮度調節上,先用1ms中斷實現了11級亮度調節,運行效果完全正常。接著通過調節時鐘中斷的時長和調節周期(f=100 Hz不變),分別實現了50級、100級、256級亮度調節,均運行正常。受時鐘中斷精度的影響,超過256級的調節,開始出現閃爍,測量輸出波形有較大干擾,基本不可用。而256級亮度調節已經完全適應于智慧景觀樹的路燈照明要求,因此測試結果表明,本文介紹的PWM調光辦法是能夠完全正常工作的。