大型服務器遠程溫度監控系統設計
2.2 單片機系統的設計
單片機系統電路由單片機STC89C52RC、數字溫度傳感器DS18B20、串口通信電路、步進電機驅動電路和繼電器驅動電路組成,如圖3所示。文中使用10個DS18B20可對服務器溫度進行多點檢測,單片機用一根總線就可實現對所有傳感器的數據采集。3端穩壓集成電路7805為單片機提供穩定的5 V電源,ULN2003是一個多輸入多輸出的放大電路,它將單片機輸出的信號進行放大可以直接驅動步進電機。集成電路MAX 232把單片機的TTL電平轉換成RS232電平,這樣通過電腦的RS232串行接口,可以直接下載程序到單片機;用RS232/RS485電平轉換卡完成電平轉換后,就可以用RS485總線進行遠程通信。本文引用地址:http://cqxgywz.com/article/170755.htm

單片機程序采用C語言和匯編語言混合編寫,向溫度傳感器讀指令以及定時部分,由于要求的時序較嚴格,用匯編語言編程效果較好,數據處理部分用C語言編寫相對簡單。單片機程序的流程圖如圖4所示,單片機按照一定的時間間隔,依次從10個數字溫度傳感器DS18B20中循環讀取溫度數據,并立刻將其發送到PC機,同時查詢是否收到PC機的控制指令,若收到控制指令,則將目標溫度值同當前溫度值進行對比,從而決定如何調整溫度調節設備的工作狀態,即改變步進電機位置抑或改變繼電器動作。

2.3 PC機程序設計
PC機的主要功能是實現與單片機的串行通信及監控人員查看溫度和調節服務器機房溫度。單片機將溫度數據發送到PC機串行接口時,程序能及時獲得該數據,并將溫度值呈現給監控人員,同時更新溫度曲線的顯示,從而以動態的效果表達溫度的變化情況。當監控人員需要改變服務器溫度時,通過PC機能向單片機發送相應溫度控制指令。
PC機程序采用VC6.0進行編寫。VC6.0具有一個串口通信控件,開發人員利用它可以方便地完成串口通信部分的程序編寫。每當串行接口收到數據時,系統會發生一個接收事件響應,系統就會執行該事件響應所對應的程序,進而完成溫度數據的接收與貯存。同時,當監控人員進行溫度調節時,使用該控件的發送數據函數,串行接口就向單片機發送相應控制指令。

利用VC6.0的定時器Timer,可以實現溫度曲線的定時更新顯示。設置一個時間間隔,并使能該Timer控件,每經過一個這樣的時間間隔,就會發生Timer事件響應,系統則執行該事件響應對應的程序。因此,在PC機程序中用一個二維數組存貯溫度曲線上各點的橫軸與縱軸坐標,分別與溫度的大小與時刻對應;利用Timer控件,每隔一定時間,把接收的溫度值存貯,通過數組中元素的移動,并移人最新溫度值對應坐標,從而將二維數組中元素更新,進而更新溫度曲線,使曲線總是顯示當前時間段的溫度。PC機程序的流程如圖5所示。
3 結束語
經實際測試表明:該溫度遠程監控系統對1 000 m以內的服務器機房溫度進行監控,溫度誤差在2 ℃以內,而且依次對10個溫度傳感器進行數據讀取,完成一個循環僅需2 s時間。表明該系統滿足了通信距離、準確性和實時性的要求。
系統在合肥某大型超市服務器機房投入使用以來,運行可靠,且由于其直觀的溫度顯示效果,獲得用戶好評,表明該系統的設計具有較高的實用價值。










評論