曹永鴻
【摘要】本文介紹了一種綜合利用單片機(jī)技術(shù)、vb編程及asp動(dòng)態(tài)網(wǎng)頁(yè)技術(shù)實(shí)現(xiàn)學(xué)校網(wǎng)絡(luò)中心空調(diào)遠(yuǎn)程控制手段,涉及單片機(jī)溫度采集、反饋控制以及與主機(jī)通信技術(shù),vb、asp編程技術(shù)。綜合性、實(shí)踐性強(qiáng)有一定實(shí)用價(jià)值。
【關(guān)鍵詞】WEB遠(yuǎn)程監(jiān)控單片機(jī)溫度采集串口通信vbasp
【中圖分類號(hào)】G633.93 【文獻(xiàn)標(biāo)識(shí)碼】A 【文章編號(hào)】2095-3089(2012)11-0090-02
通過(guò)對(duì)空調(diào)開關(guān)的研究,我們發(fā)現(xiàn),空調(diào)控制器是塊單片機(jī)電路,開關(guān)控制是由一個(gè)小觸動(dòng)按鈕實(shí)現(xiàn)的,當(dāng)按下該按鈕,將單片機(jī)的引腳電平拉低,松開后又恢復(fù)正常高電平,這樣單片機(jī)根據(jù)這個(gè)脈沖,判斷是電源開關(guān)。如果我們采用另外一套單片機(jī)系統(tǒng)來(lái)產(chǎn)生該電源脈沖信號(hào),配合溫度傳感器,我們就可以實(shí)現(xiàn)根據(jù)網(wǎng)絡(luò)中心室內(nèi)溫度對(duì)空調(diào)開關(guān)進(jìn)行控制的閉環(huán)控制系統(tǒng)。通過(guò)單片機(jī)和網(wǎng)絡(luò)中心原有的web服務(wù)器的上下位機(jī)通信,配合特定的代理程序可以實(shí)現(xiàn)網(wǎng)絡(luò)中心溫度數(shù)據(jù)的上傳和遠(yuǎn)程控制命令的下達(dá);再通過(guò)asp網(wǎng)頁(yè)的操作,實(shí)現(xiàn)網(wǎng)絡(luò)中心空調(diào)的自動(dòng)控制和遠(yuǎn)程監(jiān)控。
下面就網(wǎng)絡(luò)中心空調(diào)自動(dòng)和遠(yuǎn)程監(jiān)控系統(tǒng)作一詳細(xì)說(shuō)明。
系統(tǒng)功能:
夏季溫度高(如30℃)時(shí)自動(dòng)打開空調(diào)進(jìn)行降溫(事先空調(diào)處于待機(jī)狀態(tài),且設(shè)定為制冷模式)。
室內(nèi)溫度低于一定值(如20℃)時(shí)關(guān)閉空調(diào)。
通過(guò)學(xué)校外網(wǎng)平臺(tái)監(jiān)視網(wǎng)絡(luò)中心溫度數(shù)據(jù),并提供手動(dòng)操作遠(yuǎn)程控制空調(diào)的開關(guān)。
實(shí)現(xiàn)步驟:
根據(jù)系統(tǒng)功能,我們把整個(gè)系統(tǒng)劃分為硬件和軟件兩大部分,就各部分分述如下:
硬件部分,又分為三部分:
一、空調(diào)及改造
拆開空調(diào)前面板,找到電路板,將電源按鍵的兩極用網(wǎng)絡(luò)雙絞線的一股的兩根線焊接上去(其它三股可空閑,也可以根據(jù)需要擴(kuò)展到其它控制按鈕上),經(jīng)適當(dāng)布線引入單片機(jī)系統(tǒng)的繼電器輸出口。根據(jù)具體情況雙絞線可適當(dāng)長(zhǎng)些,這樣可以將我們的控制系統(tǒng)遠(yuǎn)離空調(diào),減少空調(diào)啟動(dòng)關(guān)閉大電流對(duì)系統(tǒng)的影響,也可以避免太靠近空調(diào)導(dǎo)致控制過(guò)程的波動(dòng)效應(yīng)。
二、單片機(jī)和溫度傳感器部分
單片機(jī)選用較常見、通用的51系列單片機(jī),因本系統(tǒng)的接口較少,考慮采用AT89C2051,具有引腳少,支持c語(yǔ)言編程,體積小等優(yōu)點(diǎn),在電子類產(chǎn)品中有廣泛的應(yīng)用。
溫度傳感器采用DS18B20數(shù)字溫度傳感器,它采用單總線方式通信,接線方便,封裝成后可應(yīng)用于多種場(chǎng)合。
三、執(zhí)行部件
空調(diào)啟動(dòng)的信號(hào)采用單片機(jī)控制的繼電器閉合短路空調(diào)電源控制按鈕的兩腳產(chǎn)生,這樣可實(shí)現(xiàn)電氣隔離。繼電器選擇性能較好、全封閉、壽命長(zhǎng)的,工作電壓最好5v,考慮驅(qū)動(dòng)的穩(wěn)定性,我采用了林頓管集成片ULM2003A來(lái)驅(qū)動(dòng)繼電器,這要比三極管驅(qū)動(dòng)方式穩(wěn)定,減少故障。
軟件部分,也分為三部分:
一、單片機(jī)工作程序
根據(jù)系統(tǒng)的功能,該部分主要完成溫度的讀取、上傳、上位機(jī)命令的接受、繼電器開關(guān)控制等幾個(gè)部分,為提高編程效率,采用c語(yǔ)言編程。針對(duì)上述各功能,編寫相應(yīng)函數(shù)模塊或代碼段,如下:
1.溫度讀取
該功能是系統(tǒng)的核心,準(zhǔn)確、穩(wěn)定地讀取DS18B20的溫度數(shù)據(jù)是系統(tǒng)正確工作的前提。根據(jù)芯片的使用手冊(cè)編寫溫度讀取函數(shù),在操作時(shí)序上要嚴(yán)格按照單總線的協(xié)議進(jìn)行,具體細(xì)節(jié)可參閱芯片使用手冊(cè)。
2.數(shù)據(jù)的發(fā)送和接收
該功能利用單片機(jī)和上位機(jī)(web服務(wù)器)的串口通信實(shí)現(xiàn)數(shù)據(jù)的收發(fā),在上位機(jī)上運(yùn)行vb編寫的代理程序,它通過(guò)串口通信接收來(lái)自單片機(jī)的溫度數(shù)據(jù),并存入ACCESS數(shù)據(jù)庫(kù)(該數(shù)據(jù)庫(kù)在系統(tǒng)軟件部分處于核心地位,保存了所有溫度數(shù)據(jù)和遠(yuǎn)程控制數(shù)據(jù));另外該代理程序也不斷檢測(cè)數(shù)據(jù)庫(kù)中相關(guān)內(nèi)容,判斷是否向下位機(jī)發(fā)送控制命令。
因?yàn)閱纹瑱C(jī)系統(tǒng)無(wú)法預(yù)知遠(yuǎn)程的人工控制命令何時(shí)產(chǎn)生,所以采用中斷方式來(lái)讀取串口數(shù)據(jù),根據(jù)數(shù)據(jù)去控制空調(diào)的開關(guān)和一些狀態(tài)值。
3.繼電器控制
通過(guò)向與繼電器控制端連接的單片機(jī)I/O端口寫0或1來(lái)控制ULM2003A芯片的輸入端,其輸出控制繼電器的閉合和斷開,因空調(diào)開關(guān)需要的是一脈沖信號(hào),因此繼電器應(yīng)先閉合然后再斷開,中間加入一幾十到幾百毫秒的延時(shí)。
4.主程序工作
在主程序中完成如下工作:(1)中斷初始化;(2)有關(guān)變量的初始化;(3按一定時(shí)間間隔讀取溫度值發(fā)送到上位機(jī),并根據(jù)溫度值去控制繼電器的動(dòng)作;(4)檢查上位機(jī)發(fā)過(guò)來(lái)的命令執(zhí)行繼電器的動(dòng)作需要特別指出,因上位機(jī)發(fā)送的手動(dòng)操作命令是通過(guò)中斷方式讀取,且置標(biāo)志變量有效,為了使系統(tǒng)能及時(shí)響應(yīng)該命令,在延時(shí)等待函數(shù)中也必須檢查該標(biāo)志變量,若有效則立即退出延時(shí)等待。另外在程序中還需設(shè)置一些狀態(tài)參數(shù)來(lái)識(shí)別空調(diào)的當(dāng)前狀態(tài),經(jīng)過(guò)一些技巧性處理可以實(shí)現(xiàn)正確邏輯,預(yù)防錯(cuò)誤,糾正錯(cuò)誤。
二、ASP交互網(wǎng)頁(yè)
該頁(yè)面完成用戶驗(yàn)證,折線圖方式顯示溫度值,當(dāng)前開關(guān)狀態(tài)顯示,遠(yuǎn)程開關(guān)操作。因功能簡(jiǎn)單,所以選擇asp網(wǎng)頁(yè)實(shí)現(xiàn),折線圖的顯示采用免費(fèi)的圖形控件FusionCharts完成,既專業(yè)又美觀。
三、上、下位機(jī)通信代理程序
代理程序起到“橋梁”的作用,通過(guò)上文提到的數(shù)據(jù)庫(kù)完成遠(yuǎn)程客戶和單片機(jī)系統(tǒng)的數(shù)據(jù)交流,主要由以下幾部分組成。
1.在串口事件代碼中接收單片機(jī)發(fā)來(lái)的溫度和狀態(tài)數(shù)據(jù),按一定時(shí)間間隔存入數(shù)據(jù)庫(kù)。
2.向數(shù)據(jù)庫(kù)寫入溫度和狀態(tài)值,狀態(tài)為1表示開空調(diào),為0表示關(guān),2表示有錯(cuò)誤,3表示人工遠(yuǎn)程操作。
3.在程序中設(shè)置一定時(shí)器,時(shí)間間隔1000毫秒,在定時(shí)事件中完成數(shù)據(jù)庫(kù)中關(guān)于遠(yuǎn)程控制信息的監(jiān)視,一旦有遠(yuǎn)程控制的信息,即向下位機(jī)發(fā)送特定命令字符。
4.數(shù)據(jù)庫(kù)的構(gòu)成
數(shù)據(jù)庫(kù)包含兩個(gè)表:溫度數(shù)據(jù)表,遠(yuǎn)程操作信息表。各數(shù)據(jù)表結(jié)構(gòu)如下:
1.“溫度數(shù)據(jù)”表結(jié)構(gòu):
■
2.“遠(yuǎn)程操作信息”表結(jié)構(gòu):
■
該表只需1條記錄,其中包含操作密碼和是否手動(dòng)方式兩條信息,密碼內(nèi)容可自行采用某種加密方式加密,這里不再贅述。
本文給出了一種基于單片機(jī)系統(tǒng)和WEB頁(yè)面方式實(shí)現(xiàn)空調(diào)自動(dòng)控制和遠(yuǎn)程控制,在此系統(tǒng)中稍加擴(kuò)展還可以實(shí)現(xiàn)空調(diào)的更多控制,如溫度設(shè)定,甚至通過(guò)代理程序控制與服務(wù)器連接的攝像頭還可以完成更多有趣的操作。同樣道理,也可以將此系統(tǒng)擴(kuò)展到對(duì)其它設(shè)備、物理參數(shù)的控制,相信只要大家多動(dòng)腦筋,我們的工作可以更輕松愉快!