版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
《物联网应用系统》任务书题目:基于ZigBee智能擦窗控制系统设计学生姓名:学号:班级:物联网工程1班题目类型:物联网工程指导教师:吴爱梅一、设计题目简介该设计要求学生以物联网在智能家居领域应用为背景,设计并开发基于ZigBee智能插座控制系统。通过该题目的设计、开发,使学生初步得到智能家居家电的训练,掌握物联网的感知层、网络层和应用层这三层在智能家居的应用知识。全面培养学生在设计开发过程中的分析、设计及文档规范书写的能力,通过智能家居开发的综合训练,提高解决实际问题的能力。二、设计的任务1.查阅文献资料,一般在10篇以上;2.以智能家居家电控制背景为基础,通过调研、分析现有的智能家居家电控制系统,设计基于ZigBee智能插座控制系统;3.完成硬件电气原理图设计;4.完成硬件驱动程序软件设计;5.完成ZigBee协议栈开发软件设计;6.完成PC端Qt窗体界面开发软件设计7.撰写设计说明书;8.做好答辩工作。三、主要内容、功能及技术指标1.设计内容绘制电气原理图:ZigBee继电器终端节点模块、ZigBee协调器模块;编写继电器驱动程序;编写ZigBee协议栈软件程序:ZigBee继电器终端节点程序功能的实现,ZigBee协调器程序功能的实现;PC机Qt图形界面软件设计:ZigBee智能插座控制系统窗体界面设计,ZigBee智能插座控制系统窗体界面功能实现的设计。2.功能实现基于ZigBee智能插座控制系统设计,主要采用无线近距离通信技术对室内插座进行控制。PC机通过RS-232串口与ZigBee协调器模块连接,由PC机Qt图形交互界面上发出通电与断电指令并传送到ZigBee协调器模块。再由ZigBee协调器模块通过ZigBee网络发送至ZigBee继电器终端节点,进而控制室内插座电源的通与断。3.技术要求(1)系统设计使用软件要求:IAR集成开发环境软件、TIZ-Stack协议栈、USB转串口驱动软件、QtCreator跨平台开发环境软件。(2)系统设计使用硬件要求:1块ZigBee协调器模块、1块ZigBee继电器终端节点模块。四、提交的成果1.课程设计说明书(1份)A4打印稿,正文部分要求不少于30页,中文为宋体,英文为TimeNewRoman。正文及目录格式参考(毕业设计论文格式要求)正文包括以下内容。系统简介;需求分析;ZigBee继电器硬件电气原理图设计;继电器驱动程序设计;ZigBee协议栈软件设计;PC机Qt图形界面软件设计;摘要、章节目录、总结、参考文献、致谢等。2.光盘(1张)把完成的所有电子文档(设计说明书文档、打包后可运行程序及源程序)一并交由指导老师处。为了统一,资料规范如下。(1)光盘名称为“学号+姓名”,如:14730142周**。(2)光盘根目录下只包含一个文件夹,文件夹的命名为“学号+姓名”,该文件夹中包含4部分内容:电气原理图、PC机Qt图形窗体界面图、软件程序流程图和设计说明书。五、主要参考文献[1]钟永锋,刘永俊.ZigBee无线传感器网络[M].北京邮电大学出版社.2011[2] 瞿雷,刘盛德,胡咸斌.ZIGBEE技术及应用[M].北京航空航天大学出版社.2007[3] 王小强,欧阳骏,黄宁淋ZigBee无线传感器网络设计与实现[M].化学工业出版社.2012[4] 青岛东合信息技术有限公司.Zigbee开发技术及实践.西安电子科大.2014[5] 杭州晶控电子有限公司.教你搭建自己的智能家居系统[M].机械工业出版社,2013[6] 郑阿奇,陈超.Qt4开发实践.电子工业出版社.2011.[7]李文仲,段朝玉等.ZigBee2007/PRO协议栈实验与实践[M].北京航空航天.2011[8] 雷梁.基于ZigBee无线传感网络的嵌入式智能家居监控系统研究[P].西华大学.2009.[9]童晓渝,房秉毅,张云勇.物联网智能家居发展分析[J].移动通信.2010[10] 王浩,浦灵敏等.物联网技术应用开发[P].中国水利水电出版社.2014.六、各阶段时间安排(共2周)周次日期内容地点第1周星期一分组、选题、收集与整理资料教室星期二硬件电气原理图设计教室星期三硬件驱动程序设计星期四~星期五ZigBee协议栈终端节点开发软件设计第2周星期一ZigBee协议栈协调器开发软件设计教室星期二~星期三PC机Qt窗体界面设计教室星期四撰写课程设计说明书教室星期五答辩教室2017年6月3日摘要随着科学技术的飞跃发展,生活水平的不断提高,人们对安全、舒适、健康的生活需求变得日益迫切。而近年来,智能家居概念已经逐渐深入到国民的生活之中,且不断地影响着人们的思维。因此,众多有能力的小区、别墅用户已经开始安装使用智能家居系统,并尝试智能化为家居生活带来的安全、舒适和便利。时光飞逝,日夜如梭。室外清洁工作所花费的成本与面临的安全隐患也持续增大,然而,家庭擦窗时总会遇到这样的麻烦,窗户外侧玻璃受到空间限制,擦拭比较困难,尤其是住在高层建筑上的住户,操作时存在很大的安全隐患,但长时间不擦拭,粘上灰尘,就不美观了,因此我们的设计实现内外壁同时擦拭,智能化,集成化度高,操作方便,我们使用zigbee无线传感网络技术来实现,最后显在Qt界面上。由于我国房地产行业的迅速发展,也带动了我国门窗幕墙行业的迅速发展,随着消费者生活水平的提高,智能化的产品如雨后春笋,正逐步发展和壮大。而我们的智能窗户就是在这样的环境下应运而生的,因此具有广阔的市场空间和应用前景。关键字:智能化人性化zigbee技术一体化系统集成目录TOC\o"1-3"\h\u1961系统概述 1111151.1系统介绍 1281371.2系统总流程图 3180792需求分析 3258523Zigbee继电器硬件电气原理设计 5202463.1Zigbee硬件开发平台 5177033.2Zigbee采集节点模块 6312383.3Zigbee无线传输模块 6147553.4PC机无线控制执行机构与外设实现的效果图 7137763.5关键代码设计 7202714.驱动模块设计 9236934.1器件介绍 9241794.2原理设计 9305784.3继电器功能流程图 10149274.4代码 11190325zigbee协议栈软件设计 14188955.1协调器代码 14205815.2终端节点 17129596.PC机Qt图形界面软件设计 21233446.1软件设计 2182386.2界面设计 23204386.3运行程序界面 2321733总结 266613参考文献 2724092致谢 281系统概述1.1系统介绍随着生活水平的提高,人们希望拥有一个舒适、便捷、安全的家居环境,传统的住宅正向智能化方向转变。在此背景下,设计了一种基于物联网的智能窗帘控制系统。给出系统结构及工作原理,着重阐述主要硬件及软件的设计。该系统以嵌入式操作系统为核心,采用ZigBee无线通信技术实现信号传输,GPRS通信技术实现系统远程监控,实现了对窗帘的本地与远程控制。测试结果表明该系统运行稳定,数据传输正确率高。将该系统应用于智能窗帘中,能够使智能窗帘的控制更加多样化与智能化,对智能窗帘未来的发展,具有实际应用价值。智能家居是一个居住环境,是以住宅为平台安装有智能家居系统的居住环境,实施智能家居系统的过程就称为智能家居集成。它将各种家庭设备通过程序设置,利用宽带、固话和3G无线网络,可以实现对家庭设备的远程操控。与普通家居相比,智能家居不仅提供舒适宜人且高品位的家庭生活空间,而且能够实现更智能化的家庭控制管理。一方面,智能家居让用户有更方便的手段来管理家庭设备,比如,通过无线遥控器、智能手机、互联网或者语音识别方式控制家用电器,还可以执行场景模式称作,使多个设备形成联动;另一方面,智能家居的各种设备相互之间可以通信,不需要用户干预也能根据事先设定的不同条件,相互之间进行识别和运行,从而给用户带来最大程度的高效、便利、舒适与安全。简而言之,智能家居是以住宅为平台,兼备建筑、网络通信、信息家电、设备自动化,集系统、结构、服务、管理为一体的高效、舒适、安全、便利、环保的居住环境。智能家居发展的特点和方向智能家居的发展历程智能家居的发展大致经历了4代:第一代只要基于同轴线、两芯线进行家庭组网,实现灯光、窗帘控制和少量安防设备控制等功能。第二代主要基于rs-485线,部分基于IP技术进行组网,实现可视对讲、安防等功能。第三代实现了智能控制的集中化,主要实现包括安防、控制计量等业务功能。第四代基于IP技术,利用zigbee无线通信技术,智能家居业务可根据用户需求实现定制化和个性化。智能家居技术种类目前市场上比较可靠的智能家居技术主要有4类:集中布线技术、无线射频技术、电力载波技术、zigbee无线组网技术。(1)集中布线技术它主要应用于智能化控制,因为需要布线,所以信号相对稳定,比较适合楼宇和小区智能化等大区域的控制,但设备安装比较复杂、造价较高。(2)无线射频识别技术它利用点对点的射频技术,实现对家居和灯光的控制,安装设置相对比较方便,但系统功能相对较弱,控制方式也比较单一,易受周围无线设备环境及障碍物的干扰,其主要应用于实现特定功能电器或灯光控制领域。(3)电力载波技术它无需重新布线,主要利用家庭内部的电力线传输控制信号,从而实现对家电和灯光的控制与管理,而且可以不断升级。功能实用,比较适合大众化消费。(4)zigbee无线组网通信技术zigbee从布线上属于无线技术,具有布线简单、易扩展和易维护的特点。这使得zigbee可以按照功能要求,构建含有任意多个节点的无线网络,通信传输可以在任意节点之间进行,可以有效节约人力、物力成本。2.智能家居系统的发展方向(1)一体化系统集成智能家居在未来发展过程中,需要将家庭自动化管理,三表计量、安全防范监测、火灾报警以及设备监控等功能进行集成,从而提高家庭管理智能化水平。(2)节能环保智能家居结合现有技术降低功耗,减少对家庭和周围环境的污染,提高生活环境的质量,这些都是智能家居今后走入家庭必须考虑的问题。(3)智能化、网络化和人性化家庭智能化是当代高科技技术和生物学技术的高度综合和升华,其中网络化是信息技术、通信技术和计算机技术发展的必然趋势,是发展家庭智能化的一个重要条件,个性化体现了以用户为中心,在家庭构建按需所求的智能家居系统。1.2系统总流程图图1.1系统总流程图2需求分析由于我国房地产行业的迅速发展,也带动了我国门窗幕墙行业的迅速发展。一般来说,一个建筑物按建筑面积推算,有10%是窗,15%是门,全国每年新建的房屋为20亿平方米,门窗的需求量为5亿多平方米。如再考虑到原有城乡房屋建筑的窗户改造,每年窗户的安装量至少达到10亿平方米。全国窗户消费需求空间为500亿元,并且还有不断扩大的趋势。门窗是家庭智能化安全防范系统的一个重要组成部分,是一种智能化的控制系统,它由先进传感器(温度传感器、风雨信号传感器等)、遥控器及一系列机械传动装置组成,是具有智能化、人性化、网络化的高科技产品。可以对窗户进行随心所欲的控制和安全设置,它具有时尚、方便、安全等特点,使人们的家居环境得到较大的改善,智能窗户控制系统将在具有明显竞争优势的环境下找到市场,带来经济效益。1.消费者智能化意识增强,智能产品用户增多近几年,在国内很多IT和家电企业纷纷跻身智能家居行业领域。使得行业竞争度迅速提升,一时之间市场充满各种各种智能家居产品,很多人家里都使用总线制的技术的,传感器技术,红外技术,电力载波技术,无线通信组网技术,还有无线射频技术。尽管以上这种物品的功能单一,都集中无线摇控、远程控制等处,但市场需求依旧庞大。2.市场上现存的部分智能家居产品尚且存在许多不足之处从以上信息我可以看出这些产品多数不能算是真正意义上的家居智能化,个别产品如电力线载波技术可以实现家居的智能化,但是通过消费者调研和专家分析,我发现这些产品的缺点很多,比如传输信息不稳定、产品质量本身有问题、外观差等弊病,这些对一般的家庭来说,其成本也是很高的。3.本产品在行业中的价值链分析对于本产品而言,它在行业中面临的竞争,我可以通过最为基本的行业竞争波特五力模式来予以分析。在和供应商讨价还价方面,该公司在产品的原料上没有什么太大的门槛,所以在讨价还价上几乎不存在阻力,同时由于生产科技的专利,尚无竞争对手来拼抢原料资源;面对潜在进入者的威胁比较小,该产品已经注册,产品研发科技已经申请专利保护,目前产品尚没有在市场上得到响应,还没有企业关注,潜在进入者的威胁至少在目前还不存在3Zigbee继电器硬件电气原理设计3.1Zigbee硬件开发平台CC2530是用于2.4-GHzIEEE802.15.4、ZigBee和RF4CE应用的一个真正的片上系统(SoC)解决方案。它能够以非常低的总的材料成本建立强大的网络节点。CC2530结合了领先的RF收发器的优良性能,业界标准的增强型8051CPU,系统内可编程闪存,8-KBRAM和许多其它强大的功能。CC2530芯片系列中使用的8051CPU内核是一个单周期的8051兼容内核。它有三种不同的内存访问总线(SFR,DATA和CODE/XDATA),单周期访问SFR,DATA和主SRAM。它还包括一个调试接口和一个18输入扩展中断单元。中断控制器总共提供了18个中断源,分为六个中断组,每个与四个中断优先级之一相关。当设备从活动模式回到空闲模式,任一中断服务请求就被激发。一些中断还可以从睡眠模式(供电模式1-3)唤醒设备。内存仲裁器位于系统中心,因为它通过SFR总线把CPU和DMA控制器和物理存储器以及所有外设连接起来。内存仲裁器有四个内存访问点,每次访问可以映射到三个物理存储器之一:一个8-KBSRAM、闪存存储器和XREG/SFR寄存器。它负责执行仲裁,并确定同时访问同一个物理存储器之间的顺序。8-KBSRAM映射到DATA存储空间和部分XDATA存储空间。8-KBSRAM是一个超低功耗的SRAM,即使数字部分掉电(供电模式2和3)也能保留其内容。这是对于低功耗应用来说很重要的一个功能。32/64/128/256KB闪存块为设备提供了内电路可编程的非易失性程序存储器,映射到XDATA存储空间。除了保存程序代码和常量以外,非易失性存储器允许应用程序保存必须保留的数据,这样设备重启之后可以使用这些数据。使用这个功能,例如可以利用已经保存的网络具体数据,就不需要经过完全启动、网络寻找和加入过程。调试接口执行一个专有的两线串行接口,用于内电路调试。通过这个调试接口,可以执行整个闪存存储器的擦除、控制使能哪个振荡器、停止和开始执行用户程序、执行8051内核提供的指令、设置代码断点,以及内核中全部指令的单步调试。使用这些技术,可以很好地执行内电路的调试和外部闪存的编程。设备含有闪存存储器以存储程序代码。闪存存储器可通过用户软件和调试接口编程。闪存控制器处理写入和擦除嵌入式闪存存储器。闪存控制器允许页面擦除和4字节编程。I/O控制器负责所有通用I/O引脚。CPU可以配置外设模块是否控制某个引脚或它们是否受软件控制,如果是的话,每个引脚配置为一个输入还是输出,是否连接衬垫里的一个上拉或下拉电阻。CPU中断可以分别在每个引脚上使能。每个连接到I/O引脚的外设可以在两个不同的I/O引脚位置之间选择,以确保在不同应用程序中的灵活性。系统可以使用一个多功能的五通道DMA控制器,使用XDATA存储空间访问存储器,因此能够访问所有物理存储器。每个通道(触发器、优先级、传输模式、寻址模式、源和目标指针和传输计数)用DMA描述符在存储器任何地方配置。许多硬件外设(AES内核、闪存控制器、USART、定时器、ADC接口)通过使用DMA控制器在SFR或XREG地址和闪存/SRAM之间进行数据传输,获得高效率操作。定时器1是一个16位定时器,具有定时器/PWM功能。它有一个可编程的分频器,一个16位周期值,和五个各自可编程的计数器/捕获通道,每个都有一个16位比较值。每个计数器/捕获通道可以用作一个PWM输出或捕获输入信号边沿的时序。它还可以配置在IR产生模式,计算定时器3周期,输出是ANDed,定时器3的输出是用最小的CPU互动产生调制的消费型IR信号。CC2530具有一个IEEE802.15.4兼容无线收发器。RF内核控制模拟无线模块。另外,它提供了MCU和无线设备之间的一个接口,这使得可以发出命令,读取状态,自动操作和确定无线设备事件的顺序。无线设备还包括一个数据包过滤和地址识别模块。3.2Zigbee采集节点模块主要作用:用于接收来自传感器的数据信号并通过天线以电磁波的形势发送给中央节点。采集节点组成包括:天线、单片机、传感器。其中单片机运行所有的程序,实现读传感器数据以及把数据通过天线以电磁波的形势发送给中央节点的作用。3.3Zigbee无线传输模块作用:通过硬件系统和软件系统,从而实现传输模块与上位机通信的全过程。经调试,系统运行良好。实践证明,基于zigbee无线传输协议设计无线数据传输模块来传输数据具有耗资少、安全性高、灵活性较强等优点,值得推广和应用。3.4PC机无线控制执行机构与外设实现的效果图zigbee网络zigbee网络图3.1无线控制效果图PC端通过串口发送打开或关闭控制命令信息,给zigbee协调器,zigbee协调器通过无线传感网络发送至zigbee终端节点即继电器接点,实现窗户和水泵的打开关闭控制。3.5关键代码设计P14、P15初始化为输出功能。voidRELAY_INT(void){P1DIR|=0x30;//继电器12输出P1_4=0;P1_5=0;}然后就可以对P14和P15输出进行操作从而对继电器的开合进行控制。主函数程序清单voidmain(void){ uint8keyvalue;intClock(); P1DIR|=0x04;//打开电源 P1&=~0x04;RELAY_INT();ugOled9616int();//初始化OLed配置HalAdcInit();delay(10);LcdPutString16_8(0,0,"WXL-WINDOWS",12,1);while(1) { keyvalue=0;keyvalue=halGetJoyKeyInput();switch(keyvalue){case0x01://UPP1_4=1;//K1OPENP1_5=0;//K2CLOSELcdPutString16_8(0,0,"OPEN",12,1);break;case0x02://RIGHTP1_4=0;//K1CLOSEP1_5=1;//K2OPENLcdPutString16_8(0,0,"CLOSE",12,1);break;default:break;}}}4.驱动模块设计4.1器件介绍继电器(英文名称:relay)是一种电控制器件,是当输入量(激励量)的变化达到规定要求时,在电气输出电路中使被控量发生预定的阶跃变化的一种电器。它具有控制系统(又称输入回路)和被控制系统(又称输出回路)之间的互动关系。通常应用于自动化的控制电路中,它实际上是用小电流去控制大电流运作的一种“自动开关”。故在电路中起着自动调节、安全保护、转换电路等作用。\o"查看图片"
电磁继电器工作原理图只要在线圈两端加上一定的电压,线圈中就会流过一定的电流,从而产生电磁效应,衔铁就会在电磁力吸引的作用下克服返回弹簧的拉力吸向铁芯,从而带动衔铁的动触点与静触点(常开触点)吸合。当线圈断电后,电磁的吸力也随之消失,衔铁就会在弹簧的反作用力返回原来的位置,使动触点与原来的静触点(常闭触点)释放。这样吸合、释放,从而达到了在电路中的导通、切断的目的。对于继电器的“常开、常闭”触点,可以这样来区分:继电器线圈未通电时处于断开状态的静触点,称为“常开触点”;处于接通状态的静触点称为“常闭触点”。继电器一般有两股电路,为低压控制电路和高压工作电路。4.2原理设计这里采用两路继电器来实现链式推窗器的开关功能图4.1继电器原理图4.3继电器功能流程图图4.2继电器功能流程图窗户开关取决于网关发送的继电器命令组合。4.4代码继电器命令接收处理代码如下。voidSampleApp_MessageMSGCB(afIncomingMSGPacket_t*pkt){ uint8RfHaveTxDara=0;//无线有数据需要发送 ieeeAddr=NLME_GetExtAddr(); memcpy(RfRx.RxBuf,pkt->cmd.Data,32); memset(RfTx.TxBuf,'x',32); switch(RfRx.RXDATA.HeadCom[0]){case'R'://读break;case'T'://测试if((RfRx.RXDATA.HeadCom[1]=='R')&&(RfRx.RXDATA.HeadCom[2]=='E')//控制继电器{if(SensorNum==6)//继电器板{if((RfRx.RXDATA.DataBuf[0]=='K')&&(RfRx.RXDATA.DataBuf[1]=='1')){if(RfRx.RXDATA.DataBuf[2]=='1'){Relay1State=1;P1_4=1;}elseif(RfRx.RXDATA.DataBuf[2]=='0'){Relay1State=0;P1_4=0;}}if((RfRx.RXDATA.DataBuf[3]=='K')&&(RfRx.RXDATA.DataBuf[4]=='2')){if(RfRx.RXDATA.DataBuf[5]=='1'){Relay2State=1;P1_5=1;}elseif(RfRx.RXDATA.DataBuf[5]=='0'){Relay2State=0;P1_5=0;}}memcpy(RfTx.TxBuf,RfRx.RxBuf,14);RfTx.TXDATA.DataBuf[0]='O';RfTx.TXDATA.DataBuf[1]='K';RfHaveTxDara=1;}}//end控制继电器break;case'S'://设置break; }//end if(RfHaveTxDara)//如果有数据要发送 { RfTx.TXDATA.Head='&'; RfTx.TXDATA.LastByte='*'; SendData(0x0000,RfTx.TxBuf,32);//发送数据 RfHaveTxDara=0; }}5zigbee协议栈软件设计5.1协调器代码uint16SampleApp_ProcessEvent(uint8task_id,uint16events){ afIncomingMSGPacket_t*MSGpkt;uint16temp;#if(defined(WXL_ROUTER)||defined(WXL_RFD))//ROUTERORRFDuint16SrcSaddr;#endif(void)task_id;//Intentionallyunreferencedparameterif(events&SYS_EVENT_MSG) {MSGpkt=(afIncomingMSGPacket_t*)osal_msg_receive(SampleApp_TaskID); while(MSGpkt) {switch(MSGpkt->hdr.event) {caseKEY_CHANGE: SampleApp_HandleKeys(((keyChange_t*)MSGpkt)->state,((keyChange_t*)MSGpkt)->keys); break; caseAF_INCOMING_MSG_CMD: SampleApp_MessageMSGCB(MSGpkt); break; caseZDO_STATE_CHANGE: SampleApp_NwkStat(devStates_t)(MSGpkt->hdr.status); if((SampleApp_NwkState=DEV_ROUTER)||(SampleApp_NwkStat==DEV_END_DEVICE)) { HalLedSet(HAL_LED_1,HAL_LED_MODE_ON); memset(RfTx.TxBuf,'x',32); RfTx.TXDATA.Head='&'; RfTx.TXDATA.HeadCom[0]='J'; RfTx.TXDATA.HeadCom[1]='O'; RfTx.TXDATA.HeadCom[2]='N'; ieeeAddr=NLME_GetExtAddr(); memcpy(RfTx.TXDATA.Laddr,ieeeAddr,8);SrcSaddr=NLME_GetShortAddr(); RfTx.TXDATA.Saddr[0]=SrcSaddr;RfTx.TXDATA.Saddr[1]=SrcSaddr>>8;#ifdef WXL_RFD RfTx.TXDATA.DataBuf[0]='R'; RfTx.TXDATA.DataBuf[1]='F'; RfTx.TXDATA.DataBuf[2]='D';#endif #ifdef WXL_ROUTER RfTx.TXDATA.DataBuf[0]='R'; RfTx.TXDATA.DataBuf[1]='O'; RfTx.TXDATA.DataBuf[2]='U';#endif NLME_GetCoordExtAddr(&RfTx.TXDATA.DataBuf[3]);temp=NLME_GetCoordShortAddr();RfTx.TXDATA.DataBuf[11]=(unsignedchar)(temp>>8);RfTx.TXDATA.DataBuf[12]=(unsignedchar)(temp);RfTx.TXDATA.DataBuf[13]=SensorNum;RfTx.TXDATA.LastByte='*';SendData(0x0000,RfTx.TxBuf,32);//发送自己的节点信息到主机if(JY) osal_start_timerEx(SampleApp_TaskID, SAMPLEAPP_SEND_PERIODIC_MSG_EVT, SAMPLEAPP_1000MS_TIMEOUT);//每秒采集一次传感器数据 } BreakecaseSPI_INCOMING_ZTOOL_PORT: UartRxComCallBack();//串口收到一帖数据的处理 break; default: break; } osal_msg_deallocate((uint8*)MSGpkt); MSGpkt=(afIncomingMSGPacket_t*)osal_msg_receive(SampleApp_TaskID); } return(events^SYS_EVENT_MSG); } if(events&SAMPLEAPP_SEND_PERIODIC_MSG_EVT)//发送数据超时 {osal_start_timerEx(SampleApp_TaskID,SAMPLEAPP_SEND_PERIODIC_MSG_EVT,SAMPLEAPP_1000MS_TIMEOUT);return(events^SAMPLEAPP_SEND_PERIODIC_MSG_EVT); } if(events&SAMPLEAPP_UART_RX_EVT)//串口接收数据超时 {return(events^SAMPLEAPP_UART_RX_EVT); } return0;}协调器CPU:采用TI公司LM3S9B96;CORTEXM3内核;主频为80MHz。所谓协调器,就是网络组织的管理者。针对一般的应用模式,在一个Zigbee网络形成之后,协调器不是必须的。它最主要的作用是,依据扫描情况,选择一些合适参数建立一个网络。基于CC2420的zigbee协调器具有结构简单、功耗低、成本低等特点。5.2终端节点voidSampleApp_MessageMSGCB(afIncomingMSGPacket_t*pkt){ uint8RfHaveTxDara=0;//无线有数据需要发送 ieeeAddr=NLME_GetExtAddr(); memcpy(RfRx.RxBuf,pkt->cmd.Data,32); memset(RfTx.TxBuf,'x',32); switch(RfRx.RXDATA.HeadCom[0]){case'R'://读break;case'T'://测试if((RfRx.RXDATA.HeadCom[1]=='V')&&(RfRx.RXDATA.HeadCom[2]=='F'))//控制排风扇{if(SensorNum==6&&DeviceName==12){if((RfRx.RXDATA.DataBuf[0]=='K')&&(RfRx.RXDATA.DataBuf[1]=='1')){P1_4=1;}elseif((RfRx.RXDATA.DataBuf[0]=='K')&&(RfRx.RXDATA.DataBuf[1]=='0')){P1_4=0;}memcpy(RfTx.TxBuf,RfRx.RxBuf,14);RfTx.TXDATA.DataBuf[0]='O';RfTx.TXDATA.DataBuf[1]='K';RfHaveTxDara=1;}}//end控制继电器elseif((RfRx.RXDATA.HeadCom[1]=='A')&&(RfRx.RXDATA.HeadCom[2]=='L')){if(SensorNum==6&&DeviceName==12){if((RfRx.RXDATA.DataBuf[0]=='K')&&(RfRx.RXDATA.DataBuf[1]=='1')){P1_5=1;}elseif((RfRx.RXDATA.DataBuf[0]=='K')&&(RfRx.RXDATA.DataBuf[1]=='0')){P1_5=0;}memcpy(RfTx.TxBuf,RfRx.RxBuf,14);RfTx.TXDATA.DataBuf[0]='O';RfTx.TXDATA.DataBuf[1]='K';RfHaveTxDara=1;}}//end控制继电器elseif((RfRx.RXDATA.HeadCom[1]=='A')&&(RfRx.RXDATA.HeadCom[2]=='W')){if(SensorNum==6&&DeviceName==3)//继电器控制窗户{if((RfRx.RXDATA.DataBuf[0]=='K')&&(RfRx.RXDATA.DataBuf[1]=='0')){P1_4=0;P1_5=1;}elseif((RfRx.RXDATA.DataBuf[0]=='K')&&(RfRx.RXDATA.DataBuf[1]=='1')){P1_4=1;P1_5=0;}elseif((RfRx.RXDATA.DataBuf[0]=='K')&&(RfRx.RXDATA.DataBuf[1]=='2')){P1_4=0;P1_5=0;}memcpy(RfTx.TxBuf,RfRx.RxBuf,14);RfTx.TXDATA.DataBuf[0]='O';RfTx.TXDATA.DataBuf[1]='K';RfHaveTxDara=1;}}//end控制继电器break;case'S'://设置break; } if(RfHaveTxDara)//如果有数据要发送 { RfTx.TXDATA.Head='&'; RfTx.TXDATA.LastByte='*'; SendData(0x0000,RfTx.TxBuf,32);//发送数据 RfHaveTxDara=0; }}6.PC机Qt图形界面软件设计6.1软件设计QT是一个1991年由奇趣科技开发的跨平台图形用户界面应用程序开发框架。广泛用于开发GUI程序,这种情况下又被称为部件工具箱。也可用于开发非GUI程序,比如控制台工具和服务器。它是Digia公司的产品。QT使用标准的C++和特殊的代码生成扩展(称为元对象编译器(MetaObjectCompiler,moc))以及一些宏。通过语言绑定,其他的编程语言也可以使用QT。QT是自由且开放源代码的软件,在GNU较宽松公共许可证条款下发布。所有版本都支持广泛的编译器,包括GCC的C++编译器和VisualStudio。Qt开放源代码,并且提供自由软件的用户协议。使得它可以被广泛地应用在各平台上的开放源代码软件开发中。Qt提供三种授权方式。三种授权方式的功能、性能都没有区别,仅在于授权协议的不同。LGPL和GPL是免费发布,商业版则需收取授权费。Qt商业版-Qt商业授权适用于开发专属和/或商业软件。此版本适用于不希望与他人共享源代码,或者遵循GNU宽通用公共许可证(LGPL)2.1版或GNUGPL3.0版条款的开发人员。提供了技术支持服务。可以任意的修改Qt的源代码,而不需要公开。GNULGPLv.2.1-Qt4.5.0及以后的版本开始遵循GNULGPL。LGPL允许链结到它的软件使用任意的许可证,可以被专属软件作为类库引用、发布和销售。可以购买支持服务。GNUGPLv.3.0-如果您希望将Qt应用程序与受GNU通用公共许可证(GPL)3.0版本条款限制的软件一同使用,或者您希望Qt应用程序遵循该GNU许可证版本的条款,则此版本Qt适用于开发此类Qt应用程序。可以购买支持服务。Qt的图形用户界面的基础是QWidget。Qt中所有类型的GUI组件如按钮、标签、工具栏等都派生自QWidget,而QWidget本身则为QObject的子类。Widget负责接收鼠标,键盘和来自窗口系统的其他事件,并描绘了自身显示在屏幕上。每一个GUI组件都是一个widget,widget还可以作为容器,在其内包含其他Widget。QWidget不是一个抽象类型。并且可以被放置在一个已存在的用户界面中;若是Widget没有指定父Widget,当它显示时就是一个独立的视窗、或是一个顶层widget。QWidget显示能力包含了透明化及Double-Buffering。Qt提供一种托管机制,当Widget于创建时指定父对象,就可把自己的生命周期交给上层对象管理,当上层对象被释放时,自己也被释放。确保对象不再使用时都会被删除。Qt利用信号与槽(signals/slots)机制取代传统的callback来进行对象之间的沟通。当操作事件发生的时候,对象会发提交一个信号(signal);而槽(slot)则是一个函数接受特定信号并且运行槽本身设置的动作。信号与槽之间,则通过QObject的静态方法connect来链接。信号在任何运行点上皆可发射,甚至可以在槽里再发射另一个信号,信号与槽的链接不限定为一对一的链接,一个信号可以链接到多个槽或多个信号链接到同一个槽,甚至信号也可连接到信号。以往的callback缺乏类型安全,在调用处理函数时,无法确定是传递正确型态的参数。但信号和其接受的槽之间传递的数据型态必须要相符合,否则编译器会提出警告。信号和槽可接受任何数量、任何型态的参数,所以信号与槽机制是完全类型安全。信号与槽机制也确保了低耦合性,发送信号的类型并不知道是哪个槽会接受,也就是说一个信号可以调用所有可用的槽。
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 阳光心理教学课件教学课件教学课件教学
- 手术安全培训
- 菏泽学院《电子商务运营与管理》2022-2023学年第一学期期末试卷
- 2024年度产品包装设计外包服务合同2篇
- 《如何养牛才能赚钱》课件
- 护理协议书模板
- 酒店和婚庆公司合作协议书
- 小腿截肢术后护理查房
- 艺人签约合同书范本
- 经纪人与艺人签约协议 2篇
- 保安突发事件培训
- 新质生产力与乡村振兴
- 深圳大学《西方文明史》2023-2024学年第一学期期末试卷
- 租赁合同 排他条款
- 湖北省武汉市部分学校2024-2025学年高一上学期11月期中调研数学试题(含答案)
- 2024-2030年中国数据中心IT基础设施第三方服务行业前景预测及投资模式分析报告
- 医院培训课件:《医院感染预防和职业防护》
- 节约粮食英文课件
- 固体废弃物专项措施方案
- 2024年上海民政局夫妻离婚协议书
- 青年创业就业见习基地项目建设方案
评论
0/150
提交评论