《智慧校园系统》课件-项目2环境监测模块_第1页
《智慧校园系统》课件-项目2环境监测模块_第2页
《智慧校园系统》课件-项目2环境监测模块_第3页
《智慧校园系统》课件-项目2环境监测模块_第4页
《智慧校园系统》课件-项目2环境监测模块_第5页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

智慧校园系统项目2环境监测模块项目概述在智慧校园系统中,常常需要将校园环境信息发布给全校师生。LED显示屏就是一个很好的信息发布平台,通过这个平台,可以将学校的信息以文字的方式发布出来,方便全校师生了解到学校的信息。本项目将实现温湿度传感器、光敏电阻传感器采集数据显示在校园LED屏上。该项目的实施为后续智慧校园相关系统的整合做好准备。LED显示屏的使用012.1LED显示屏的使用LED显示屏是物联网系统中用来显示信息的一个平台,通过这个平台可以向公众显示信息,比如:温度、湿度等。本任务模拟智慧校园信息发布系统,用C#编写程序通过串口将信息发送至LED显示屏。通过本任务的实施,使学生学会向LED显示屏发送信息、使用groupBox控件和了解C#错误处理的方法。【任务描述】程序运行界面最终效果2.1LED显示屏的使用将LED显示屏通过串口直接连接到PC机的串口上;(注:如果没有该LED显示屏,请略过此步。)新建项目,命名为“LED显示屏”;参照教材图片,添加自定义控件到工具箱中并添加引用,实现自定义控件的加载;参照教材图片,在“工具箱”选择相应控件创建窗体界面,完成界面布局;参照教材代码,调用命名空间,并实现btn_Open按钮、btn_Send按钮和com_Port列表框的单击事件;测试项目【任务实施】【小贴士】本项目使用的是硬件测试功能,若要使用仿真功能,请将资源文件下的“DeviceCtrlLibrary.dll”文件复制到“D:\物联网编程与应用\项目2\任务1\LED显示屏\LED显示\bin\Debug”文件夹下。2.1LED显示屏的使用串口通信及串口波特率串口是串行接口(serial

port)的简称,也称为串行通信接口或COM接口。串口通信采用串行通信协议(serial

communicationprotocol),在一条信号线上将数据一位一位地顺序传送,通信线路简单,只要一条传输线就可实现双向传输,降低了成本,但是传输速度较慢。。串行通讯协议是一种计算机与外围设备进行信息通讯协议。目前在很工业控制领域中有广泛的应用,其通讯接口标准有RS-232C、RS-422、RS-423和RS-485。其中,RS-232C作为串行通信接口的电气标准定义了数据终端设备(DTE:dataterminalequipment)和数据通信设备(DCE:datacommunicationequipment)间按位串行传输的接口信息,合理安排了接口的电气信号和机械要求,在世界范围内得到了广泛的应用。串口波特率是指单片机或计算机在通信时衡量数据传输速率的参数,它表示每秒钟传送的信号的个数。比如:波特率设置为9600bit/s(位每秒),表示信号每一秒传输了9600位。一个字节8位,9600bit/s的速率,每一秒传输出了1200个字节。通常设备采用串口通讯方式进行通讯,两者的串口波特率应该设置一样,否则会出现数据接收乱码。【知识提炼】2.1LED显示屏的使用SerialPort类

SerialPort类用于实现串口数据通信。其常见属性和常见方法分别见下三表:【知识提炼】名称说明BaseStream获取SerialPort对象的基础Stream对象。BaudRate获取或设置串行波特率。BytesToRead获取接收缓冲区中数据的字节数。BytesToWrite获取发送缓冲区中数据的字节数。CDHolding获取端口的载波检测行的状态。CtsHolding获取“可以发送”行的状态。DataBits获取或设置每个字节的标准数据位长度。Encoding获取或设置传输前后文本转换的字节编码。名称说明ParityReplace获取或设置一个字节,该字节在发生奇偶校验错误时替换数据流中的

