成鳳敏
(唐山學(xué)院 智能與信息工程學(xué)院,河北 唐山 063000)
隨著高等院校教學(xué)設(shè)施的擴(kuò)建,教室的數(shù)量不斷增多,教室電能的需求量逐漸增大。在教室燈光管理的調(diào)查中發(fā)現(xiàn),在室內(nèi)光線充足或者教室里沒(méi)有學(xué)生的情況下,有些教室的燈依然開(kāi)啟,甚至由于工作人員的疏忽,教室照明燈一夜不關(guān)。這些現(xiàn)象造成了電能浪費(fèi),不符合國(guó)家節(jié)能減排的政策。因此,有必要對(duì)用電設(shè)備的管理進(jìn)行優(yōu)化,本文利用WIFI通信技術(shù),設(shè)計(jì)了一款通過(guò)移動(dòng)控制終端實(shí)現(xiàn)教室燈光遠(yuǎn)程控制的系統(tǒng)。
系統(tǒng)采用上位機(jī)與下位機(jī)聯(lián)合工作機(jī)制,上位機(jī)與下位機(jī)之間的通信采用無(wú)線模塊實(shí)現(xiàn)。通過(guò)上位機(jī)終端對(duì)下位機(jī)系統(tǒng)進(jìn)行管理,控制教室燈光的亮滅。上位機(jī)發(fā)送的命令通過(guò)無(wú)線模塊傳輸給下位機(jī),在下位機(jī)部分加入時(shí)鐘芯片,并且設(shè)計(jì)相應(yīng)的程序與時(shí)鐘芯片結(jié)合,實(shí)現(xiàn)定時(shí)開(kāi)關(guān)燈的功能。考慮到高校作息時(shí)間有變的情況,對(duì)系統(tǒng)進(jìn)行了修改定時(shí)模式下開(kāi)關(guān)燈時(shí)間的設(shè)計(jì)。
1.2.1 單片機(jī)模塊
采用STC89C52單片機(jī)芯片作為下位機(jī)的主控芯片,通過(guò)輸出高低電平來(lái)控制燈的亮滅。
1.2.2 WIFI模塊
WIFI模塊是通信環(huán)節(jié)的中樞,接收上位機(jī)的控制命令,通過(guò)串口通信傳遞給單片機(jī)。采用ESP8266無(wú)線通訊模塊,內(nèi)部有集成好的TCP/IP通信協(xié)議,此模塊作為一個(gè)服務(wù)器端供客戶端連接。
1.2.3 時(shí)鐘芯片
時(shí)鐘芯片負(fù)責(zé)整個(gè)系統(tǒng)時(shí)鐘的產(chǎn)生,用于實(shí)現(xiàn)定時(shí)開(kāi)關(guān)燈。系統(tǒng)采用的DS1302時(shí)鐘芯片能夠產(chǎn)生精確的時(shí)鐘,對(duì)年、月、周、日有計(jì)時(shí)功能,并能夠自動(dòng)進(jìn)行閏年補(bǔ)償[1]。除了可以接主電源外,DS1302還可接備用電源,并且在主電源工作時(shí)對(duì)備用電源進(jìn)行涓細(xì)電流充電,若主電源掉電,備用電源就開(kāi)始為時(shí)鐘芯片供電,所以DS1302在外部電源沒(méi)電時(shí)仍然能夠在備用電源的供電情況下繼續(xù)工作。
1.2.4 液晶顯示
LCD1602液晶顯示模塊負(fù)責(zé)顯示時(shí)間,單片機(jī)往時(shí)鐘芯片里面寫讀指令,然后把里面的實(shí)時(shí)時(shí)間讀出來(lái),最后顯示在液晶顯示模塊上。液晶顯示模塊顯示年、月、周、日、時(shí)、分、秒信息,在對(duì)系統(tǒng)定時(shí)時(shí)間進(jìn)行設(shè)置時(shí)起到參考作用,并且還可作為電子日歷使用。
1.2.5 上位機(jī)
上位機(jī)采用LABVIEW軟件進(jìn)行編程制作可視化界面,實(shí)現(xiàn)人機(jī)交互的功能。友好的可視化界面能夠讓操作者在短時(shí)間內(nèi)熟悉系統(tǒng)操作,通過(guò)點(diǎn)擊相應(yīng)按鈕向下位機(jī)發(fā)送命令,可便捷地對(duì)燈光進(jìn)行控制。
STC89C52單片機(jī)的引腳及與外電路連接如圖1所示。

