1、ZYL太原理工物联网大三课程设计实验报告环境监测 课程设计课程名称: 物联网感知课程设计 设计名称: 环境监测系统 专业班级: 物联1403 学号: 2014002091 学生姓名: 赵羽龙 指导教师: 呼克佑 2016年 12月 23日太原理工大学课程设计任务书学生姓名赵羽龙专业班级物联1403课程名称物联网感知课程设计设计名称环境监测系统设计周数2设计任务主要设计参数运用已学的编程工具及物联网实验箱设计一个环境监测系统,该系统可实现如下功能:1. 读取环境的温度、湿度通过串口通信,读取至电脑程序界面显示。2. 根据在程序界面设置温度、湿度的上下限值,完成显示相应的温湿度调节机器的工作状态。
2、3. 将监测到的温湿度值保存至文本文件。设计的基本要求如下:(1)选择合适的传感器来完成温度、湿度数据的采集。(2)制作相应的显示界面,将采集的变量值实时显示设计的扩展要求如下:判断温度过高过低、湿度过高过低时,通过电机控制空调、加湿器的启停。设计内容设计要求1、收集技术资料:理解设计任务、查阅相关资料、搭建开发平台。2、确定总体设计思想:方案论证比较、确定总体设计方案。3、感知层和传输层的设计:感知模块的选择、传输模式与接口程序的设计。4、应用层的设计:各模块的功能说明、程序流程、代码编写。5、系统调试与运行:验证各项功能的实现。6、书写设计报告:按照课程设计报告的要求,编写设计报告。主要参
3、考资 料1、徐勇军 物联网实验教程.北京:机械工业出版社.20112、李刚. 疯狂JAVA讲义.电子工业出版社。20163、Kathy Sierra & Bert Bates .Head First.中国电力出版社.2016学生提交归档文件封面任务书目录课程设计报告-参考文献注:1.课程设计完成后,学生提交的归档文件应按照:封面任务书说明书图纸的顺序进行装订上交(大张图纸不必装订)。2.可根据实际内容需要续表,但应保持原格式不变。指导教师签名: 日期:一功能分析 1二概要设计 11系统组成 12.传感器选型 1三详细设计 11.硬件连接 12程序设计 13界面设计 3四系统说明 3五设计总结
4、4六附录 4 程序设计课程设计报告专业: 物联网工程 班级: 1403 姓名: 赵羽龙 学号: 2014002091 完成日期: 2016/12/23 题目:设计一个环境监测系统。一功能分析环境监测系统主要包括对环境变量的采集和显示。(1)选择合适的传感器来完成温度、湿度数据的采集。(2)制作相应的显示界面,将采集的变量值实时显示。(3)扩展功能:判断温度过高过低、湿度过高过低时,通过电机控制空调、加湿器的启停。二概要设计1系统组成系统大体组成包括:传感器模块、数据传送模块和电机控制模块。系统框图如图1所示。由于传感器模块没有外接电路,因此需要通过中间的协调器将数据转为串口形式发送到PC机上。
5、 图1 系统框图2.传感器选型选择SHT10单片数字温湿度传感器来监测环境。SHT10采用CMOSens专利技术将温度湿度传感器、A/D转换器及数字接口无缝结合,使传感器具有体积小、响应速度快、接口简单、性价比高等特点。电路连接时,接口简单,两线连接,SHT10的两线串行接口(bidirectional 2-wire)在传感器信号读取和电源功耗方面都做了优化处理,其总线类似I2C总线但并不兼容I2C总线。三详细设计1.硬件连接SHT10共有4个引脚,除了电源和地,数据和时钟引脚分别连接单片机P06、P07。图2 系统硬件框图2程序设计(1)端口初始化程序static void GPIOInit
6、(void) P0SEL &= (16); /时钟接口初始化,IO口功能选择 P0DIR |= (16); /IO口方向选择 P0SEL &= (17); /数据接口初始化 P0DIR |= (17); /IO口方向选择 功能:初始化SHT10接口; 入口参数:无; 返回值:无。(2)传感器采集程序static uint16 ReadSHT10(uint8 param) double temp; uint8 i; uint16 result; uint16 SORH = 0; DATA_OUTPUT; DATA_HIGH; SCK_OUTPUT; SCK_LOW; /通讯复位 for( i=0
7、; i10; i+ )SCK_HIGH; MicroWait(30); SCK_LOW; MicroWait(30); 功能:读取SHT10的温湿度值; 入口参数:0x00,温度; 0x01,湿度; 返回值:温湿度值。图3 传感器工作时序图SHT10工作时,要通过SCK引脚模拟时序来完成,因此,读传感器的数据时,需要单片机控制SCK产生一系列时序,配合DATA的变化以完成温湿度的数据采集。对于采集到的湿度值需要通过以下的公式进行换算:同样,温度值要经过以下换算,才能得到实际值,这些都在传感器的读写程序里完成。3界面设计(1)选择eclipse软件工具,建立工程。(2)设计显示界面。 选用jav
8、a 的swing 、awt 组件设计界面。界面采用flowlayout与gridlayout嵌套布局。按照环境监测系统功能的需要添加组件。四系统说明本系统搭建了一个温湿度的采集显示环境,能够采集周围环境中的温度、湿度值,并且实时在PC机上显示。PC机实时显示界面如图:五设计总结系统采用SHT10单片数字温湿度传感器将温湿度采集集成在一起,数据的读取要采用时序控制来进行。采集变量的实时显示由JAVA编制界面来完成。我负责界面的设计和功能的实现。首先选择eclipse软件工具,建立工程。选用java 的swing 、awt 组件设计界面。根据功能需求将界面采用flowlayout与gridlayo
9、ut嵌套布局。按照环境监测系统功能的需要添加组件。1. 建立一个窗体,采用flowlayout布局。2. 添加一个标签,当作程序名称添加至窗体的North。期间学习了设置文字的大小颜色。3. 将Center 采用gridlayout,分为一行两列。分别在两列中添加温度面板和湿度面板。对布局更加熟悉。4. 分别在温度面板和湿度面板中添加当前值、上限值、下限值、及相应的调节机器的状态的标签 和对应的显示的文本框。5. 对两个面板的当前值、上限值、下限值设置监听。期间加深了对监听的设置和实现的理解。6. 添加串口通信面板和操作面板并对他们实现监听。期间和学习了串口通信。7. 完成异常的抛出处理。8.
10、 调用主函数即可完成界面的显示和相应功能。在实验中遇到很多不懂的问题,通过书籍、上网查资料进行学习解决问题。队友给我的帮助很大。在本次实验中增强了问题的处理能力、加深了对传感器感知,熟练了Java的编程能力。六附录源程序文件名清单:TempAndHum.h /传感器程序Coordinator.h /协调器程序/界面显示程序共有5个包 分别实现 异常处理、串口管理、界面设计、数据处理、方法实现。(程序的实现需要从网络下载配置串口通信的包)实验结果已经老师检查,成功实现要求功能。下面仅给出初始化界面的类 和 主函数的类代码。package com.zyl;import java.io.File;i
11、mport java.io.FileOutputStream;import java.io.PrintWriter;import gnu.io.SerialPort;import gnu.io.SerialPortEvent;import gnu.io.SerialPortEventListener;import java.text.*;import java.awt.*;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.util.List;import javax.swing.
12、border.EtchedBorder;import javax.swing.border.TitledBorder;import com.yang.serialport.exception.NoSuchPort;import com.yang.serialport.exception.NotASerialPort;import com.yang.serialport.exception.PortInUse;import com.yang.serialport.exception.SerialPortParameterFailure;import com.yang.serialport.exc
13、eption.TooManyListeners;import com.yang.serialport.manage.SerialPortManager;import com.yang.serialport.utils.ByteUtils;import com.yang.serialport.utils.ShowUtils;import java.awt.Color;import javax.swing.BorderFactory;import javax.swing.JButton;import javax.swing.JComboBox;import javax.swing.JFrame;i
14、mport javax.swing.JLabel;import javax.swing.JPanel;/ 窗口初始化public class Csh extends JFrame implements Data public static Double sdz = 0.00; public static Double wdz = 0.00 ; boolean thereIsSomeOne=false; boolean theDoorIsOpen=false; /* * 程序界面宽度 */ public static final int WIDTH = 500; /* * 程序界面高度 */ public static final int HEIGHT = 360; /private JTextArea dataView = new JTextArea();/ private JScrollPane scrollDataView = new JScrollPane(dataView); / 串口设置面板 private JPanel serialPortPanel = new JPanel(); private JLabel serialPortLabel = new JLabel(串口); private JLabel baudrate
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1