无效字节。ReadBufferSize获取或设置SerialPort输入缓冲区的大小。ReadTimeout获取或设置读取操作未完成的超时时间。ReceivedBytesThreshold获取或设置DataReceived事件发生前内部输入缓冲区中的字节数。StopBits获取或设置每个字节的标准停止位数。WriteBufferSize获取或设置串行端口输出缓冲区的大小。WriteTimeout获取或设置写入操作未完成的超时时间。PortName获取或设置通信端口。常见属性2.1LED显示屏的使用【知识提炼】名称说明Close关闭端口连接,将IsOpen属性设置为False,并释放内部Stream对象。Open打开一个新的串行端口连接。Read从SerialPort输入缓冲区中读取。ReadByte从SerialPort输入缓冲区中同步读取一个字节。ReadChar从SerialPort输入缓冲区中同步读取一个字符。ReadLine一直读取到输入缓冲区中的一行的值。ReadTo一直读取到输入缓冲区中指定value的字符串。Write已重载。将数据写入输出缓冲区。WriteLine将一行数据值写入输出缓冲区。Close关闭端口连接,将IsOpen属性设置为False,并释放内部Stream对象。Open打开串行连接。Read从输入缓冲区中读取。ReadByte从输入缓冲区中同步读取一个字节。常见方法2.1LED显示屏的使用C#基本数据类型变量在使用前必须说明其数据类型,在C#中,每个变量都有一个特定的类型,系统根据其类型给变量分配合适的内存空间。在其范围内的值可以存储在内存中,可以对变量进行一系列操作。C#中基本数据类型见下表:【知识提炼】名称说明范围decimal128位精确的十进制值,28-29有效位数(-7.9x1028

到7.9x1028)/100到28bool布尔类型(true或false)True或Falsechar16位Unicode字符U+0000到U+ffffbyte8位无符号整数类型0到255sbyte8位有符号整数类型-128到127short16位有符号整数类型-32,768到32,767int32位有符号整数类型-2,147,483,648到2,147,483,647C#基本数据类型名称说明范围long64位有符号整数类型-923,372,036,854,775,808到9,223,372,036,854,775,807ushort16位无符号整数类型0到65,535uint32位无符号整数类型0到4,294,967,295ulong64位无符号整数类型0到18,446,744,073,709,551,615float32位单精度浮点型-3.4x1038

到+3.4x1038double64位双精度浮点型(+/-)5.0x10-324

到(+/-)1.7x10308string字符串类型2.1LED显示屏的使用变量1.变量是一个供程序操作的存储区的名字。C#语言是区分大小写的,例如:charno_1;charNo_1;表示定义了两个字符变量,变量名分别是no_1和No_1。定义变量能使代码的逻辑更清晰、更易于理解。【知识提炼】C#变量定义的格式:数据类型

变量名;inta,b;charc;floatf;doubled;2.1LED显示屏的使用变量2.变量必须先定义,后使用。变量在定义时必须符合以下几个条件:1)变量名必须以字母开头。

例如:inti;inti2;//合法

int1i;//不合法2)变量名只能由字母、数字和下划线组成,而不能包含空格、标点符号、运算符等其它符号。

例如:intNo_1;//合法

intNo.1;intNo,1

intNo%1//不合法3)变量名不能与C#中的关键字名称相同。

例如:charuse;//不合法,与关键字名称相同。char@use;//合法4)变量名不能与C#中的库函数名称相同。

例如:float

