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