基于网络传输的温湿度监测系统

时间:2022-04-11 06:24:19

基于网络传输的温湿度监测系统

摘要:基于Internet联网构成的温湿度监测系统,架构于因特网、微机和温湿度变送器等。采用VC、C++和等编程,实现对多个特殊仓库温湿度的远程实时监测。

关键词:Internet;监测;温湿度

中图分类号: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 .

Key words: internet; observation; temperature and humidity

随着网络技术的发展,其应用越来越广泛,不仅在办公自动化及各项管理中得到了广泛的应用,而且在各领域的视频监控及企业对生产过程和环境信息的监测也得到了应用推广。

1 系统的硬件组成

本系统的结构如图1所示。主要由JWSL―2系列壁挂型温湿度变送器、PC微机、网络通信、后台服务器及客户端等组成。JWSL―2系列壁挂型温湿度变送器采集当前温度和湿度,再通过变送器内部的A/D转换芯片将温湿度转换为数字量。当PC机通过串口向变送器发送一条数据接收指令时,变送器将对应于温湿度的数字信息发送给RS-485总线上,经长距离传输到PC机,其中,要经过RS―485电平转换成RS―232电平,才能被PC微机的串口接收。PC机通过串口通信接收和处理数据,并与互联网相连后将数据上传到后台服务器,客户终端可以上网查看监视各个监测点温湿的变化情况,并做出相应的管理措施。

2 JWSL―2系列壁挂型温湿度变送器

变送一体化设计,用于感应、处理与输出温湿度值,适用于普通室内环境温湿度的测量。

2.1 主要技术参数

量程:湿度: 0~100%RH,温度:±0.5℃(0~50℃)

输出信号:电流输出型:两线制4-20mA;电压输出型:0-5V ;网络输出型:RS485 RS232

3.2 通讯协议

1)符合 MODBUS 标准(16 进制方式)。主机查询,变送器应答的主从方式查询温湿度数据。

地址 03 00 00 00 02

例:对地址为01的变送器读温湿度的操作为:010300000002C40B

应答为:

其中,CRCH为CRC 校验的高字节,CRCL为CRC 校验的低字节。

2)数据H(高位字节)和数据L(低位字节)为各自对应的当前温湿度值:

上传的数据需要除十,如湿度上传16进制数0X0311,对应十进制为00785,即78.5%RH。

零下温度换算,如温度上传16进制0XFF8C,对应十进制数为:0XFFFF-0XFF8C=0X73=115表示-11.5℃。

3)帧格式中有8位数据位,无校验,1位停止位,波特率可以设定1200,2400,4800,9600。

3 软件编程

3.1 PC机RS-232C串口接收温湿度变送器传送来的温湿度值

Microsoft Communications Control(简称MSComm)是Microsoft公司提供的简化Windows下串行通信编程的ActiveX控件,它为应用程序提供了通过串行接口收发数据的简便方法,MSComm控件通过串行端口传输和接收数据。选用VC编程,通过调用复杂的API函数,而且采用事件驱动(Event-driven)的方法。利用MSComm控件的OnComm事件,就可以在OnComm事件处理函数中加入自己的处理代码,遵守温湿度传感器的通讯协议编程,即实现捕获并处理通讯事件中接收到的温湿度值,并存入相应的表格中,。只需拥有一个MSComm控件对应着一个串行端口。

// 接受数据

for(k=0; k {

safearray_inp.GetElement(&k,rxdata+k); //转换为BYTE型数组

BYTE bt=*(char*)(rxdata+k); //字符型

strtemp.Format(“%c”,bt); //将字符送入临时变量strtemp存放

recd+=strtemp; }

3.2 保存采集的数据

在C++ 环境中利用ADO方式连接SQL数据库并将捕获的数据保存在数据库中,步骤如下:

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)连接数据库:

m_pConnection->Open("Provider=SQLOLEDB.1;server=.;database=temperatuer;uid=yinan;pwd=123456;","","",adModeUnknown);

//其中temperature为数据库名,yinan和123456 为测试的测试名和密码。

4)执行SQL命令将采集的数据保存在数据库中:

m_pConnection->Execute("insert into data(temperature,humidty,name,) values (tem, hum,’仓库1’)",&RecordsAffected,adCmdText);

//其中tem为采集的温度,hum为采集的湿度,仓库1为仓库的名称

5)关闭与数据库的连接,释放内存资源:

if(m_pConnection->State)m_pConnection->Close();

3.3 客户端浏览数据

使用B/S模式让客户在浏览器中观察采集的数据,采用的方式是使用编程。具体方式如下:

添加一个.aspx页面,页面中包括一个Repeater数据绑定控件,用来显示数据库中的数据,还包括一个下拉列表框,用来选择查看数据的方式,该页面所对应的.cs文件的关键代码如下:

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是要执行的SQL语句,BindData方法实现了绑定数据的过程,该页面浏览效果如图2所示。

也可按时间来查看,效果如图3所示。

4 结论

该文全面介绍了基于网络传输温湿度检测系统的总体设计以及各部分的主要结构。该系统已经用于大范围的温湿度监测系统。该计算机网络应用技术适用范围广,监测数据快速准确,达到了无人置守,是一项非常有意义的尝试,应用前景广阔。

参考文献:

[1] 龚建伟,熊光明.Visual C++/Turbo C串口通信编程实践[M].北京:电子工业出版社,2007.

[2] 北京昆仑海岸传感技术中心.JWSL-2系列壁挂型温室度变送器说明书[P],2006.

[3] 马骏网页设计与网站开发[M].北京:人民邮电出版社,2007.

上一篇:基于数据库的快速测试数据生成方法研究 下一篇:用Authorware7.0开发多媒体课件的实用技巧