Main;//不合法,与函数名称相同。【知识提炼】2.1LED显示屏的使用变量3.变量的作用域就是可以使用该变量的区域。可以通过以下规则确定变量的作用域:1)只要字段所属的类在某个作用域内,则该字段也可在该区域内使用。2)局部变量存在于表示声明该变量的块语句或方法结束的封闭大括号之前的区域内使用。3)在循环语句中声明的局部变量存在该循环体区域内使用【知识提炼】2.1LED显示屏的使用运算符运算符是指定编译器执行的数学或逻辑操作的符号。C#提供了许多运算符,常用的运算符可以分为以下几类:赋值运算符、算术运算符、比较运算符、逻辑运算符、位运算符等。常用的几种运算符及其功能见下四表。【知识提炼】运算符说明+把两个操作数相加-从第一个操作数中减去第二个操作数*两个操作数相乘/执行除法运算取商%取模运算符(求余),整除后的余数++自增运算符,整数值增加1--自减运算符,整数值减少1算术运算符运算符说明=赋值运算符,把右边操作数的值赋给左边操作数+=加且赋值运算符,把右边操作数加上左边操作数的结果赋值给左边操作数-=减且赋值运算符,把左边操作数减去右边操作数的结果赋值给左边操作数*=乘且赋值运算符,把右边操作数乘以左边操作数的结果赋值给左边操作数/=除且赋值运算符,把左边操作数除以右边操作数的结果赋值给左边操作数%=求模且赋值运算符,求两个操作数的模赋值给左边操作数赋值运算符2.1LED显示屏的使用【知识提炼】运算符说明==判断两个操作数的值是否相等,如果相等则结果为真。!=检查两个操作数的值是否相等,如果不相等则结果为真。>判断左操作数的值是否大于右操作数的值,如果是则结果为真。<判断左操作数的值是否小于右操作数的值,如果是则结果为真。>=判断左操作数的值是否大于等于右操作数的值,如果是则结果为真。<=判断左操作数的值是否小于等于右操作数的值,如果是则结果为真。比较运算符运算符说明&&逻辑与运算符。如果两个操作数都为真,则结果为真。||逻辑或运算符。如果两个操作数中有任意一个为真,则结果为真。!逻辑非运算符。检查特定表达式取反后是否为真逻辑运算符2.1LED显示屏的使用C#的错误处理方法---trycatch的使用在C#程序运行中,不可避免的会出现很多异常事件,这些异常事件会阻止程序继续运行,给用户体验增加困难。所以我们要尽量避免异常的同时,也要对异常进行处理。这时就需要使用到try-catch语句。例如:当我们下面一段代码:一个按钮事件中做除法,当除数为0时,将会导致程序出错,从而使程序中断,无法继续运行。【知识提炼】privatevoidbtn_Calculation_Click(objectsender,EventArgse){inta=100;intb=0;intc=a/b;}2.1LED显示屏的使用C#的错误处理方法---trycatch的使用为了避免这种情况出现,在程序设计时可以加入异常处理语句,处理很多在编程中不可预知的错误。【知识提炼】privatevoidbtn_Calculation_Click(objectsender,EventArgse){try

{inta=100;

intb=0;

intc=a/b;

Catch(EventArgsex)

{

MessageBox.Show(“程序出现不可预知的错误:”+ex.Message);

}}2.1LED显示屏的使用动态连接库文件本次项目中使用到了一些扩展名为DLL的文件,这种文件被称为动态链接库文件,它允许程序共享执行特殊任务所必需的代码和其他资源。Windows提供的DLL文件中包含了允许基于Windows的程序在Windows环境下操作的许多函数和资源。开发者也可以自己根据自己的需求,将一些通用的子函数封装成DLL文件,开发符合自己需求的动态链接库文件,使这种文件可以提高编程效率,实现模块化程序设计。作者也可以将自己开发的这些文件放在互联网上供其他开发者使用。动态链接库文件在使用时必须先加载,引用后再使用。本项目中使用到的DLL文件,如:DeviceCtrlLibrary.dll、WinFormsDeviceControlLibrary.dll是编者提供给学习者使用的动态链接库文件,其具体功能详见相应的“设备控制类库使用说明.doc”。【知识提炼】2.1LED显示屏的使用请完善书本代码,实现如下功能:

制作一个LED显示计算结果的小应用。【能力拓展】2.1LED显示屏的使用请将该模块增加乘法计算、除法计算的功能【自主探究】实时采集温度、湿度和光照度数据022.2实时采集温度、湿度和光照度数据随着智慧校园的建设,师生已经开始关注校园环境的舒适性。校园环境监控系统作为智慧校园的组成部分,在其建设当中已经发挥越来越重要的作用。实现智能管理和节能的基本要求,环境监测越来越得到重视。本任务是通过C#编写程序将传感器采集的数据,在计算机上显示出来。通过本任务的实施,使学生学会Lable标签与Button按钮的使用。【任务描述】程序运行界面最终效果2.2实时采集温度、湿度和光照度数据控件名称控件类型属性名属性值控件功能frm_analog窗体Text模拟量采集

grp_show框架容器Text数据显示

grp_config框架容器Text配置

txt_light文本框

输入/显示光照值txt_temperature文本框

输入/显示温度值txt_humidity文本框

输入/显示湿度值btn_get命令按钮Text获取控制数据获取btn_Open命令按钮Text开启打开串口com_port下拉列表框

显示串口lbl_light标签Text光照

lbl_temperature标签Text温度

lbl_humidity标签Text湿度