圖1 STC89C52單片機(jī)引腳及與外電路連接圖
P0口的P0.0至P0.7分別接LCD1602液晶顯示模塊的D0至D7口,負(fù)責(zé)向液晶顯示模塊并行寫入需要顯示的數(shù)據(jù)。
P2.0連接液晶顯示模塊的RS引腳,P2.1連接液晶顯示模塊的RW引腳,P2.2連接E使能引腳。這三個(gè)引腳控制單片機(jī)向液晶顯示模塊中寫命令和寫數(shù)據(jù),當(dāng)RS為低電平、RW為低電平、E為高電平時(shí),單片機(jī)通過(guò)P0口向液晶顯示模塊中寫入指令;當(dāng)RS為高電平、RW為低電平、E為高電平時(shí),單片機(jī)向液晶顯示模塊寫入顯示的數(shù)據(jù)。
P3.0是串口輸入(RXD)引腳,連接WIFI模塊的TXD引腳,負(fù)責(zé)接收由WIFI模塊傳過(guò)來(lái)的數(shù)據(jù);P3.1是串口輸出(TXD)引腳,連接WIFI模塊的RXD引腳,負(fù)責(zé)向WIFI模塊寫入初始化指令,完成對(duì)WIFI模塊的配置。
P3.4連接DS1302時(shí)鐘模塊的I/O引腳,P3.5連接時(shí)鐘模塊的RST(復(fù)位)引腳,P3.6連接時(shí)鐘模塊的SCLK(脈沖)引腳。當(dāng)向時(shí)鐘模塊里面寫數(shù)據(jù)時(shí),P3.5置高電平,在P3.6的下降沿時(shí)時(shí)鐘模塊放置數(shù)據(jù),在P3.6的上升沿時(shí)時(shí)鐘模塊鎖存數(shù)據(jù);當(dāng)從時(shí)鐘模塊讀取數(shù)據(jù)時(shí),P3.5置高電平,在P3.6的下降沿時(shí)時(shí)鐘模塊放置數(shù)據(jù),在P3.6的上升沿時(shí)單片機(jī)鎖存數(shù)據(jù)。
ESP8266無(wú)線通訊模塊有三種工作方式,分別是AP模式、STA模式和AP+STA模式。其中AP模式是服務(wù)器模式,相當(dāng)于路由器,等待客戶端的連接;STA模式是客戶端模式,相當(dāng)于用戶終端,和手機(jī)、筆記本電腦等具有無(wú)線連接功能的設(shè)備類似;AP+STA模式既有服務(wù)器模式的功能又有客戶端模式的功能,當(dāng)模塊處于服務(wù)器模式時(shí),可與另一個(gè)具有服務(wù)器功能的模塊連接。這三種模式分別用在不同的場(chǎng)景[2],本系統(tǒng)采用AP模式。ESP8266無(wú)線通信模塊電路如圖2所示。

圖2 ESP8266無(wú)線通信模塊電路圖
模塊供電電壓為3.3 V,當(dāng)CH_PD引腳接高電平或VCC時(shí)(其余三個(gè)引腳懸空,也可接VCC),由FLASH啟動(dòng)進(jìn)入AT系統(tǒng)。當(dāng)CH_PD引腳接低電平時(shí),模塊啟動(dòng)進(jìn)入系統(tǒng)升級(jí)模式,此時(shí)通過(guò)串口升級(jí)的方式對(duì)模塊內(nèi)部進(jìn)行升級(jí)[3]。
DS1302時(shí)鐘模塊引腳排列及電路連接如圖3所示。

