摘要:基于Internet聯(lián)網(wǎng)構(gòu)成的溫濕度監(jiān)測系統(tǒng),架構(gòu)于因特網(wǎng)、微機和溫濕度變送器等。采用VC、C++和ASP.NET等編程,實現(xiàn)對多個特殊倉庫溫濕度的遠程實時監(jiān)測。
關(guān)鍵詞:Internet;監(jiān)測;溫濕度
中圖分類號:TP393.09文獻標識碼:A 文章編號:1009-3044(2009)25-7103-02
Temperature and Humidity Observation System Based on Network Transmission
RON Wu, YANG Ya-fang
(Yangtze University, Jingzhou 434023,China)
Abstract: Based on Internet networking constitution temperature and humidity observation system,Construction in the Internet, microcomputer and transmitting instrument oftemperature and humidity and so on.Realizes to the many special warehouse temperature and humidity long-distance real-time monitor,uses programming and so on VC 、C++ and ASP.NET.
Key words: internet; observation; temperature and humidity
隨著網(wǎng)絡技術(shù)的發(fā)展,其應用越來越廣泛,不僅在辦公自動化及各項管理中得到了廣泛的應用,而且在各領(lǐng)域的視頻監(jiān)控及企業(yè)對生產(chǎn)過程和環(huán)境信息的監(jiān)測也得到了應用推廣。
1 系統(tǒng)的硬件組成
本系統(tǒng)的結(jié)構(gòu)如圖1所示。主要由JWSL—2系列壁掛型溫濕度變送器、PC微機、網(wǎng)絡通信、后臺服務器及客戶端等組成。JWSL—2系列壁掛型溫濕度變送器采集當前溫度和濕度,再通過變送器內(nèi)部的A/D轉(zhuǎn)換芯片將溫濕度轉(zhuǎn)換為數(shù)字量。當PC機通過串口向變送器發(fā)送一條數(shù)據(jù)接收指令時,變送器將對應于溫濕度的數(shù)字信息發(fā)送給RS-485總線上,經(jīng)長距離傳輸?shù)絇C機,其中,要經(jīng)過RS—485電平轉(zhuǎn)換成RS—232電平,才能被PC微機的串口接收。PC機通過串口通信接收和處理數(shù)據(jù),并與互聯(lián)網(wǎng)相連后將數(shù)據(jù)上傳到后臺服務器,客戶終端可以上網(wǎng)查看監(jiān)視各個監(jiān)測點溫濕的變化情況,并做出相應的管理措施。
2 JWSL—2系列壁掛型溫濕度變送器
變送一體化設(shè)計,用于感應、處理與輸出溫濕度值,適用于普通室內(nèi)環(huán)境溫濕度的測量。
2.1 主要技術(shù)參數(shù)
量程:濕度: 0~100%RH,溫度:±0.5℃(0~50℃)
輸出信號:電流輸出型:兩線制4-20mA;電壓輸出型:0-5V ;網(wǎng)絡輸出型:RS485 RS232
3.2 通訊協(xié)議
1)符合 MODBUS 標準(16 進制方式)。主機查詢,變送器應答的主從方式查詢溫濕度數(shù)據(jù)。
地址 03 00 00 00 02
例:對地址為01的變送器讀溫濕度的操作為:010300000002C40B
應答為:
其中,CRCH為CRC 校驗的高字節(jié),CRCL為CRC 校驗的低字節(jié)。
2)數(shù)據(jù)H(高位字節(jié))和數(shù)據(jù)L(低位字節(jié))為各自對應的當前溫濕度值:
上傳的數(shù)據(jù)需要除十,如濕度上傳16進制數(shù)0X0311,對應十進制為00785,即78.5%RH。
零下溫度換算,如溫度上傳16進制0XFF8C,對應十進制數(shù)為:0XFFFF-0XFF8C=0X73=115表示-11.5℃。
3)幀格式中有8位數(shù)據(jù)位,無校驗,1位停止位,波特率可以設(shè)定1200,2400,4800,9600。
3 軟件編程
3.1 PC機RS-232C串口接收溫濕度變送器傳送來的溫濕度值
Microsoft Communications Control(簡稱MSComm)是Microsoft公司提供的簡化Windows下串行通信編程的ActiveX控件,它為應用程序提供了通過串行接口收發(fā)數(shù)據(jù)的簡便方法,MSComm控件通過串行端口傳輸和接收數(shù)據(jù)。選用VC編程,通過調(diào)用復雜的API函數(shù),而且采用事件驅(qū)動(Event-driven)的方法。利用MSComm控件的OnComm事件,就可以在OnComm事件處理函數(shù)中加入自己的處理代碼,遵守溫濕度傳感器的通訊協(xié)議編程,即實現(xiàn)捕獲并處理通訊事件中接收到的溫濕度值,并存入相應的表格中,。只需擁有一個MSComm控件對應著一個串行端口。
// 接受數(shù)據(jù)
for(k=0; k {
safearray_inp.GetElement(k,rxdata+k); //轉(zhuǎn)換為BYTE型數(shù)組
BYTE bt=*(char*)(rxdata+k); //字符型
strtemp.Format(“%c”,bt); //將字符送入臨時變量strtemp存放
recd+=strtemp; }
3.2 保存采集的數(shù)據(jù)
在C++ 環(huán)境中利用ADO方式連接SQL數(shù)據(jù)庫并將捕獲的數(shù)據(jù)保存在數(shù)據(jù)庫中,步驟如下:
1)首先需要導入ADO類,方式如下:
#import\"C:\\\\ProgramFiles\\\\CommonFiles\\\\System\\\\ado\\\\msado15.dll\" no_namespace rename(\"EOF\",\"adoEOF\")rename(\"BOF\",\"adoBOF\")
2)添加一個指向Connection對象的指針:
_ConnectionPtr m_pConnection; //連接對象
m_pConnection.CreateInstance(\"ADODB.Connection\");
3)連接數(shù)據(jù)庫:
m_pConnection->Open(\"Provider=SQLOLEDB.1;server=.;database=temperatuer;uid=yinan;pwd=123456;\",\"\",\"\",adModeUnknown);
//其中temperature為數(shù)據(jù)庫名,yinan和123456 為測試的測試名和密碼。
4)執(zhí)行SQL命令將采集的數(shù)據(jù)保存在數(shù)據(jù)庫中:
m_pConnection->Execute(\"insert into data(temperature,humidty,name,) values (tem, hum,’倉庫1’)\",RecordsAffected,adCmdText);
//其中tem為采集的溫度,hum為采集的濕度,倉庫1為倉庫的名稱
5)關(guān)閉與數(shù)據(jù)庫的連接,釋放內(nèi)存資源:
if(m_pConnection->State)m_pConnection->Close();
3.3 客戶端瀏覽數(shù)據(jù)
使用B/S模式讓客戶在瀏覽器中觀察采集的數(shù)據(jù),采用的方式是使用ASP.NET編程。具體方式如下:
添加一個.aspx頁面,頁面中包括一個Repeater數(shù)據(jù)綁定控件,用來顯示數(shù)據(jù)庫中的數(shù)據(jù),還包括一個下拉列表框,用來選擇查看數(shù)據(jù)的方式,該頁面所對應的.cs文件的關(guān)鍵代碼如下:
if (ddlChoice.SelectedValue == \"storage\")
{cmdStr = \"select name, temperature ,humidity,addDate from data,storage where data.storageid = storage.idorder by name desc,addDate desc\";
BindData(cmdStr);
}
if (ddlChoice.SelectedValue == \"date\")
{ cmdStr = \"select name, temperature ,humidity,addDate from data,storage where data.storageid = storage.idorder by data.addDate desc,name desc\";
BindData(cmdStr);
}
// 其中ddlChoice為下拉列表框的名稱,cmdStr是要執(zhí)行的SQL語句,BindData方法實現(xiàn)了綁定數(shù)據(jù)的過程,該頁面瀏覽效果如圖2所示。
也可按時間來查看,效果如圖3所示。
4 結(jié)論
該文全面介紹了基于網(wǎng)絡傳輸?shù)臏貪穸葯z測系統(tǒng)的總體設(shè)計以及各部分的主要結(jié)構(gòu)。該系統(tǒng)已經(jīng)用于大范圍的溫濕度監(jiān)測系統(tǒng)。該計算機網(wǎng)絡應用技術(shù)適用范圍廣,監(jiān)測數(shù)據(jù)快速準確,達到了無人置守,是一項非常有意義的嘗試,應用前景廣闊。
參考文獻:
[1] 龔建偉,熊光明.Visual C++/Turbo C串口通信編程實踐[M].北京:電子工業(yè)出版社,2007.
[2] 北京昆侖海岸傳感技術(shù)中心.JWSL-2系列壁掛型溫室度變送器說明書[P],2006.
[3] 馬駿.ASP.NET網(wǎng)頁設(shè)計與網(wǎng)站開發(fā)[M].北京:人民郵電出版社,2007.