您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 管理学资料 > WSN技术的智能仓储环境监测与智能控制系统设计与实
项目十基于WSN技术的智能仓储环境监测与智能控制系统设计与实现一、教学目标1、掌握WSN网关通信的相关应用。2、掌握WSN实现了信息的采集、信息传输和信息处理模式。3、掌握WSN实现仓储环境监控智能化技术方法。二、教学内容10.1设备简介10.1.1WSN网关图10-1WSN网关图供电电源:DC5V,信号获取接口:USB,上位机通信接口:以太网口,操作系统:Linux。网关通过USB与协调器连接,并通过协调器与各Zigbee节点进行信号通讯。10.1.2协调器图10-2协调器图供电方式:USB供电。该设备为网关与各传感器节点的中继,负责转发Zigbee信号。10.1.3温湿度传感器模块图10-3温湿度传感模块图供电方式:DC5V,通讯协议:Zigbee。集成模块:温湿度传感器。该节点可采集温湿度数据,并通过Zigbee协议传输到网关,上位机通过访问网关获取温湿度数据。10.1.4电磁继电器模块图10-4电磁继电器模块图供电方式:DC5V,继电器控制路数:4路,与网关通信协议:Zigbee。该继电器可控制四路电源,在京胜世纪的实验台中,控制了两路灯光、一路风扇和一路电磁门。10.2类的设计与实现在本部分实训中我们要用到数据库来存储当前各个节点的信息,以面向对象的思想为例,我们需要先编写几对数据库操作的基础类和将节点信息保存的对象类。10.2.1DBConnection.cs类这个类文件是要对数据库进行连接操作,登录到本地的数据库。引用命名空间。该命名空间是SQLServer.NET数据提供者,是SQLServer专用的内置.NET提供者,引用该命名空间后就可以获得最好的性能和对基础功能的最直接访问。usingSystem.Data.SqlClient;添加变量privatestringstr;privateSqlCommandsqlcom;privateSqlConnectionconn;在构造函数中写入连接数据库方法///summary///连接数据库的方法////summarypublicDBConnection(){//定义了要连接的数据库的位置,数据库的名称,登录帐号和密码this.str=Server=localhost;DataBase=SmartShelfD;uid=sa;pwd=123;this.conn=newSqlConnection(str);this.sqlcom=newSqlCommand();this.sqlcom.Connection=this.conn;this.conn.Open();}上边定义了两个全局变量,分变是字符型str,变量量为数据库连接字符串内容:Server表示正在访问的数据库服务器名称,其格式是“计算机名\实例名”,如果是本地的数据库服务器并且使用的是SQLServer的默认实例名,则可以使用(Local)或.来表示。DataBase表示数据库名称,即该项目所要连接的数据库名;Uid表示数据库服务器的登录名称;Pwd表示数据库服务器的密码。返回数据连接方法///summary///返回数据连接方法////summary///returns/returnspublicSqlConnectionGetConnection(){returnthis.conn;}10.2.2DBOperate.cs类该类的作用是对程序中的要用到的对数据库的操作进行统一,涉及到对数据库的操作时,如对数据库的增删改操作,都可以直接调用该类,相应的方法。传入相应的参数即可。添加引用usingSystem.Data.SqlClient;usingSystem.Data;定义变量SqlCommandsqlcom;SqlConnectionconn;默认构造方法///summary///构造函数////summary///paramname=dbc/parampublicDBOperate(DBConnectiondbc){sqlcom=newSqlCommand();sqlcom.Connection=dbc.GetConnection();}编写执行方法///summary///执行sql语句////summary///paramname=sql/parampublicvoidExecuteSQL(stringsql){this.sqlcom.CommandText=sql;try{this.sqlcom.ExecuteNonQuery();}catch{}}///summary///获取数据表格的方法////summary///paramname=sql/param///returnssql语句/returnspublicDataTableGetDataTable(stringsql){this.sqlcom.CommandText=sql;SqlDataAdaptersda=newSqlDataAdapter(this.sqlcom);DataSetds=newDataSet();DataTabledt=newDataTable();try{sda.Fill(ds);dt=ds.Tables[0];}catch{}returndt;}///summary///执行SQL语句,获取string类型数据////summary///paramname=sqlSQL语句/param///returns获取到的string类型数据/returnspublicstringGetString(stringsql){stringresultStr=;this.sqlcom.CommandText=sql;try{resultStr=this.sqlcom.ExecuteScalar().ToString();}catch(SqlExceptione){}finally{this.sqlcom.Dispose();}returnresultStr;}publicintGetInt(stringsql){intresultInt=0;this.sqlcom.CommandText=sql;try{resultInt=Convert.ToInt32(this.sqlcom.ExecuteScalar().ToString());}catch(SqlExceptione){System.Windows.Forms.MessageBox.Show(e.Message);}finally{this.sqlcom.Dispose();}returnresultInt;}本资源是基于SQLServer开发的,所以可以使用using指令可以引用SQLServer专用的.NET数据库提供者:usingSystem.Data.SqlClient;提取数据库中数据的4步:1)连接数据源2)打开连接3)发出一个SQL查询命令4)执行命令语句SqlConnection是一个用于SQL.NET数据提供者的连接对象名称,表示SQLServer数据库的一个打开的连接。SqlConnection对象表示与SQLServer数据源的一个唯一的会话。对于客户端/服务器数据库系统,它等效于到服务器的网络连接。SqlConnection与SqlDataAdapter和SqlCommand一起使用,可以在连接MicrosoftSQLServer数据库时提高性能。Server=localhost;DataBase=AccessControl;uid=sa;pwd=123Server=localost,表示正在访问的SQLServer名称,其格式是“计算机名\实例名”。计算机名(localhost)是一个非常方便的SQLServer简短名称,它表示运行在当前机器上的服务器实例。DataBase=AccessControl,指定数据库的名称。uid=sa;pwd=123,表示登录数据库的用户名和密码,这是SQLServer和Windows的标准内置安全。this.conn.Open();打开数据库的连接。CommandText属性获取或设置要对数据源执行的SQL语句或存储过程。ExecuteNonQuery()方法,对连接执行SQL语句并返回受影响的行数。SqlDataAdapter类表示用于填充DataSet和更新SQLServer数据库的一组数据命令和一个数据库连接。SqlDataAdapter是DataSet和SQLServer之间的桥接器,用于检索和保存数据。DataSet是ADO.NET结构的主要组件,它是从数据源中检索到的数据在内存中的缓存。DataSet由一组DataTable对象组成。try-catch语句由一个try块后跟一个或多个catch子句构成,这些子句指定不同的异常处理程序。try块包含可能导致异常的保护代码。该块一直执行到引发异常或成功完成为止。例如,下列强制转换null对象的尝试引发NullReferenceException异常:objecto2=null;try{inti2=(int)o2;//错误}10.2.3ObjCargoNode.cs类该类是对节点信息与数据库中的进行操作进行的修改。节点加入网络后,段地址会存储到数据库中。对当前节点的识别也需要读取数据库中已输入的节点信息。添加命名空间usingSystem.Data;定义变量privateintcargo;privatestringiEEEAddress;privatestringshortAddress;privateintnodeType;构造函数publicObjCargoNode(){}publicObjCargoNode(intcargo){this.cargo=cargo;DataTabledtb=Program.dbo.GetDataTable(string.Format(selectCargo,IEEEAddress,ShortAddress,NodeTypefromCargoNodewhereCargo='{0}',this.cargo));DataRowrow=dtb.Rows[0];this.cargo=Convert.ToInt32(row[Cargo].ToString());this.iEEEAddress=row[IEEEAddress].ToString();this.shortAddress=row[ShortAddress].ToString();this.nodeType=Convert.ToInt32(row[NodeType].ToString());}属性publicintCargo{get{returnthis.cargo;}}publicstringIEEEAddress{get{returnthis.iEEEAddress;}}publicstringShortAddress{get{returnthis.shortAddress;}set{this.shortAddress=value;}}publicintNodeType{get{returnthis.nodeType;}}方法publicvoidInsert(){Program.dbo.ExecuteSQL(string.Format(updateCargoNodesetShortAddress='{0}'whereIEEEAddress='{1}',this.shortAddress,this.iEEEAddress));}10.3功能设计与实现该部分实训内容主要是通过程序和wsn的网关进行通信,这里我们需要学习关于wsn网关通信的相关应用。该模块程序中的代码,在后面会分解出来应用。向窗体中添加一个TabControl控件,在TabPages属性添加6个成员。控件Name属性Text属性UseVisualStyleBackColor属性TabPagetp
本文标题:WSN技术的智能仓储环境监测与智能控制系统设计与实
链接地址:https://www.777doc.com/doc-1243752 .html