项目十基于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;在构造函数中写入连接数据库方法///
///连接数据库的方法///publicDBConnection(){//定义了要连接的数据库的位置,数据库的名称,登录帐号和密码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表示数据库服务器的密码。返回数据连接方法///
///返回数据连接方法//////
publicSqlConnectionGetConnection(){returnthis.conn;}10.2.2DBOperate.cs类该类的作用是对程序中的要用到的对数据库的操作进行统一,涉及到对数据库的操作时,如对数据库的增删改操作,都可以直接调用该类,相应的方法。传入相应的参数即可。添加引用usingSystem.Data.SqlClient;usingSystem.Data;定义变量SqlCommandsqlcom;SqlConnectionconn;默认构造方法///
///构造函数//////
publicDBOperate(DBConnectiondbc){sqlcom=newSqlCommand();sqlcom.Connection=dbc.GetConnection();}编写执行方法//////执行sql语句//////publicvoidExecuteSQL(stringsql){this.sqlcom.CommandText=sql;try{this.sqlcom.ExecuteNonQuery();}catch{}}//////获取数据表格的方法/////////sql语句publicDataTableGetDataTable(stringsql){this.sqlcom.CommandText=sql;SqlDataAdaptersda=newSqlDataAdapter(this.sqlcom);DataSetds=newDataSet();DataTabledt=newDataTable();try{sda.Fill(ds);dt=ds.Tables[0];}catch{}returndt;}//////执行SQL语句,获取string类型数据//////SQL语句///获取到的string类型数据publicstringGetString(stringsql){stringresultStr="";this.sqlcom.CommandText=sql;try{resultStr=this.sqlcom...