張秀娟
(濟寧技師學院,山東濟寧 272100)
隨著科學技術(shù)的飛速發(fā)展,人們的生活環(huán)境和居住條件得到了極大的改善。為了追求更高的生活質(zhì)量,智能家居的概念浮出水面[1]。通過智能化手段對家用電器和設(shè)備進行管理,用戶可通過智能終端設(shè)備來獲取家用電器的運行狀態(tài)并對其進行遠程控制。照明作為家用電器的重要組成部分,其智能化的升級改造,能夠有效改善人們的生活品質(zhì)[2]。
傳統(tǒng)的智能家居產(chǎn)品主要是通過有線網(wǎng)絡(luò)直接進行連接,形成以家庭為單位的網(wǎng)狀結(jié)構(gòu),會產(chǎn)生許多的終端節(jié)點,布線麻煩且會耗費極大的人力,在檢測和維修時也十分不方便。無線通訊技術(shù)為智能家居的發(fā)展提供了新的契機[3-4]。Zigbee 是近些年新興的一種無線通信技術(shù),具有系統(tǒng)功耗低、使用成本低、傳輸距離近、數(shù)據(jù)速率低等特點,非常適合面向家庭場合的智能家居設(shè)計[5]。
智能化的照明系統(tǒng)可以滿足人們對高質(zhì)量生活的追求,創(chuàng)建一個安全、舒適、節(jié)能的LED 照明系統(tǒng),更加貼近實用且人性化的現(xiàn)代化智能家居生活。基于ZigBee 的遙控可調(diào)光LED 燈設(shè)計,是智能家居系統(tǒng)的重要組成部分,構(gòu)建基于ZigBee 的通信網(wǎng)絡(luò),具有LED 燈的遠程控制、智能調(diào)節(jié)等功能。能夠?qū)崿F(xiàn)LED 燈的人性化、網(wǎng)絡(luò)化、智能化控制,同時具備用戶、LED 燈和其他設(shè)備的互聯(lián)互通等功能。
利用ZigBee 自組網(wǎng)技術(shù)將LED 燈接入網(wǎng)絡(luò),與控制器通過ZigBee 網(wǎng)絡(luò)進行通信,可以通過遙控器或上位機對LED 燈進行控制。用戶可以通過遙控器訪問ZigBee 網(wǎng)絡(luò)并發(fā)送控制指令,或通過串口通信使用PC端上位機訪問ZigBee 網(wǎng)絡(luò)發(fā)送控制指令,ZigBee 網(wǎng)絡(luò)將接收到的控制指令傳送給終端控制設(shè)備,以實現(xiàn)對LED燈的控制。
從圖1 中可知,本系統(tǒng)主要由兩部分組成:協(xié)調(diào)器和終端。系統(tǒng)上電后,由協(xié)調(diào)器完成自組網(wǎng),終端節(jié)點自動采集LED 燈的亮度信息,再通過ZigBee 無線通信網(wǎng)絡(luò)把信息傳送給協(xié)調(diào)器,協(xié)調(diào)器再通過串口把信息傳送到PC端,通過上位機軟件將信息展示給用戶,用戶可以從上位機軟件獲取LED 燈的狀態(tài),然后根據(jù)需要點擊上位機上相應的按鍵,經(jīng)處理后,上位機將控制指令通過ZigBee網(wǎng)絡(luò)把指令傳送給終端,終端執(zhí)行指令,以此實現(xiàn)對LED燈的控制,而當沒有向終端節(jié)點傳送的數(shù)據(jù)時,終端節(jié)點將自動進入休眠狀態(tài),實現(xiàn)低功耗。
圖1 系統(tǒng)總體結(jié)構(gòu)圖
基于ZigBee 的智能遙控可調(diào)光LED 燈系統(tǒng)中的硬件設(shè)計,主要包括ZigBee 核心板設(shè)計、電源電路設(shè)計、LED 燈驅(qū)動電路設(shè)計、按鍵電路設(shè)計和其他接口電路設(shè)計等。
ZigBee 作為一個穩(wěn)定的無線協(xié)議,目前有很多芯片都支持該協(xié)議,比較常見的有CC2430、CC2530 等,其中CC2430 是美國德州儀器公司生產(chǎn)的第一代ZigBee 協(xié)議棧集成芯片,支持64k 的ROM 程序空間和1k 的RAM 隨機存取空間,對于當前較為完善的ZigBee 協(xié)議棧來講,程序空間和隨機存取空間不能滿足要求,所以在本系統(tǒng)中選擇了CC2530 作為ZigBee 的主控芯片。CC2530 是專門針對ZigBee 協(xié)議的一個單芯片解決方案。與CC2430 相比較,CC2530 的程序空間和隨機存取空間都有了很大的提升,在內(nèi)部集成了增強型的8051 控制器,高效射頻收發(fā)器,8kB RAM 和其他強大的外設(shè)及其他支持功能。CC2530 在不同需求下可以使用不同的模式,可以滿足低功耗的需求,并且從睡眠模式轉(zhuǎn)換到運行模式只需要幾毫秒的時間,這就更加確保了其低功耗的性能。
ZigBee 核心板中使用的CC2530 最小系統(tǒng)如圖2 所示,其中P0 口全部由電阻上拉到3.3V 電源,上拉電阻可以增強P0 口低電平讀取的穩(wěn)定性。在VCC 和GND 之間輸入2.8V~3.6V 電壓即可正常工作,且在VCC 輸入端接入了一個0.1μF 的電容C1,具有耦合的效果,可以抗電源干擾,保證了芯片可以正常工作。
圖2 ZigBee 核心板電路圖
本系統(tǒng)采用USB 接口供電,如圖3 所示,從P1 端輸入5V 電壓,C5、C6 為電容,用來濾波和儲能,對整個電源供電電路可起到穩(wěn)定電流的作用。PWR1 為LED 電源指示燈,當USB 有輸入時,電流通過電阻R13 將指示燈點亮,R13 是一個10kΩ 的電阻,具有限流的作用。D1 為肖特基二極管IN5819,最大導通電流為1A,它的作用是防止其他接口輸入電源從而導致發(fā)生短路,從USB 輸入的電流經(jīng)過D1 后,流向AMS1117 穩(wěn)壓電路,所以D1 可以保護AMS1117 分支電路。
圖3 電源USB 接口輸入電路圖
CC2530 芯片的輸入電壓為3.3V,所以需要將5V 電壓轉(zhuǎn)換為3.3V 電壓。電壓轉(zhuǎn)換電路如圖4 所示,在本設(shè)計中選用了AMS1117-3.3V 芯片。AMS1117-3.3V 芯片是一款專門用于電源電壓轉(zhuǎn)換的芯片,可將4.2V~12V 的輸入電壓轉(zhuǎn)換為穩(wěn)定輸出的3.3V 電壓,最高輸出1A 電流。電容C2、C3 起到穩(wěn)壓和抗干擾的作用,C4 是一個大電容,可以在電源產(chǎn)生瞬間壓降時,通過電容的放電效應補償電壓差,從而對電源輸入起到穩(wěn)壓的作用,可使得AMS1117 較為穩(wěn)定的輸出3.3V 電壓,然后再經(jīng)過電容C2,電容C2 對輸出的3.3V 電壓進行穩(wěn)壓,為后續(xù)使用3.3V 電壓的元器件做一定的穩(wěn)壓保護作用。
圖4 5V 轉(zhuǎn)3.3V 電路
從LM7805 輸出的5V 電壓經(jīng)過ASM1117 轉(zhuǎn)換后,得到3.3V 電壓,可供CC2530 芯片使用。
圖5 所示為LED 燈的驅(qū)動電路,其中三極管選用NPN 型三極管,在其集電極引出一個接口,發(fā)射極接地。在基極施加一個高電平即可導通集電極到地,可以作為開關(guān)管對接入集電極的負載進行開關(guān)控制。
圖5 LED 燈驅(qū)動電路
如圖6 所示,LED 燈的控制按鍵共有兩個,分別接到了I/O 口的P1_7 和P0_1,按鍵的有效值可設(shè)為高電平有效或低電平有效,但由于CC2530 的I/O 口具有上拉電阻的作用,且上電默認工作在上拉電阻有效的模式,所在將按鍵設(shè)置為低電平有效的觸發(fā)方式,按鍵的一端接I/O口,另一端接GND 即可實現(xiàn)對按鍵的檢測。
圖6 按鍵電路
系統(tǒng)軟件包括zigbee 協(xié)調(diào)器和終端的下位機軟件,以及PC 端的上位機軟件。
下位機程序設(shè)計分為兩部分:ZigBee 協(xié)調(diào)器和ZigBee終端。二者均具有無線數(shù)據(jù)的收發(fā)功能,以保持聯(lián)網(wǎng)通信。ZigBee 協(xié)調(diào)器的流程如圖7 所示,協(xié)調(diào)器主要用于控制終端LED 燈的狀態(tài),對應的按鍵實質(zhì)是鍵值的發(fā)送。此外,LED 燈還可以采用上位機的控制方式,上位機的通信接口采用的是UART 串口通信,通過UART 串口通信,上位機將指令發(fā)送給ZigBee 協(xié)調(diào)器,然后ZigBee 協(xié)調(diào)器將收到的上位機串口命令轉(zhuǎn)換為對應的鍵值后再發(fā)送到ZigBee 終端。
圖7 ZigBee 協(xié)調(diào)器流程圖
ZigBee 協(xié)調(diào)器上電后,系統(tǒng)首先對硬件進行初始化,然后判斷是否有按鍵按下,若有按鍵按下,則發(fā)送相應的鍵值到終端。若沒有按鍵按下,則判斷是否收到來自上位機串口的命令,若收到來自上位機串口的命令,則將串口命令轉(zhuǎn)換為對應的鍵值發(fā)送到ZigBee 終端。若沒有收到來自上位機串口的命令,則判斷是否收到無線數(shù)據(jù),若收到了無線數(shù)據(jù),則緩存節(jié)點數(shù)據(jù)并上報至上位機。若沒有收到無線數(shù)據(jù),則重新回到判斷是否有按鍵按下并循環(huán)。由此實現(xiàn)了上位機遠程控制功能。
ZigBee 終端流程圖如圖8 所示,ZigBee 終端上電后,首先將硬件初始化,然后判斷是否收到無線數(shù)據(jù),無線數(shù)據(jù)的內(nèi)容為來自ZigBee 協(xié)調(diào)器的鍵值,若收到無線數(shù)據(jù),則判斷是否來自協(xié)調(diào)器的命令,否則重新返回判斷是否收到無線數(shù)據(jù)。若收到來自協(xié)調(diào)器的命令,則判斷是否是開關(guān)燈命令,若是則繼續(xù)判斷是否是開燈命令,否則返回判斷是否收到無線數(shù)據(jù)。若收到開燈指令則執(zhí)行開燈指令,否則執(zhí)行關(guān)燈指令,并返回判斷是否收到無線數(shù)據(jù)。
圖8 ZigBee 終端流程圖
上位機軟件設(shè)計使用了Visual Studio 集成開發(fā)環(huán)境,通過串口實現(xiàn)PC 端與ZigBee 無線傳感網(wǎng)絡(luò)的通信。上位機的設(shè)計主要分為兩部分:界面和程序。本系統(tǒng)的上位機用戶界面如圖9 所示,界面的左半部分用來檢測并打開串口,右半部分用來控制LED 燈的開關(guān)和亮度,并可以實時顯示出當前LED 燈的亮度信息。
圖9 上位機測試界面
上位機啟動后,首先要對串口窗體進行初始化,并設(shè)定默認的串口參數(shù)。在對串口初始化完成以后,上位機檢測可用串口以及串口設(shè)置。在按下“打開”鍵后,上位機將參數(shù)配置到串口組件。對于LED 燈的開關(guān)控制及亮度調(diào)節(jié)用上位機的按鈕控制,當點擊上位機中的按鈕時,會觸發(fā)相應的函數(shù),并發(fā)送相應的指令給下位機,在本設(shè)計中共設(shè)置了五檔亮度調(diào)節(jié)。
首先上位機遠程控制功能測試。將協(xié)調(diào)器通過串口與PC 端連接,并給終端上電,然后打開上位機控制軟件,檢測并打開串口,此時可以從上位機界面看到ZigBee協(xié)調(diào)器與終端組網(wǎng)成功,并且可以顯示出當前LED 燈的亮度“1L”代表亮度為1,“2L”代表亮度為2,以此類推。此時可以通過界面上的“亮度1”“亮度2”等按鈕控制LED燈的亮度。
遙控器功能測試。給ZigBee 協(xié)調(diào)器和終端上電,上電后指示燈快閃爍,組網(wǎng)成功后指示燈由快閃變?yōu)槁W,在確定協(xié)調(diào)器與終端組網(wǎng)成功后,可以通過遙控器的按鈕對LED 燈的亮度進行調(diào)節(jié),遙控器的兩個按鈕分別負責控制LED 燈亮度的加和減,共有5 檔亮度可調(diào)節(jié),當亮度調(diào)到最高或最低時,按鈕旁邊的指示燈會閃爍以提醒使用者達到最大可調(diào)節(jié)等級。
為了方便在日常生活中對LED 燈的遠程控制,本文設(shè)計了基于ZigBee 的遙控可調(diào)光LED 燈系統(tǒng)。系統(tǒng)主要由協(xié)調(diào)器和終端兩部分組成,可以實現(xiàn)對LED 燈的遠程控制,以及通過上位機實時監(jiān)控LED 燈的狀態(tài)。首先對基于ZigBee 的遙控可調(diào)光LED 燈系統(tǒng)的功能需求進行了分析,并制定了系統(tǒng)的總體設(shè)計方案。然后進行了系統(tǒng)硬件設(shè)計,介紹了使用到的CC2530 芯片,并對系統(tǒng)中的電源電路、LED 燈驅(qū)動電路、按鍵電路和其他接口電路進行設(shè)計。分別進行了電腦端的上位機軟件設(shè)計,以及包括ZigBee 協(xié)調(diào)器和終端的下位機軟件設(shè)計。最后通過實際測試驗證了系統(tǒng)的功能性。