網(wǎng)絡(luò)式溫濕度監(jiān)控系統(tǒng)研究
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)行操作,讀、寫和擦除操作均通過(guò)命令完成;不能字節(jié)擦除,在每次改寫操作之前需要先擦除一整塊;每一塊的擦除次數(shù)有限,為10萬(wàn)次左右。根據(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è)和控制,如果僅通過(guò)簡(jiǎn)單的反饋控制(即濕度高于設(shè)定值,吸濕裝置吸收潮氣,飽和后將向外排放潮氣,如此反復(fù)來(lái)達(dá)到濕度的控制)很難達(dá)到理想的控制,原因是溫度控制器件和吸濕裝置的工作曲線通常都是非線性的,這種非線性使得控制時(shí)間的推算變得不確定。經(jīng)過(guò)反復(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ò)連接通過(guò)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通過(guò)標(biāo)準(zhǔn)串口同NePort連接,NePort通過(guò)路由器與中央服務(wù)器相連。每個(gè)溫濕度監(jiān)控系統(tǒng)都有唯一的系統(tǒng)編碼,通過(guò)一定的命令格式與中央服務(wù)器連接。主要的功能包括:每隔5 s上傳溫濕度測(cè)量信息;每天同步溫濕度監(jiān)控系統(tǒng)時(shí)鐘和服務(wù)器時(shí)鐘;通過(guò)網(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語(yǔ)言實(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)控客戶端,并且通過(guò)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)表等;通過(guò)網(wǎng)頁(yè)向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í),用戶通過(guò)瀏覽器向服務(wù)器發(fā)送請(qǐng)求(例如點(diǎn)擊某項(xiàng)鏈接),服務(wù)器將此鏈接指向的網(wǎng)頁(yè)發(fā)送至用戶端瀏覽器,此過(guò)程必須有用戶的參與。對(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)頁(yè)傳輸過(guò)程,是將某網(wǎng)頁(yè)內(nèi)容完全由服務(wù)器傳送至客戶端瀏覽器,但是傳感器的網(wǎng)絡(luò)監(jiān)控頁(yè)面每次更新的僅僅是部分測(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)頁(yè)中的部分信息。而每次只需更新傳感器測(cè)量信息,減輕了網(wǎng)絡(luò)通信負(fù)擔(dān),實(shí)現(xiàn)了快速刷新。AJAX的工作原理相當(dāng)于在用戶和服務(wù)器之間加了一個(gè)中間層,使用戶操作與服務(wù)器響應(yīng)異步化。這樣把以前的一些服務(wù)器負(fù)擔(dān)的工作轉(zhuǎn)嫁到客戶端,利于客戶端閑置的處理能力來(lái)處理,減輕服務(wù)器和帶寬的負(fù)擔(dān),從而達(dá)到節(jié)約帶寬的目的。
本系統(tǒng)在實(shí)施溫濕度監(jiān)控的頁(yè)面上用傳統(tǒng)的HTMLl靜態(tài)頁(yè)面繪制出監(jiān)控背景,各個(gè)溫濕度監(jiān)控節(jié)點(diǎn)的參數(shù)等靜態(tài)內(nèi)容,后臺(tái)則用JavaSc-ript來(lái)創(chuàng)建XMLHttpRequest類向服務(wù)器定期發(fā)送一個(gè)HTTP請(qǐng)求,要求傳輸當(dāng)前溫濕度的測(cè)量結(jié)果。服務(wù)器收到該請(qǐng)求后通過(guò)一個(gè)網(wǎng)絡(luò)服務(wù)(Web Service)獲得各個(gè)傳感器的測(cè)量信息,并將結(jié)果返回至請(qǐng)求的頁(yè)面,網(wǎng)絡(luò)傳輸?shù)膬H僅是需要更新的測(cè)量數(shù)據(jù),因此響應(yīng)速度很快,不需用戶參與。
評(píng)論