1 系統(tǒng)總體結(jié)構(gòu)
該系統(tǒng)總體結(jié)構(gòu)如圖1所示,各個(gè)溫濕度測(cè)試控制模塊都帶有網(wǎng)絡(luò)接口,通過路由器與中心服務(wù)器相連。中心服務(wù)器包括IIS信息服務(wù)器系統(tǒng)和SQL數(shù)據(jù)庫(kù)服務(wù)器,前者負(fù)責(zé)與處于聯(lián)機(jī)狀態(tài)的溫濕度測(cè)試節(jié)點(diǎn)通信獲取溫濕度測(cè)量結(jié)果,然后通過Intemet以網(wǎng)站的方式向客戶廣播接收到的溫濕度檢測(cè)數(shù)據(jù),并將接收到的數(shù)據(jù)(測(cè)試節(jié)點(diǎn)編號(hào)、溫度、濕度、測(cè)量時(shí)間等)存入SOL數(shù)據(jù)庫(kù)中,同時(shí)客戶根據(jù)不同的權(quán)限可以通過中心服務(wù)器向各個(gè)測(cè)試控制模塊發(fā)指令,改變某個(gè)溫濕度控制的參數(shù)。
溫濕度測(cè)試模塊的結(jié)構(gòu)如圖2所示,其結(jié)構(gòu)包括:主控制器(MCu)、溫濕度傳感器、數(shù)顯及按鍵、Flash存儲(chǔ)器、網(wǎng)絡(luò)傳輸模塊、時(shí)鐘器件、蜂鳴器。其測(cè)試控制過程為:每隔一定時(shí)間MCU進(jìn)行一次溫濕度測(cè)量,如果與中心服務(wù)器連機(jī),將結(jié)果通過網(wǎng)絡(luò)上傳至中心服務(wù)器,否則將結(jié)果和當(dāng)前時(shí)間存儲(chǔ)在板上的 Flash;再將濕度測(cè)量值與用戶設(shè)定值比較,根據(jù)比較的結(jié)果進(jìn)行不同的處理。例如,當(dāng)測(cè)試濕度高于設(shè)定值時(shí),通過控制除濕材料吸收濕氣來降低濕度,如果達(dá)到設(shè)定濕度值后,通過一定的反饋控制使柜內(nèi)的濕度保持于設(shè)定范圍內(nèi)。如果溫度或者濕度高于危險(xiǎn)門限,系統(tǒng)通過蜂鳴器報(bào)警。
2 溫濕度測(cè)試控制模塊
2.1 溫濕度傳感器的選擇
由于溫濕度測(cè)量精度是決定系統(tǒng)性能的關(guān)鍵,因此,這里選取瑞士Scnsirion公司生產(chǎn)的數(shù)字溫濕度傳感器SHl75實(shí)現(xiàn)溫濕度測(cè)量。該器件的特點(diǎn)為:出廠前,每只傳感器都在極為精確的濕度室中做過精密校準(zhǔn),校準(zhǔn)系數(shù)被編成相應(yīng)的程序存入校準(zhǔn)存儲(chǔ)器中;高度集成,內(nèi)部集成有溫度測(cè)量、濕度測(cè)量、信號(hào)變換、A/D轉(zhuǎn)換和加熱器等功能;提供二線數(shù)字串行接口SCK和DATA,接口簡(jiǎn)單,支持CRC傳輸校驗(yàn),傳輸可靠性高;測(cè)量精度可編程調(diào)節(jié),內(nèi)置A/D轉(zhuǎn)換器(分辨率為8~12位,可以通過編程設(shè)置其內(nèi)部寄存器進(jìn)行選擇),測(cè)量精確度高,由于同時(shí)集成溫濕度傳感器,可以提供溫度補(bǔ)償?shù)臐穸葴y(cè)量值和高質(zhì)量的露點(diǎn)計(jì)算功能等,濕度精度在±4%以內(nèi),溫度精度在±0.4℃以內(nèi)。
2.2 檢測(cè)數(shù)據(jù)存儲(chǔ)方案
當(dāng)溫濕度檢測(cè)控制模塊沒有與控制主機(jī)聯(lián)機(jī)時(shí),需要保存檢測(cè)數(shù)據(jù),以備檢查。因此該系統(tǒng)選用存儲(chǔ)容量為16 Mb的SST25VF016B,它屬于NAND型非易失性閃速存儲(chǔ)器。該存儲(chǔ)器具有速度快、成本低、密度大的特點(diǎn),廣泛應(yīng)用于傳感器測(cè)量系統(tǒng),其讀/寫操作是以字節(jié)為單位,而擦除操作則以塊為單位進(jìn)行操作,讀、寫和擦除操作均通過命令完成;不能字節(jié)擦除,在每次改寫操作之前需要先擦除一整塊;每一塊的擦除次數(shù)有限,為10萬次左右。根據(jù)系統(tǒng)存儲(chǔ)數(shù)據(jù)類型的需要,將Flash分為2部分:一部分(2塊,每塊32 kh)存儲(chǔ)該控制塊的系統(tǒng)信息,包括編號(hào)、溫度校正信息、濕度校正信息、濕度控制范圍等;另一部分(62塊,每塊32 kb)存儲(chǔ)實(shí)時(shí)的溫度測(cè)量結(jié)果,包括測(cè)量時(shí)間、溫度、濕度,以及該記錄是否上傳。Fhash擦、寫的控制算法為:開機(jī)時(shí),系統(tǒng)讀取系統(tǒng)信息,獲得各種控制參數(shù);然后找出上一次溫濕度記錄的存儲(chǔ)最后位置及每塊的使用情況,繼續(xù)寫入新的測(cè)量信息。當(dāng)前記錄塊寫滿以后,在系統(tǒng)信息中更新塊使用情況記錄,找一個(gè)新的塊寫入。如果存儲(chǔ)信息達(dá)到系統(tǒng)容量,選擇62塊中所存信息最早的塊擦除,重新使用。這種設(shè)計(jì)參考了u-cos文件管理系統(tǒng),但由于傳感器測(cè)量記錄的長(zhǎng)度是固定的,簡(jiǎn)化了每條記錄的讀寫算法。
2.3 濕度控制算法
對(duì)于溫濕度的監(jiān)測(cè)和控制,如果僅通過簡(jiǎn)單的反饋控制(即濕度高于設(shè)定值,吸濕裝置吸收潮氣,飽和后將向外排放潮氣,如此反復(fù)來達(dá)到濕度的控制)很難達(dá)到理想的控制,原因是溫度控制器件和吸濕裝置的工作曲線通常都是非線性的,這種非線性使得控制時(shí)間的推算變得不確定。經(jīng)過反復(fù)研究、實(shí)驗(yàn),本文在溫濕度檢測(cè)控制系統(tǒng)中使用了模糊控制的方法獲得較好的效果。即根據(jù)監(jiān)控節(jié)點(diǎn)內(nèi)一段時(shí)間內(nèi)溫濕度測(cè)量值,得到吸濕裝置和溫度控制裝置能力的模糊估計(jì)(分為5類:強(qiáng)、較強(qiáng)、中、較弱、弱),并根據(jù)濕度和設(shè)定范圍的差值,得到目前濕度值的模糊估計(jì)(遠(yuǎn)大于,接近,范圍以內(nèi),低于,遠(yuǎn)低于),然后根據(jù)設(shè)定的模糊控制規(guī)則控制外部各個(gè)固態(tài)繼電器動(dòng)作,以達(dá)到溫濕度的良好控制。
2.4 網(wǎng)絡(luò)接口實(shí)現(xiàn)
溫濕度檢測(cè)控制模塊與中央服務(wù)器的網(wǎng)絡(luò)連接通過Conextop公司的NePort網(wǎng)絡(luò)串口轉(zhuǎn)換模塊實(shí)現(xiàn),其體積約為兩個(gè)標(biāo)準(zhǔn)RJ45插座,擁有10 M/100 M的以太網(wǎng)接口,并可同時(shí)傳送TCP/UDP包給多個(gè)數(shù)據(jù)接收設(shè)備,提供1~2個(gè)高速串口,波特率可達(dá)921 600 b/s。MCU通過標(biāo)準(zhǔn)串口同NePort連接,NePort通過路由器與中央服務(wù)器相連。每個(gè)溫濕度監(jiān)控系統(tǒng)都有唯一的系統(tǒng)編碼,通過一定的命令格式與中央服務(wù)器連接。主要的功能包括:每隔5 s上傳溫濕度測(cè)量信息;每天同步溫濕度監(jiān)控系統(tǒng)時(shí)鐘和服務(wù)器時(shí)鐘;通過網(wǎng)絡(luò)設(shè)置溫濕度校正信息和濕度控制信息等。
3 網(wǎng)絡(luò)監(jiān)控系統(tǒng)的設(shè)計(jì)
3.1 中央服務(wù)器
中央服務(wù)器架設(shè)有IIS信息服務(wù)器和SQL數(shù)據(jù)庫(kù)服務(wù)器,用ASP.net語言實(shí)現(xiàn)了 B/S結(jié)構(gòu)的溫濕度監(jiān)控系統(tǒng)和網(wǎng)絡(luò)服務(wù)。B/S結(jié)構(gòu)的優(yōu)勢(shì)在于系統(tǒng)內(nèi)任何接入Internet的計(jì)算機(jī)都能成為監(jiān)控客戶端,并且通過IE瀏覽器就可以實(shí)現(xiàn)監(jiān)控和管理,不需安裝任何軟件。實(shí)現(xiàn)的主要功能有:對(duì)各個(gè)溫濕度監(jiān)控系統(tǒng)進(jìn)行登記管理;將各個(gè)溫濕度監(jiān)控系統(tǒng)的溫濕度數(shù)據(jù)存入數(shù)據(jù)庫(kù)并能查閱和刪除,以及產(chǎn)生歷史曲線和生成報(bào)表等;通過網(wǎng)頁向Internet用戶報(bào)告實(shí)時(shí)溫濕度測(cè)量信息;用戶的登記和權(quán)限管理等。
3.2 AJAX實(shí)現(xiàn)溫濕度數(shù)據(jù)的異步傳輸
傳統(tǒng)的B/S結(jié)構(gòu)中,當(dāng)用戶需要某特定信息時(shí),用戶通過瀏覽器向服務(wù)器發(fā)送請(qǐng)求(例如點(diǎn)擊某項(xiàng)鏈接),服務(wù)器將此鏈接指向的網(wǎng)頁發(fā)送至用戶端瀏覽器,此過程必須有用戶的參與。對(duì)于傳感器網(wǎng)絡(luò)監(jiān)控系統(tǒng),傳感器測(cè)量數(shù)據(jù)實(shí)時(shí)更新,只能由服務(wù)器端自動(dòng)定時(shí)將新數(shù)據(jù)發(fā)送至瀏覽器,而不能采用點(diǎn)擊更新的方法;此外,傳統(tǒng)的網(wǎng)頁傳輸過程,是將某網(wǎng)頁內(nèi)容完全由服務(wù)器傳送至客戶端瀏覽器,但是傳感器的網(wǎng)絡(luò)監(jiān)控頁面每次更新的僅僅是部分測(cè)量新數(shù)據(jù),而監(jiān)控背景畫面和各臺(tái)機(jī)器的參數(shù)信息都是固定的。如果采用傳統(tǒng)的同步更新方法會(huì)有大量重復(fù)內(nèi)容被傳輸,降低了系統(tǒng)的響應(yīng)速度。本系統(tǒng)選用了AJAX技術(shù)克服了這些問題。
AJAX技術(shù)使用了一種異步更新方案,在這種數(shù)據(jù)傳輸方案中允許瀏覽器可以更新網(wǎng)頁中的部分信息。而每次只需更新傳感器測(cè)量信息,減輕了網(wǎng)絡(luò)通信負(fù)擔(dān),實(shí)現(xiàn)了快速刷新。AJAX的工作原理相當(dāng)于在用戶和服務(wù)器之間加了一個(gè)中間層,使用戶操作與服務(wù)器響應(yīng)異步化。這樣把以前的一些服務(wù)器負(fù)擔(dān)的工作轉(zhuǎn)嫁到客戶端,利于客戶端閑置的處理能力來處理,減輕服務(wù)器和帶寬的負(fù)擔(dān),從而達(dá)到節(jié)約帶寬的目的。
本系統(tǒng)在實(shí)施溫濕度監(jiān)控的頁面上用傳統(tǒng)的HTMLl靜態(tài)頁面繪制出監(jiān)控背景,各個(gè)溫濕度監(jiān)控節(jié)點(diǎn)的參數(shù)等靜態(tài)內(nèi)容,后臺(tái)則用JavaSc-ript來創(chuàng)建 XMLHttpRequest類向服務(wù)器定期發(fā)送一個(gè)HTTP請(qǐng)求,要求傳輸當(dāng)前溫濕度的測(cè)量結(jié)果。服務(wù)器收到該請(qǐng)求后通過一個(gè)網(wǎng)絡(luò)服務(wù)(Web Service)獲得各個(gè)傳感器的測(cè)量信息,并將結(jié)果返回至請(qǐng)求的頁面,網(wǎng)絡(luò)傳輸?shù)膬H僅是需要更新的測(cè)量數(shù)據(jù),因此響應(yīng)速度很快,不需用戶參與。
3.3 VML實(shí)現(xiàn)溫濕度數(shù)據(jù)顯示
當(dāng)瀏覽器接收到服務(wù)器端回傳的測(cè)量數(shù)據(jù)后必須以清晰、友好的界面顯示。為了減輕服務(wù)器負(fù)擔(dān),應(yīng)該避免在服務(wù)器端繪制圖表(傳統(tǒng)的ASP.NET圖表實(shí)現(xiàn)方法)而應(yīng)在瀏覽器端實(shí)現(xiàn)。實(shí)現(xiàn)的方案也較多,比如AcTIveX、Java applet、SVG、VML等。ActiveX和Java applet是在網(wǎng)頁上插入二進(jìn)制形式的組件實(shí)現(xiàn)動(dòng)態(tài)、交互式的多媒體網(wǎng)頁,但是二進(jìn)制形式的代碼對(duì)瀏覽器端是一個(gè)安全威脅,因此一般的ActiveX或 Java applet需要經(jīng)過數(shù)字簽名才能被用戶接受;此外微軟操作系統(tǒng)的版本改變也會(huì)影響對(duì)ActiveX和Java applet的支持。而SVG和VML則是通過特定的腳本語言實(shí)現(xiàn)在瀏覽器端的作圖,其代碼對(duì)客戶端是開放的,因此不存在安全問題。SVG需要瀏覽器安裝相應(yīng)的插件才能工作,而VML得到目前主流瀏覽器IE的支持不需要任何安裝,因此本系統(tǒng)選取VML的實(shí)現(xiàn)方案。VML(Vector Markup Language)是一種用矢量描述圖形的語言,其圖形可以任意放大縮小而不損失質(zhì)量,在VML里面,標(biāo)記使用的是XML擴(kuò)展。結(jié)合Javascript 腳本語言,VML可以動(dòng)態(tài)顯示圖形。VML避免了由第三方提供數(shù)字簽名,也不需要安裝IE新插件,實(shí)現(xiàn)結(jié)果如圖3和圖4所示。圖3是將各節(jié)點(diǎn)上傳的溫濕度測(cè)量值繪成的曲線圖,客戶可以一目了然地了解每個(gè)節(jié)點(diǎn)在一段時(shí)間內(nèi)的溫濕度變化情況。圖4是動(dòng)態(tài)更新的同時(shí)顯示多節(jié)點(diǎn)的實(shí)時(shí)溫濕度測(cè)量值。
4 結(jié)束語
本文主要介紹了一種新型的基于網(wǎng)絡(luò)的溫濕度監(jiān)控傳輸系統(tǒng)的研制,其創(chuàng)新的技術(shù)特點(diǎn)體現(xiàn)在:通過采用高性能的溫濕度測(cè)量器件達(dá)到了更高的測(cè)量精度;采用模糊控制技術(shù)進(jìn)行濕度調(diào)控,減少了系統(tǒng)的狀態(tài)切換,控制效果好;Flash文件存儲(chǔ)方案,完成了測(cè)量數(shù)據(jù)的保存、擦除。此外,網(wǎng)絡(luò)監(jiān)控方案采用了AJAX技術(shù),實(shí)現(xiàn)了傳感器測(cè)量數(shù)據(jù)的異步傳輸,提高了系統(tǒng)的響應(yīng)速度;并采用了VML實(shí)現(xiàn)了測(cè)量數(shù)據(jù)的動(dòng)態(tài)顯示。這種方案也可以推廣應(yīng)用于其他傳感器的網(wǎng)絡(luò)監(jiān)控系統(tǒng)。