圖3 DS1302時(shí)鐘模塊引腳排列及電路連接圖
VCC1與VCC2分別是主電源和備用電源,當(dāng)主電源掉電時(shí),時(shí)鐘模塊也能繼續(xù)正常運(yùn)行。時(shí)鐘模塊由備用電源和主電源中電壓比較大的那個(gè)供電,當(dāng)主電源比備用電源電壓高0.2 V以上時(shí),主電源進(jìn)行供電;當(dāng)備用電源比主電源電壓高時(shí),備用電源進(jìn)行供電。X1,X2是時(shí)鐘芯片的振蕩源,外接32.768 kHz的晶振源。RST是復(fù)位引腳,當(dāng)需要啟動(dòng)所有的數(shù)據(jù)傳輸時(shí),把復(fù)位引腳的輸入驅(qū)動(dòng)置高電平。如果復(fù)位引腳處于高電平,則系統(tǒng)開(kāi)始為數(shù)據(jù)傳輸做初始化任務(wù),這時(shí)輸入輸出引腳變?yōu)楦邇?nèi)阻狀態(tài)。系統(tǒng)剛上電開(kāi)啟時(shí),復(fù)位引腳要保持低電平狀態(tài)直到VCC大于2.5 V。只有脈沖引腳處于低電平狀態(tài)時(shí),才可以把復(fù)位引腳置為高電平狀態(tài)[4]。
串口中斷函數(shù)用來(lái)接收無(wú)線通信模塊的數(shù)據(jù)。當(dāng)數(shù)據(jù)發(fā)送到單片機(jī)的串口數(shù)據(jù)接收緩沖區(qū)時(shí),程序進(jìn)入到串口中斷函數(shù)。先將緩沖區(qū)的數(shù)據(jù)賦給一個(gè)變量,再使用接收到的這些變量進(jìn)行其他操作,完成想要實(shí)現(xiàn)的功能。串口中斷程序流程如圖4所示。

圖4 串口中斷程序流程圖
將定時(shí)模式與手動(dòng)模式的控制程序放到串口中斷中,當(dāng)串口接收到無(wú)線通信模塊的控制命令后,會(huì)將接收到的命令與提前設(shè)置好的命令進(jìn)行比對(duì),判斷是否需要進(jìn)入定時(shí)模式,若進(jìn)入定時(shí)模式,則進(jìn)行定時(shí)模式的操作;否則進(jìn)入手動(dòng)模式,等待接收手動(dòng)輸入的控制信號(hào)。
上位機(jī)界面采用LABVIEW軟件進(jìn)行編寫,界面上設(shè)置了定時(shí)模式與手動(dòng)模式的切換開(kāi)關(guān),并且手動(dòng)模式的優(yōu)先級(jí)高于定時(shí)模式,這提高了系統(tǒng)的實(shí)用性。程序設(shè)計(jì)采用事件結(jié)構(gòu)和while循環(huán)結(jié)構(gòu),事件結(jié)構(gòu)嵌套在while循環(huán)結(jié)構(gòu)里面。事件結(jié)構(gòu)的事件源為按鍵,不同的按鍵對(duì)應(yīng)不同的事件,每一個(gè)事件都預(yù)設(shè)一個(gè)控制命令,當(dāng)按鍵被按動(dòng)時(shí),其所對(duì)應(yīng)的值就會(huì)發(fā)生改變而觸發(fā)事件并將預(yù)先設(shè)置好的命令發(fā)送出去。命令先是被寫入TCP數(shù)據(jù)控件,然后讀取TCP數(shù)據(jù),再通過(guò)無(wú)線網(wǎng)卡把數(shù)據(jù)傳送到下位機(jī)。
圖5為系統(tǒng)上位機(jī)界面,界面上有模式切換按鈕、8間教室燈光控制按鈕,界面簡(jiǎn)潔美觀。點(diǎn)擊模式切換按鈕,系統(tǒng)的工作方式即可在定時(shí)模式與手動(dòng)模式之間切換,點(diǎn)擊燈光控制按鈕便可控制教室燈光的開(kāi)關(guān)狀態(tài)。

圖5 上位機(jī)界面
基于WIFI的教室燈光遠(yuǎn)程控制系統(tǒng)采用STC89C52單片機(jī)作為下位機(jī),通過(guò)判斷接收到的命令與預(yù)設(shè)命令是否一致來(lái)控制教室燈光的狀態(tài)。通過(guò)ESP8266 WIFI通信模塊實(shí)現(xiàn)上下位機(jī)通信,把從上位機(jī)傳來(lái)的數(shù)據(jù)發(fā)給單片機(jī),實(shí)現(xiàn)最終的控制功能。該系統(tǒng)實(shí)現(xiàn)了手動(dòng)、自動(dòng)相結(jié)合的智能化管理,提高了電能使用效率,降低了人力成本,經(jīng)過(guò)實(shí)驗(yàn)驗(yàn)證,該系統(tǒng)可使學(xué)校教室照明系統(tǒng)節(jié)電率達(dá)到25%以上,這不僅會(huì)使照明燈具的維修和管理費(fèi)用大幅減少,而且也會(huì)延長(zhǎng)照明燈具的使用壽命,因此該系統(tǒng)具有很高的推廣價(jià)值。