曹永鴻

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