实训报告.docx
- 文档编号:29528604
- 上传时间:2023-07-24
- 格式:DOCX
- 页数:15
- 大小:824KB
实训报告.docx
《实训报告.docx》由会员分享,可在线阅读,更多相关《实训报告.docx(15页珍藏版)》请在冰豆网上搜索。
实训报告
实训报告
智能大棚远端显示监控界面
姓名:
张梅
班级:
通信121
学号:
1232212132
一:
试验目的
1、学习智能大棚的基本构成,以及构成部分的作用。
2、学会NetBeans的组成及相关的知识。
3、学会如何运用NetBeans软件来制作远端的显示监控界面。
4、学会如何将NetBeans软件和SQLServer数据库相连接。
5、学会如何向串口接收数据以及发送数据。
6、熟练掌握java语句,学会使用其中的方法,学会从相关书上找取相应案例,举一反三。
二:
试验内容及步骤
1、原理:
(1)智能生态大棚涉及的系统主要采用绑定的工作方式。
首先系统初始化,启动协调器建立一个新的无线传感网络。
路由节点和传感器节点寻找并加入网络,协调器即可与终端节点进行绑定。
绑定完成以后传感器节点采集并发送数据,协调器节点负责接收数据并通过RS232传至PC,用户接受到数据,发出指令,控制大棚的温控装置和光照设施。
(2)本系统采用在一个组网络内进行广播的方式,传感器节点首先组建一个无线传感网络。
将测量相同类型物理量的传感器节点加入到同一个组(本设计里采集的物理量有温湿度、光照强度,在光照里边设计了氧气、二氧化碳浓度),组内的成员通过分组广播的形式将数据发送出去,路由器接收到发送过来的数据以后,把数据转发给协调器,协调器判断一下是哪一个节点发送过来的,协调器再通过串口将这些所测物理量数据上传给PC,在PC上面显示各组内每个节点的测量数据。
用户通过PC机下达操作指令远端智能化操作
2、内容:
制作如下的界面
3、步骤如下
(1)下载安装NetBeans软件,在官网中下载压缩包后解压,按照步骤进行安装
(2)在NetBeans中配置JDBC驱动程序
1.下载:
网址:
2.在NetBeans安装目录,例如D:
\ProgramFiles\netbeans-5.0下创建路径:
D:
\ProgramFiles\netbeans-5.0\jdbc\OracleJDBC\lib。
3.复制4个java归档文件放入其中:
1)ocrs12.jar
2)ojdbc14.jar
3)ojdbc14dms.jar
4)orai18n.jar
下载SQLServer2012DriverforJDBCServicePack4,支持JDK1.7
4.网址:
5.执行setup.exe安装SQLServerJDBC驱动程序。
在安装目录下有帮助文件。
6.在netbeans安装目录,例如D:
\ProgramFiles\netbeans-5.0下创建路经:
D:
\ProgramFiles\netbeans-5.0\jdbc\SQLServerJDBC\lib。
7.将setup.exe安装的下面3个Java归档文件放入其中:
1)msbase.jar
2)mssqlserver.jar
3)msutil.jar
3、创建项目
现在,我们将创建一个新的NCRE项目,它将包含我们指定的源代码。
然后,我们将其用作我们的主项目。
创建新NCRE项目
1)选择“文件”>“新建项目”。
在“类别”列表种选择“常规”。
在“项目”列表下,选择“NCRE项目”并单击“下一步”。
2)在“源代码路径”输入框旁边,点击“浏览”按钮,选择录
C:
\mySpace\java1;您也可以在“源代码路径”输入框中手动键入该路径。
3)注意,项目名称会自动变为子目录名称,如本例中,项目名称自动变为java1;您也可以更改项目名称。
4)注意,“项目路径”会自动更改,如本例中改为C:
\mySpace\NCREProject\java1。
IDE自动在java1的同级目录中创建NCREProject目录,在NCREProject下的java1(项目名称)目录中存放新建项目的项目信息。
同时在C盘根目录下产生一个tmp目录,存放操作记录文件。
5)单击“完成”。
新建项目java1在Project窗口中显示。
4、连接数据库
5、具体代码如下
主界面的代码例:
publicclassindexextendsjavax.swing.JDialog{
staticCommPortIdentifierportId;/*Enumeration为枚举型类,在util中*/
staticEnumerationportList;
OutputStreamoutputStream;/*RS-232的串行口*/
SerialPortserialPort;
ThreadreadThread;
bytedata[]=newbyte[10240];
TextFieldmessage=newTextField();
booleanmark;/*安排窗体*/
/**
*Createsnewformindex
*/
publicindex(java.awt.Frameparent,booleanmodal){
super(parent,modal);
initComponents();
selectactionem=newselectaction();
Listemlist=em.a22();
DefaultTableModelaa=(DefaultTableModel)jTable1.getModel();
aa.setRowCount(0);
StringJDname="";
for(inti=0;i Wenshidapengp=(Wenshidapeng)emlist.get(i); if(JDname.equals(p.getJD_name())==false) {JDname=p.getJD_name(); Object[]e1=newObject[11]; e1[0]=p.getWS_name(); e1[1]=p.getJD_name(); e1[2]=p.getKQwendu(); e1[3]=p.getKQshidu(); e1[4]=p.getTRwendu(); e1[5]=p.getTRshidu(); e1[6]=p.getCO2(); e1[7]=p.getYemianzhishu(); e1[8]=p.getGuanghezuoyong(); e1[9]=p.getZhiwujinliu(); e1[10]=p.getDatetime(); aa.addRow(e1);}} aa.fireTableStructureChanged();} 数据库代码: publicclassDBCon{ publicstaticConnectiongetConnection(){ ConnectiondbConnection=null; try{ Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); dbConnection=DriverManager.getConnection( "jdbc: sqlserver: //localhost: 1433;databaseName=WSDP", "sa","230023"); System.out.printf("数据库连接成功! "); }catch(Exceptione){ System.out.printf("数据库连接失败! "); e.printStackTrace(); } returndbConnection;} publicstaticvoidcloseConnection(ConnectiondbConnection){ try{ if(dbConnection! =null&&! dbConnection.isClosed()){ dbConnection.close(); } System.out.printf("数据库关闭成功! "); }catch(SQLExceptionsqlEx){ System.out.printf("数据库关闭失败! "); sqlEx.printStackTrace();}} publicstaticvoidcloseStatement(PreparedStatementpStatement){ try{ if(pStatement! =null){ pStatement.close(); pStatement=null;} }catch(SQLExceptionsqlEx){ sqlEx.printStackTrace(); }} publicstaticvoidcloseResultSet(ResultSetres){ try{ if(res! =null){ res.close(); res=null;} }catch(SQLExceptionsqlEx){ sqlEx.printStackTrace();}}} 界面中需要数据库显示的数据代码: publicclassselectaction{ publicArrayListshuju(Stringjdname,Stringtime,Stringtime2){ ArrayListLIS=newArrayList(); Connectioncon=null; PreparedStatementp=null; ResultSetrst=null; try { con=DBCon.getConnection(); Stringe="select*fromJBshujuwhereJD_id=(selecttop1JD_idfromJDtablewhereJD_name='"+jdname+"')anddatetimebetween'"+time+"'and'"+time2+"'"; p=con.prepareStatement(e); rst=p.executeQuery(); while(rst.next()){ Wenshidapengh=newWenshidapeng();h.setKQshidu(rst.getDouble("KQshidu")); h.setKQwendu(rst.getDouble("KQwendu")); h.setTRshidu(rst.getDouble("TRshidu")); h.setTRwendu(rst.getDouble("TRwendu")); h.setGuangzhao(rst.getDouble("guangzhao")); h.setCO2(rst.getDouble("CO2")); h.setYemianzhishu(rst.getDouble("yemianzhishu")); h.setGuanghezuoyong(rst.getDouble("guanghezuoyong"); h.setZhiwujinliu(rst.getDouble("zhiwujinliu")); h.setDatetime(rst.getDate("datetime")); LIS.add(h);}} catch(SQLExceptionsqlE) {sqlE.printStackTrace();} finally{ DBCon.closeResultSet(rst); DBCon.closeStatement(p); DBCon.closeConnection(con); }returnLIS;} publicArrayLista22(){ ArrayListLIS=newArrayList(); Connectioncon=null; PreparedStatementp=null; ResultSetrst=null; Datetimes=newDate(); SimpleDateFormattime=newSimpleDateFormat("yyyy-MM-ddHH: mm"); try{con=DBCon.getConnection(); Stringe="select*fromWStablea,JDtableb,JBshujucwherea.WS_id=b.WS_idandc.JD_id=b.JD_idanddatetime<'"+time.format(times)+"'orderbydatetimedesc"; p=con.prepareStatement(e); rst=p.executeQuery(); while(rst.next()){ Wenshidapengh=newWenshidapeng(); h.setWS_name(rst.getString("WS_name")); h.setJD_name(rst.getString("JD_name")); h.setKQshidu(rst.getDouble("KQshidu")); h.setKQwendu(rst.getDouble("KQwendu")); h.setTRshidu(rst.getDouble("TRshidu")); h.setTRwendu(rst.getDouble("TRwendu")); h.setGuangzhao(rst.getDouble("guangzhao")); h.setCO2(rst.getDouble("CO2")); h.setYemianzhishu(rst.getDouble("yemianzhishu")); h.setGuanghezuoyong(rst.getDouble("guanghezuoyong"); h.setZhiwujinliu(rst.getDouble("zhiwujinliu")); h.setDatetime(rst.getDate("datetime")); LIS.add(h);}} catch(SQLExceptionsqlE){ sqlE.printStackTrace();} Finally{DBCon.closeResultSet(rst); DBCon.closeStatement(p); DBCon.closeConnection(con); }returnLIS;} publicArrayListjiedian(Stringname){ArrayListLIS=newArrayList(); Connectioncon=null; PreparedStatementp=null; ResultSetrst=null; Datetimes=newDate(); SimpleDateFormattime=newSimpleDateFormat("yyyy-MM-ddHH: mm"); try{con=DBCon.getConnection(); Stringe="selectJD_namefromJDtableawherea.WS_id=(selecttop1WS_idfromWStablewhereWS_name='"+name+"')"; p=con.prepareStatement(e); rst=p.executeQuery(); while(rst.next()){Wenshidapengh=newWenshidapeng(); h.setJD_name(rst.getString("JD_name")); LIS.add(h);}} catch(SQLExceptionsqlE){ sqlE.printStackTrace(); } finally{DBCon.closeResultSet(rst); DBCon.closeStatement(p); DBCon.closeConnection(con); }returnLIS;}} 三: 实验小结 1、通过实验使我知道了NetBeans软件的下载方法、安装方法、以及使用方法。 2、在试验中让我明白了关于智能大棚的相关知识,增加了自己的知识面。 3、掌握了界面和代码了连接,对Java语句更加的熟悉。 4、学会使用NetBeans连接数据库,并且让数据在查询数据库后显示出来。 5、学会了NetBeans中如何用Java语言连接com端口,用开关控制元器件。 6、NetBeans包括开源的开发环境和应用平台,NetBeansIDE可以使开发人员利用Java平台能够快速创建Web、企业、桌面以及移动的应用程序,NetBeansIDE已经支持PHP、Ruby、JavaScript、Groovy、Grails和C/C++等开发语言。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 报告