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