界面控件设置2.2实时采集温度、湿度和光照度数据创建新项目,添加DeviceCtrlLibrary.dll引用;创建创建界面,参照教材图2-11与表2-9;引用DeviceCtrlLibrary、System.IO.Ports和DeviceCtrlLibrary.Model;命名空间;声明boolIsOpen和ADAM4017ResModelResModel全局变量,分别用于判断是否打开串口和创建4017接收数据模型对象;参照教材代码,添加frm_analog窗体Load事件,实现读取系统串口;参照教材代码,添加btn_open开启按钮单击事件,实现串口设置,打开关闭串口;参照教材代码,添加btn_get开启按钮单击事件,通过adam4017Helper的SetData方法采集数据,并把结果传给ResModel变量,调用对象的lightValue、humidityValue和temperatureValue属性,读取光照值、湿度值、温度值。【任务实施】【小贴士】采集器ADAM4017是一款台湾研华科技公司生产的16位、8通道的模拟量输入模块,可以采集电压、电流等模拟量输入信号。2.2实时采集温度、湿度和光照度数据控件:Label标签Windows窗体Label控件用于显示用户不能编辑的文本或图像。它们用于标识窗体上的对象(例如,描述单击某控件时该控件所进行的操作)或显示相应信息以响应应用程序运行时的事件或进程。因为Label控件不能接收焦点,所以也可以用来为其他控件创建访问键。Label控件和其他控件一样支持事件,但通常不添加任何事件代码。Label标签常见属性见下表:【知识提炼】2.2实时采集温度、湿度和光照度数据【知识提炼】属性说明Name用来设置控件名称。Text用来显示标签上的文本内容。Enabled用来设置或返回控件的状态。值为true时允许使用控件,值为false时禁止使用控件,此时标签呈暗淡色,一般在代码中设置。AutoSize将AutoSize设置为true,使标签控件(Label)动态调整大小以适应其内容。将AutoSize设置为false,则在Text属性中指定的文字将切换到下一行(如果可能),但该控件不会增大。BackColor用来获取或设置控件的背景色。当该属性值设置为Color.Transparent时,标签将透明显示,即背景色不再显示出来。BorderStyle用来设置或返回边框。有三种选择:BorderStyle.None为无边框(默认),BorderStyle.FixedSingle为固定单边框,BorderStyle.Fixed3D为三维边框。Visible用来设置控件在程序运行时是否可见,通常在代码中设置。ForeColor用来设置Text属性中指定的文字的颜色。Font用来设置Text属性中指定的文字的字体。Image用来设置Label控件上显示的图片。TextAlign用来确定标签中文本的位置,只有当AutoSize属性为False时才有效果。Label标签常见属性2.2实时采集温度、湿度和光照度数据控件:Button按钮几乎所有Windows对话框中都有按钮控件,是Windows应用程序中最常用的控件之一。按钮控件允许用户通过单击来执行操作。按钮最重要的事件,也是最常用的事件就是Click。当用户单击按钮时,都会调用Click事件。其常见的事件和属性见下两表:【知识提炼】名称说明Click当用户用鼠标左键单击按钮控件时,将发生该事件。MouseDown当用户在按钮控件上按下鼠标按钮时,将发生该事件。MouseUp当用户在按钮控件上释放鼠标按钮时,将发生该事件。常见事件2.2实时采集温度、湿度和光照度数据请完善书本代码,实现如下功能:

使用标签和文本框实现图片的显示和隐藏如图3-4所示,实现功能为鼠标左键单击“显示”按钮则显示图片,单击“隐藏”按钮则隐藏图片。【能力拓展】【小贴士】Interval表示多长时间执行一次timer1_Tick事件,单位为(毫秒)。2.2实时采集温度、湿度和光照度数据修改任务实施程序,请为该模块增加下列功能:实时采集大气压的数值。每2秒更新显示温度、湿度、光照值和大气压值。【自主探究】在LED显示屏中显示环境数据032.3在LED显示屏中显示环境数据本任务结合LED显示屏的推送,用C#编写程序将温湿度传感器和光敏传感器采集的数据推送至LED显示屏显示。通过本任务的实施,使学生学会comboBox与TextBox的使用。【任务描述】程序运行界面最终效果2.3在LED显示屏中显示环境数据控件名称控件类型属性名属性值控件功能frm_LED窗体TextLED推送模拟量

grp_show框架容器Text数据显示

grp_config框架容器Text配置

txt_light文本框

输入/显示光照值txt_temperature文本框

输入/显示湿度值txt_humidity文本框

输入/显示温度值btn_get命令按钮Text获取控制数据获取btn_Open命令按钮Text开启打开串口com_adamPort下拉列表框

显示串口com_ledPort下拉列表框

显示串口界面控件设置2.3在LED显示屏中显示环境数据创建新项目,添加DeviceCtrlLibrary.dll引用;创建界面,参照教材图2-1

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论