楊 琳
(商洛學(xué)院 物理與電子信息工程系,陜西商洛 726000)
在生產(chǎn)生活諸多環(huán)境中,溫度成為衡量環(huán)境質(zhì)量的一項重要的指標(biāo)。在林區(qū),溫度過高容易引發(fā)火災(zāi);在糧倉,溫度過高會導(dǎo)致食物變質(zhì);在廠房,溫度過高可能會損壞設(shè)備等。這些問題都會對社會造成巨大的經(jīng)濟損失并威脅到人身安全。因此對溫度具有重要的現(xiàn)實意義。而對場區(qū)的溫度進行實時的監(jiān)測,在溫度超過一定的限度后,做好相關(guān)的措施,便可減少上述問題的發(fā)生。最初,通過人工巡查來測量場區(qū)溫度,這種方式效率低,造成人力資源的浪費。盧超[1]所設(shè)計的分布式溫度采集系統(tǒng)改進了這個問題。在這個系統(tǒng)中,在設(shè)備上放置傳感器,通過總線網(wǎng)絡(luò)的方式,將設(shè)備的溫度信息傳遞到服務(wù)器監(jiān)控站,工作人員在監(jiān)控站可以直接看到場區(qū)設(shè)備的溫度,這在很大程度上提高了效率,節(jié)省了人力。但該系統(tǒng)存在功耗高、布線難、不易操作等不足。龐建瑩[2]所設(shè)計的基于紅外傳感器的電氣火災(zāi)預(yù)警系統(tǒng)中,節(jié)點之間通過紅外線的方式傳輸,實現(xiàn)了無線傳輸,克服了布線的問題,但紅外線只能實現(xiàn)點對點的通信,兩個通信點之間不能有阻礙物,否則會影響通信。鑒于此,本文采用zigbee[3]來實現(xiàn)節(jié)點間的通信,這種方式能耗低、成本低,能實現(xiàn)無線傳輸;并利用Dephi7[4]軟件制作溫度監(jiān)測軟件。該軟件的警報系統(tǒng)提高了工作效率;歷史記錄功能實現(xiàn)了查詢某個節(jié)點在某一段時間內(nèi)的溫度變化狀態(tài)。該系統(tǒng)不僅克服了紅外只能點對點通信的弊端,還實現(xiàn)了足不出戶地監(jiān)測場區(qū)溫度,保證場區(qū)處于合理的溫度狀態(tài),從而有效地預(yù)防森林火災(zāi)、設(shè)備過熱引發(fā)的勞損、糧倉過熱引發(fā)的食物變質(zhì)等問題的發(fā)生。
無線溫度測量系統(tǒng)由監(jiān)測平臺、協(xié)調(diào)器節(jié)點、傳感器節(jié)點組成了星狀網(wǎng)絡(luò)結(jié)構(gòu)[5],系統(tǒng)結(jié)構(gòu)如圖1所示。
系統(tǒng)中的傳感器節(jié)點由數(shù)字溫度傳感器DS18B20與無線發(fā)送模塊CC2430組成,分布在被測位置,如冷庫、糧庫、林區(qū)、機房等應(yīng)用場所,用于采集被測點的溫度信息,并將信息傳輸給協(xié)調(diào)器節(jié)點。傳感器節(jié)點與協(xié)調(diào)器節(jié)點之間以zigbee方式傳輸信息,該方式具有低能耗、低成本等特點。
協(xié)調(diào)器節(jié)點由無線接收模塊CC2430與串口通信模塊RS232組成,放置在傳感器節(jié)點與監(jiān)測平臺之間,用于接收傳感器節(jié)點的溫度信息,并將其傳輸給監(jiān)測平臺PC機的監(jiān)測軟件。
監(jiān)測平臺中的監(jiān)測軟件通過串口通信接收來自于協(xié)調(diào)器節(jié)點的溫度信息,并實現(xiàn)溫度的存儲、顯示、查詢以及報警功能。
圖1 系統(tǒng)結(jié)構(gòu)圖
作為無線溫度測量系統(tǒng)中的一部分,監(jiān)測軟件的作用是使監(jiān)測者在監(jiān)控中心方便地看到被測位置的溫度。需通過串口將被測點的溫度、連接狀態(tài)等信息傳輸給監(jiān)測軟件,監(jiān)測軟件將收集到的信息存儲到數(shù)據(jù)庫中,然后以曲線、列表等形式呈現(xiàn)在軟件界面當(dāng)中?;谝陨系姆治觯疚乃龅谋O(jiān)測軟件需要有如下功能:溫度信息接收、存儲;溫度的曲線、列表顯示、歷史記錄查詢;報警、串口配置等。
監(jiān)測軟件有兩類模塊。第一類是非功能模塊,實現(xiàn)串口配置和密碼登錄;第二類是功能模塊,實現(xiàn)節(jié)點的溫度等信息的顯示、歷史記錄查詢、報警等功能,如圖2所示。
圖2 監(jiān)測軟件模塊劃分圖
1)串口配置,為了保障串口正常工作,實現(xiàn)串口參數(shù)的配置,從而有效地接收信息。
2)密碼登錄,保證系統(tǒng)的安全性。
3)連接狀態(tài)顯示,以指示燈的形式顯示各個被測點的連接狀態(tài)。
4)溫度信息顯示,包括列表顯示、曲線顯示以及歷史記錄查詢。
5)報警功能,當(dāng)某一節(jié)點連接狀態(tài)不正常,或者溫度超出限定的溫度范圍,需系統(tǒng)發(fā)出警報。警報的方式有三種,分別是警鳴音效、彈出對話框提示簡要信息、警報報告說明詳細信息。
本監(jiān)測軟件使用Access數(shù)據(jù)庫,該數(shù)據(jù)庫有溫度表(T-temperature)、溫度限度表(T-limit)、用戶表(T-user)、警報表(T-warning)四個表。溫度表存儲溫度值,溫度限度表存放溫度的范圍,警報表存放警報信息,用戶表存儲用戶名和密碼。
在該軟件中對數(shù)據(jù)庫的訪問是通過ADOConnection控件實現(xiàn)。具體操作過程如下:
1)在界面中添加ADOConnection控件。
2)將其 ConnectionString屬性修改為Use Connection string…/BUILD/Microsoft Jet 4.0 OLE DB Provider[6]。
3)打開數(shù)據(jù)庫所在目錄,點擊其文件名稱,測試連接。
4)將控件的 Connection屬性設(shè)置為ADOConnection控件的名稱,即可完成該控件對數(shù)據(jù)庫的調(diào)用[7]。
登錄功能[8]可提高系統(tǒng)的安全性。工作人員必須填寫正確登錄名和密碼才能夠進入監(jiān)測軟件的主窗口,繼而使用軟件完成監(jiān)測。登錄窗體中需要用到TEdit、TButton、TADOConnection、TADOTable四種控件,其作用分別是輸入框、按鈕、數(shù)據(jù)庫連接。
主窗體,即登錄成功之后即進入到的主界面,該界面如圖3所示。主窗體是監(jiān)測軟件中最重要的窗體,用于獲取、顯示被測點的信息。
主窗體所用的主要控件及其功能如下,TTimer用于獲取時間,TPagecontrol是選項卡面板,TDBGrid是實時數(shù)據(jù)顯示表格,TDataSource用于裝載實時數(shù)據(jù)源,TShape是連接狀態(tài)顯示燈,TDBChart是實時曲線圖表,TDBGrid是歷史查詢表格,TComboBoxEx是節(jié)點選擇下拉框,TDateTimePicker存放起始時間,TDateTimePicker存放結(jié)束時間,Tbutton是查詢按鈕,TComm是串口工具,TMediaPlayer播放警報音。
圖3 主窗體界面
串口配置用于設(shè)定串口的數(shù)據(jù)位、串口名、波特率、校驗位等參數(shù)。這些參數(shù)的配置是通過SPComm第三方控件實現(xiàn)的,SPComm控件的屬性、方法和事件,使編程更加有效和方便[9]。配置串口參數(shù)的操作非常簡單,只要在相對應(yīng)的下拉列表中選擇合適參數(shù)值即可。
在串口配置窗口中,串口的串口名、數(shù)據(jù)位、校驗位、波特率、停止位是通過設(shè)置SPComm控件的 CommName、ByteSize、Parity、BaudRate、StopBits屬性來完成的。該界面中的下拉列表通過ComboBoxEx控件來實現(xiàn)的。SPComm控件的StartComm方法可以實現(xiàn)打開窗口,StopComm方法可以實現(xiàn)關(guān)閉串口[10]。在SPComm控件的OnReceiveData事件中添加處理過程,先將接收到的溫度信息存放在預(yù)先定義的數(shù)組變量里,然后按照如下過程進行數(shù)據(jù)處理。將下位機發(fā)送過來的相鄰的兩個8位數(shù)據(jù)合并成為一個16位的數(shù)據(jù),前一個字節(jié)是高8位,后一個字節(jié)是低8位。然后再將16位數(shù)據(jù)除以4,得到的就是十進制的溫度信息數(shù)據(jù) 。
串口接收來自于協(xié)調(diào)器節(jié)點的信息的程序如下:
var
receivemessage:array of byte;
begin
sleep(100);//延時 100ms,從而保證接收到所有數(shù)據(jù)。
move(buffef,receivemessage,bufferlength);//將接收緩存區(qū)中的數(shù)據(jù)轉(zhuǎn)移到數(shù)組
end;
連接狀態(tài)窗口用于顯示被測點的連接狀態(tài),通過TShape控件的顏色屬性來實現(xiàn)。TShape控件的顏色屬性隨著表征連接狀態(tài)的數(shù)據(jù)改變而改變。其中用綠色表示“正常連接”,用灰色表示“未連接”,而用黃色表示“正在連接”。
1)實時顯示,被測點的溫度數(shù)據(jù)以動態(tài)的形式在此選項卡中顯示出來。該功能通過Query_real查詢到的數(shù)據(jù)庫中的溫度信息,然后通過DBgrid_real控件以列表形式將這些信息顯示出來。
2)曲線顯示,指定節(jié)點的溫度信息在該界面中以曲線的形式顯示出來。該功能通過TQuery控件查詢到指定節(jié)點的溫度信息,再通過TDBChart控件將信息以曲線圖的形式顯示出來。
3)歷史記錄查詢,這一功能用于實現(xiàn)查詢指定節(jié)點在限定的時間范圍的溫度信息。該功能通過TQuery類控件查詢指定節(jié)點的溫度信息,通過DBGrid_history控件以列表方式顯示。
當(dāng)節(jié)點溫度超出指定的范圍或者連接狀態(tài)不正常,警示系統(tǒng)啟動,對工作人員發(fā)出警示信號。該警示過程分為三個步驟。第一,播放警鳴提示音,該功能通過TMediaPlayer控件來播放警報音效的音頻文件來實現(xiàn);第二,彈出對話框,顯示出簡單的警報信息,該功能通過Application.MessageBox語句來實現(xiàn);第三,產(chǎn)生警報報告,說明出現(xiàn)異常節(jié)點的詳細信息,也可以查詢歷史警報記錄,該功能通過AssignFile語句來實現(xiàn)。
為了驗證調(diào)試本軟件的基本功能,進行測試。首先做好準(zhǔn)備工作,包括將傳感器節(jié)點放置在被測點,將協(xié)調(diào)器節(jié)點放置在PC機旁,并連接好串口連線,以及配置好無線傳輸模塊的參數(shù)。然后登錄到軟件中,在設(shè)置溫度上下限、配置串口后點擊開始監(jiān)測,此時可以在窗口中看到每個節(jié)點的溫度、連接狀態(tài)等信息。當(dāng)某個點的溫度超標(biāo),系統(tǒng)會發(fā)出警報。系統(tǒng)運行效果如圖4所示。通過測試,本軟件運行穩(wěn)定,達到監(jiān)測溫度的目標(biāo)。
本文主要從系統(tǒng)組成、需求分析、數(shù)據(jù)庫設(shè)計、界面制作等方面介紹了無線溫度測量系統(tǒng)中的溫度監(jiān)測軟件的設(shè)計,該軟件實現(xiàn)了遠程監(jiān)測被測點的溫度信息。這不僅提高了系統(tǒng)的自動化水平,還降低了系統(tǒng)運行的成本,有廣泛的應(yīng)用前景。
圖4 系統(tǒng)運行效果圖
[1]盧 超.基于PC機與單片機分布式溫度采集系統(tǒng)的設(shè)計[J].儀表技術(shù)與傳感器,2007(6):35-37.
[2]龐建瑩,施云波,修德斌,等.基于紅外傳感器的電氣火災(zāi)預(yù)警系統(tǒng)[J].儀表技術(shù)與傳感器,2010(3):64-66.
[3]邢劭謙,宋 哲.ZigBee無線傳感與衛(wèi)星定位技術(shù)在森林火災(zāi)預(yù)警中的應(yīng)用[J].森林工程,2011,27(6):36-39.
[4]張 瓊,雷 鳴.用Delphi開發(fā)熱輥溫度和速度實時監(jiān)控系統(tǒng)[J].自動化與儀表,2004,19(1):69-72.
[5]吳 鍵,袁慎芳.無線傳感器網(wǎng)絡(luò)節(jié)點的設(shè)計和實現(xiàn)[J].儀器儀表學(xué)報,2006,27(9):1120-1124.
[6]何 娣,馬慧斌,韓凱旋.基于Delphi與Access的人力資源信息管理系統(tǒng)設(shè)計[J].現(xiàn)代電子技術(shù),2012,35(12):58-62.
[7]陳豫龍.Delphi數(shù)據(jù)庫系統(tǒng)開發(fā)實例導(dǎo)航[M].北京:人民郵電出版社,2003:10-12.
[8]于春風(fēng),張?zhí)扉_,劉 艷.基于Delphi7.0的溫控儀數(shù)據(jù)采集系統(tǒng)的研制[J].自動化儀表,2007,28(6):21-23.
[9]桑開勇,陳鐵軍.Delphi環(huán)境下利用SPComm控件進行單片機串口通信[J].現(xiàn)代電子技術(shù),2006,29(15):26-28.
[10]司文慧,魏建平.用Delphi實現(xiàn)工業(yè)控制中上位機的串口通信[J].工業(yè)控制計算機,2007,20(3):20-21.
[11]朱桂鳳.基于MSComm的串口通訊及PLC系統(tǒng)監(jiān)控軟件開發(fā)[J].計算機工程與設(shè)計,2006,27(6):1101-1104.