《物联网编程与应用》课件-项目4 智慧路灯控制模块_第1页
《物联网编程与应用》课件-项目4 智慧路灯控制模块_第2页
《物联网编程与应用》课件-项目4 智慧路灯控制模块_第3页
《物联网编程与应用》课件-项目4 智慧路灯控制模块_第4页
《物联网编程与应用》课件-项目4 智慧路灯控制模块_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

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

文档简介

项目4智慧路灯控制模块智慧校园系统项目概述ZigBee技术是一种近距离、低复杂度、低功耗、低速率、低成本的双向无线通讯技术。主要用于距离短、功耗低且传输速率不高的各种电子设备之间进行数据传输以及典型的有周期性数据、间歇性数据和低反应时间数据传输的应用。智慧路灯控制是借助Zigbee技术,实现远程控制路灯开关,并为后续项目中将校园管理与路灯控制的整合做好准备。IOTPart实现ZigBee控制路灯开关任务01【任务描述】ZigBee就是一种便宜的,低功耗的近距离无线组网通讯技术。在校园生活中,我们离不开路灯,本任务将通过C#编写程序,使用ZigBee无线技术,实现对路灯的无线开关控制。通过本任务的实施,使学生了解zigbee、学会if语句的使用。4.1实现ZigBee控制路灯开关程序运行界面

4.1实现ZigBee控制路灯开关界面控件设置控件名称控件类型属性名属性值控件功能Form1窗体TextZigBee路灯

groupBox1框架容器Text配置

lamp1自定义控件路灯

rb_Open单选按钮text开开灯rb_Close单选按钮text关关灯com_port下拉列表框

获取PC串口btn_Open命令按钮Text打开打开串口lbl_Lamp标签Text路灯

【任务实施】

创建新项目,添加DeviceCtrlLibrary.dll引用;添加自定义控件“WinFormsDeviceControlLibrary.dll”到工具箱中;创建创建界面,参照教材图4-1与表4-1;引用DeviceCtrlLibrary、System.IO.Ports命名空间;参照教材代码,在程序中定义一个路灯开关的LampOnOff方法;参照教材代码,添加Form1窗体Load事件,实现读取系统串口;参照教材代码,添加btn_open开启按钮单击事件,实现串口设置,打开关闭串口;参照教材代码,添加rb_Open单选按钮CheckedChanged事件,实现开灯操作;参照教材代码,添加rb_Close单选按钮CheckedChanged事件,实现关灯操作。4.1实现ZigBee控制路灯开关【知识提炼】

IF语句if语句控制条件分支。如果表达式的值不为零,则执行if语句体。if语句的语法有两种形式。语法selection-statement:(1)if(expression)statement(2)if(expression)statementelsestatement在第一种形式的语法中,如果expression为true(非零),则执行statement。如果expression为false,则忽略statement。在第二种形式的语法(使用了else)中,如果expression为false,则执行第二个statement。对于这两种形式,除非其中一个语句包含break、continue或goto,否则控制随后会从程序中的if语句传递到的下一语句。4.1实现ZigBee控制路灯开关【能力拓展】

1.闰年判断,在文本框中输入年份,按下“判断”按钮,是闰年则在右边标签上显示“是闰年”,否则显示“不是闰年”。什么是闰年:闰年判断条件是能被4整除但不能被100整除,或者能被400整除的是闰年。2.通过“任务实施”的操作步骤,已经实现路灯的控制,如果让路灯根据时间自动开关(晚上18点到凌晨7点开灯,其余时间关灯)则需要使用时间控件(时间控件Timer从工具箱中选择)来完成,每分钟判断一次,程序运行后打开串口后开启时间空间功能。4.1实现ZigBee控制路灯开关【自主探究】修改任务实施程序,请为该模块增加下列功能:实时采集大气压的数值。根据大气压来控制路灯开关。4.1实现ZigBee控制路灯开关IOTPart实现人体红外和路灯联动任务02【任务描述】人体传感器基于多普勒技术原理,当人体接近传感器的感应区域时,开关就能无接触,无压力、无火花、迅速发出电气指令进行提示。本任务模拟楼梯灯设计,当有人经过时,楼道灯就亮起,无人时自动熄灭。通过本任务的实施,使学生学会单选按钮、复选框的使用,理解数组的作用。4.2实现人体红外和路灯联动程序运行界面

4.2实现人体红外和路灯联动界面控件设置控件名称控件类型属性名属性值控件功能Form1窗体Text人体红外ZigBee联动

groupBox1框架容器Text配置

lbl_lamp标签Text路灯

lbl_environment标签Text环境采集

com_lamp下拉列表框

显示路灯串口com_environment下拉列表框

显示环境串口ch_bodyInfrared复选按钮Text人体开关控制人体红外是否启动btn_Open命令按钮Text打开打开串口lamp1自定义路灯控件

btn_lampOpen命令按钮Text开手动控制开灯btn_lampClose命令按钮Text关手动控制关灯timer1时间控件Interval5000

EnabledFalse

【任务实施】

创建新项目,添加DeviceCtrlLibrary.dll引用;添加自定义控件“WinFormsDeviceControlLibrary.dll”到工具箱中;创建创建界面,参照教材图4-5与表4-3;引用DeviceCtrlLibrary、System.IO.Ports命名空间;参照教材代码,添加Form1窗体Load事件,读取系统串口至com_lamp、com_environment控件中;参照教材代码,在程序中定义一个路灯开关的LampOnOff方法;参照教材代码,添加btn_open打开按钮单击事件,实现Zigbee串口开启与关闭;参照教材代码,添加ch_bodyInfrared按钮单击事件,通过判断人体按钮状态,打开关闭adam4150的开启关闭;参照教材代码,添加btn_lampOpen单选按钮单击事件,调用LampOnOff(1,true)开启路灯;参照教材代码,添加btn_lampClose单选按钮单击事件,调用LampOnOff(1,false)关闭路灯;参照教材代码,添加timer1定时器的tick事件,实时判断是否感应到人,如果感应到人则开路灯否则关闭。4.2实现人体红外和路灯联动【知识提炼】

控件:RadioButton单选按钮RadioButton控件可以显示文本、Image或同时显示两者。当用户选择一个组内的一个选项按钮(也称作单选按钮)时,其他选项按钮自动清除。给定容器(如Form)中的所有RadioButton控件构成一个组。若要在一个窗体上创建多个组,请将每个组放在它自己的容器(例如GroupBox或Panel控件)中。RadioButton和CheckBox控件的功能相似:它们提供用户可以选择或清除的选项。不同之处在于,可以同时选定多个CheckBox控件,而选项按钮却是互相排斥的。使用Checked属性可以获取或设置RadioButton的状态,通过设置Appearance属性,可以将选项按钮的外观显示为切换式按钮或标准选项按钮。4.2实现人体红外和路灯联动【知识提炼】

控件:CheckBox复选框使用CheckBox为用户提供一个选项,如true/false或是/否。CheckBox控件可以显示图像或文本。CheckBox和RadioButton控件具有相似的功能︰它们向用户提供选择的选项列表。CheckBox控件能让用户可以从中选取选项的组合。与此相反,RadioButton控件允许用户从相互排斥的选项中进行选择,只能选一个。CheckBox控件可以通过Appearance属性确定是否显示为常见CheckBox典型的外观或者按钮形式。还可以通过IsThreeState属性来获取或设置指示控件是支持两种状态还是三种状态的值并通过IsChecked属性获取或设置是否选中了复选框控件。4.2实现人体红外和路灯联动【知识提炼】

数组数组定义:所谓数组,就是相同数据类型的元素按一定顺序排列的集合,就是把有限个类型相同的变量用一个名字命名,然后用编号区分他们的变量的集合,这个名字称为数组名,编号称为下标。组成数组的各个变量称为数组的分量,也称为数组的元素,有时也称为下标变量。数组是在程序设计中,为了处理方便,把具有相同类型的若干变量按有序的形式组织起来的一种形式。这些按序排列的同类数据元素的集合称为数组。C#数组从零开始建立索引,即数组索引从零开始。C#中数组的工作方式与在大多数其他流行语言中的工作方式类似。但还有一些差异应引起注意。声明数组时,方括号([])必须跟在类型后面,而不是标识符后面。在C#中,将方括号放在标识符后是不合法的语法。在C#中,将方括号放在标识符后是不合法的语法。如:int[]table;//不能是inttable[];4.2实现人体红外和路灯联动【知识提炼】

数组另一细节是,数组的大小不是其类型的一部分,而在C语言中它却是数组类型的一部分。这使您可以声明一个数组并向它分配int对象的任意数组,而不管数组长度如何。如:int[]numbers;//申明numbers为可以任意整数个的整形数组numbers=newint[10];//生成numbers为10个元素的数组numbers=newint[20];//重新生成numbers为20个元素的数组4.2实现人体红外和路灯联动【知识提炼】

数组数组声明:C#支持一维数组、多维数组(矩形数组)和数组的数组(交错的数组)。下面的示例展示如何声明不同类型的数组:一维数组:int[]numbers;多维数组:string[,]names;数组的数组(交错的):string[][]scores;声明数组(如上所示)并不实际创建它们。在C#中,数组是对象,必须进行实例化。4.2实现人体红外和路灯联动【知识提炼】

数组数组创建:C#支持一维数组、多维数组(矩形数组)和数组的数组(交错的数组)。下面的示例展示如何声明不同类型的数组:一维数组:int[]numbers=newint[5];多维数组:string[,]names=newstring[5,4];数组的数组(交错的):

byte[][]scores=newbyte[5][];for(intx=0;x<scores.Length;x++){ scores[x]=newbyte[4];}还可以有更大的数组。例如,可以有三维的矩形数组:int[,,]buttons=newint[4,5,3];甚至可以将矩形数组和交错数组混合使用。int[][,,][,]numbers;4.2实现人体红外和路灯联动【知识提炼】

数组初始化数组:C#通过将初始值括在大括号({})内为在声明时初始化数组提供了简单而直接了当的方法。下面的示例展示初始化不同类型的数组的各种方法。注意如果在声明时没有初始化数组,则数组成员将自动初始化为该数组类型的默认初始值。另外,如果将数组声明为某类型的字段,则当实例化该类型时它将被设置为默认值null。4.2实现人体红外和路灯联动【知识提炼】

数组访问数组成员:访问数组成员可以直接进行,类似于在C/C++中访问数组成员。创建一个名为numbers的数组,然后向该数组的第五个元素赋以5:int[]numbers={10,9,8,7,6,5,4,3,2,1,0};numbers[4]=5;最后该数组的元素为:{10,9,8,7,5,5,4,3,2,1,0};4.2实现人体红外和路灯联动【知识提炼】

数组数组是对象:在C#中,数组实际上是对象。System.Array是所有数组类型的抽象基类型。可以使用System.Array具有的属性以及其他类成员。这种用法的一个示例是使用“长度”(Length)属性获取数组的长度。下面的代码将numbers数组的长度(为5)赋给名为Lengt

温馨提示

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

评论

0/150

提交评论