《基于单片机的智能家居控制系统毕业论文(23页).docx》由会员分享,可在线阅读,更多相关《基于单片机的智能家居控制系统毕业论文(23页).docx(23页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、-基于单片机的智能家居控制系统毕业论文-第 20 页河南科技学院2015届本科毕业论文(设计)论文题目:基于单片机的智能家居控制系统设计学生姓名: 所在院系: 机电学院所学专业:电气工程及其自动化 导师姓名: 完成时间:20015年5月13日摘要随着物联网时代的到来,人们对生活的质量、效率的要求图越来越高。本设计将自动控制及技术用于日常生活,来提高生活质量,使人们拥有一个舒适,安全,方便的生活环境。智能家居,就是利用网络技术,自动控制技术,软件技术来实现一个家居设施的自动控制系统,从而减少人对设备的控制,使人们的家居生活更加的舒适快捷。本次设计的智能家居控制系统,目标群体定位在普通人群,产品功
2、能以实用为主,结合日常生活中人们的作息习惯,行为习惯,为人们提供一个灵活的、使用的、低成本的控制系统。关键词:智能家居,自动化,控制AbstractWith the advent of the Internet of things era, peoples quality of life and the efficiency of the figure higher and higher.This design of automatic control and technology used in everyday life, to improve the quality of life, s
3、o that people have a comfortable, safe and convenient living environment. Smart home is the use of network technology, automatic control technology, software technology to achieve a home facility of the automatic control system, thus reducing human control of the device, making peoples home life mor
4、e comfortable and efficient. The design of intelligent home control system, the target group positioning in the general population, product features mainly practical, combined with the routine of daily life, people, behavior, providing people with a flexible, use, low-cost control system.Key words:
5、Smart home 、automatic、 control目 录第一章 绪论11.1 智能家居的发展背景11.2 国外发展状况11. 国内发展状况11. 智能家居的发展展望21. 课题的研究内容及安排2第三章智能家居控制系统的硬件设计3.智能家居控制系统的主控芯片3.串行通讯电路设计:5.温度湿度传感器的硬件设计5.光照强度传感器的设计6.火险预警模块7.入侵警告模块8.GSM模块设计与应用10.2.4G无线通讯模块10第四章 软件开发124.1 LabVIEW上位机软件设计124.1.1 LabVIEW基本控件介绍124.1.2 LabVIEW的基本函数介绍134.1.2 LabVIEW程
6、序设计164.1.3 前面板美设计204.1.5 WEB发布设置214.2 嵌入式系统开软件开发214.2.1 STM32CubeMX开发环境介绍214.2.2 MDK软件开发环境224.2.3 光照强度传感器BHV1750程序设计234.2.4 DHT11温度湿度传感器程序设计234.2.5 NRF24L01无线发射模块程序设计244.2.6 TFTLCD程序设计25第五章 硬件测试265.1 手持设备信息显示测试275.2 上位机软件测试275.3 WEB控制系统测试28结束语28致谢28参考文献29附录30附录1 智能家居控制系统原理图:30附录2 智能家居控制系统PCB图:31第一章
7、绪论 家庭居住是人们最基本的生活条件,一个舒适、高效、安全的居住环境会极大的提高人们的生活质量。一般家庭条件下,家用电器虽然使用方便,但是要控制起来却比较繁琐,缺乏集中管理,也缺乏智能控制。最近几年物联网的发展,可穿带设备的流行,使人们的生活方式、居家思维发生了一些转变,人们对家居生活的质量要求越来越高。最近市场上也出现了一些智能化的家用设备,如智能电视、无线温度检测等。将智能化这个概念引入到家庭生活,不仅是要使家居生活智能化,网络化,自动化,还要,达到节约资源,提高生活效率的目标。本着这样的思想,智能家居控制系统开始一点点的形成了。智能家居控制系统的基本功能如下:家电统一管理:通过一个控制平
8、台,如手持设备,电脑等可以对所有的家用电器进行控制;环境监测:通过传感器实时监测环境的温度、湿度、光照强度等信息;自动控制:检测到周围光照强度变化是能自动调节灯光,根据温度、湿度信息自动控制空调的开关,达到节能的目的;报警:当检测到可燃气体浓度达到可引起危害的浓度时,家中无人值守又检测到有外来人员入侵时发出警报,并以短信形式通知户主;远程控制:可以通过网络对该系统进行控制;1.1 智能家居的发展背景世界上第一座智能建筑是位于美国康涅狄格州哈特佛市的CityBuilding,是美国联合科技公司1984年的作品。该建筑体现了建筑设备信息化,整合化概念。从此以后便拉开了全世界争相建造智能家居的序幕。
9、1.2 国外发展状况首栋智能建筑出现后,智能家居的方案在西方多了起来,智能家居开始在经济发达的地区广发应用。1998年5月,新加坡发布了新加坡模式的家庭智能化系统。这套系统功能完善,具有抄表、安防、对讲、监控、智能控制等功能。国外电子技术较为发达,智能家居控制系统产品也较为成熟,主要产品有美国的X-10系统、德国的EBI系统、西家破的X8系统,但是由于国外的生活环境和生活理念与国内人民不同,并且其灵活性和可选择性有局限,不适合我国应用。1. 国内发展状况智能家居在中国发展较晚,主要经历了四个阶段:萌芽期(1994年-1999年):概念熟悉,但没有专业的智能家居的生产厂商,主要代理国外的产品从事
10、零售业务。开创期(2000年-2005年):国内智能家居企业逐渐发展、完善,国内企业逐渐占据国内市场。徘徊期(2006年-2010年):由于市场的不良生长和恶性竞争导致智能家居行业造成了很多的负面影响,一些厂家夸大产品点的功能、厂商只顾营销而忽略了技术培训和研发,导致产品不稳定,用户投诉率过高,用户和媒体开始对该行业持怀疑态度。大约有20多家企业退出智能家居行业。融合演变期(2011年-2020年):由于房地产受调控,智能家居行业有增长的势头。随着物联网的额发展,可穿戴设备的流行,智能家居行业的技术性难题也随之攻克。就目前市场来看,大多数企业提供的是整栋楼房的智能家居解决方案,而面向个人家庭的
11、智能家居解决方案也开始展露头脚。1. 智能家居的发展展望结合现在非常成熟的互联网技术,物联网技术,智能家居的发展方向将会由以下几点:网络化。现在人们的生活已经与网络密不可分,人们通过智能手机链接到互联网获取信息。无论是短距离无线,还是移动网络、互联网等传输方式,智能家居的网络化是必然的。模块化。模块化设计师智能家居控制系统变得更加灵活,方便日后的维护。标准化。当市场智能家居控制系统标准统一后,不同厂家的产品兼容性可以大大增强,丰富系统功能。人性化。智能家居控制系统的目的就是让人们的日常生活更加的方便、舒适、快捷、高效。绿色化。智能家居控制系统原则上应当做到节能、环保。 1. 课题的研究内容及安
12、排本课题设计的智能家居控制系统主要面向一般家庭用户,使用户对设备的控制精良的简单,灵活,同时达到节能的效果,为用户创造一个安全舒适,高效的生活环境。本文第一章绪论主要介绍智能家居行业的发展背景和情况;第二章主要介绍系统的总体设计方案,各种技术及其原理;第三章对硬件设计进行分析,第四章介绍软件的开发环境及各种软件的开发流程;第五章进行系统的测试;第六章进行总结。第二章 智能家居控制系统的总体设计2.1 系统总体描述控制系统以意法半导体公司的32位的嵌入式控制芯片作为主控芯片,外接温度/湿度传感器、红外热释电传感器、烟雾传感器来对家居环境进行检测,主控芯片接收数据并进行分析处理,若有警报事件发生,
13、主控芯片便通过GSM模块TC35发送相关信息到用户手机上,通知用户。数据通过2.4G方式发射,接收端接收到数据后传输给STM8单片机,单片机处理数据后通过串口传给上位机。Labview开发的上位机收到数据后进行处理、显示。利用Labview的WEB发布功能,用户可以通过互联网对该系统进行控制。用户也可以通过上位机对该系统进行控制。本系统模块图如图 1所示。图 1 智能家居控制系统模块图 上位机USB转串口STM8微控制器NRF24L01NRF24L01红外传感器烟雾传感器光强传感器湿度传感器温度传感器RS232STM32微控制器家电控制模块电灯空调洗衣机加湿器电视GSM图智能家居控制系统模块图
14、2.2系统的结构体系本智能家居控制系统的结构体系有下位机、上位机和通讯模块三部分组成。上位机运行于用户计算机上,基于Labview开发,需要NI-VISA驱动支持。本上位机软件通过串口与用户设备进行通讯,将采集到的数据实时显示到软件界面上,并提供数据警报和一些简单的控制功能。 下位机是用户设备,负责信息的采集、设备的控制、信息的收发等。该部分是本设计最为核心的部分,采用了32位单片机作为主控芯片,并配合各种传感器进行协同工作。通讯部分包括2.4GHz无线通讯,GSM无线通讯、WEB远程控制三个部分。其中2.4GHz模块使用NRF24L01,主要用于单片机和上位机接收端单片机进行通讯;GSM模块
15、使用TC35,用与单片机和用户手机之间进行通讯;WEB端基于Labview,用于实现用户的远程控制。2.3 系统的主要功能 本智能家居控制系统设计主要对家庭的信息进行采集,然后以无线形式传送数据到PC端控制器,PC端控制器通过串口将采集的信息发送给上位机。系统的主要功能如下:(1)温度和湿度的检测功能:检测室内温湿度信息,当温度或适度不合适时自动打开空调或加湿器。(2)烟雾报警功能:利用烟雾传感器检测室内可燃气体浓度,当浓度超过警报值时发出报警。(3)入侵检测功能:当无人看守且发现指定区域有可疑红外光时发出警报。(4)光照强度检测:根据光照强度自动调节灯光亮度。(5)远程控制功能:通过GSM实
16、现发送室内状态到用户手机,用户也可以通过手机对室内硬件进行控制。(6)WEB远程控制:通过网络浏览器对家居信息进行监控。第三章智能家居控制系统的硬件设计.智能家居控制系统的主控芯片 8位单片机价格便宜,供货稳定,不同厂家的产品兼容性较好,但是8位单片机功能单一,功耗较大,速度越来越不适应现在的各种信号处理;32位单片机功能强大,功耗低,相关的数据资料也非常丰富,对于开发和后期的维护都非常的方便。现在的一部分中高端32位单片机已经具备了基本的数字信号处理的功能,所以本次设计选择使用32位单片机作为主控芯片。本智能家居控制系统的主控芯片为基于ARM CROTEX-M3架构的32位单片机STM32F
17、103ZET6。该芯片具有以下特点:基于ARM32位的CROTEX-M3 CPU;最高72MHz的工作频率;单周期乘法和硬件除法;512KROM,64KRAM,可驱动SRAM、NAND FLASH、NOR FLASH,并行LCD接口。有睡眠、停机、待机模式,有高速内部晶振和低俗内部晶振。本设计采用220V交流电进行供电。由于主控芯片和一些传感器的标准工作电压在5V和3.3V左右,所以需要对220V电源进行转换。本设计使用一个变压器完成降压工作,将220V交流电降为12V交流电,然后经过桥式整流电路进行整流,用一个50uf的电容进行滤波,使用1N4733稳压得到5V电压。本设计使用ASM1117
18、-3.3来完成5V转3.3V 电压的工作。ASM1117-3.3输入电压5V,输出电压3.3V,可驱动低于1A的负载,足以驱动本设计的各种电子器件。该芯片稳定工作温度在-65-150,所以无需散热即可满足设计要求。本设计供电电路如图 2所示。图 2 智能家居控制系统的供电电路电子产品工作是容易受周围环境的干扰,在出现受到干扰工作不稳定的情况的时候,需要通过复位来实现系统的重新运行。通过参考ST公司的官方数据手册,采用按键的方式进行系统的复位设计。通过对RESET引脚输入一个足够宽的下降沿脉冲,系统将重新开始运行。本系统复位电路如图 3所示。图 3 主控单片机的复位电路IO口资源的分配:STM3
19、2F103ZET6共有144个引脚,7组通用输入输出端口,出去一些用作特殊功能的IO口外,有70多个引脚可以供我们自由使用。为了软件上设计的方便,可以将使用各种通讯协议的传感器与单片机对应的引脚相联。NRF24L01使用SPI协议进行数据传输,可以将其连接到单片机的SPI2口上;BH1750使用IIC总线协议进行数据传输,可以将其连接到单片机的IIC接口上。但是由于ST公司设计的IIC接口控制过于复杂,低速率、中断低优先级情况下Bug较多,所以现使用软件模拟IIC与BH1750进行通讯;红外热释电传感器与烟雾报警器以高低电平来指示工作的状态,所以可以使用普通IO口与其直接相连。LCD接口使用8
20、086通讯的标准,与FMSC控制SRAM的方式非常类似,所以可以LCD的16位数据线连接到FMSC相应的接口上。.串行通讯电路设计: 串行通讯是应用的比较广泛的一种通讯协议,不管是8位的单片机还是32位的单片机,或者是DSP都有串行通讯接口。串行通讯具有接线少,协议简单,使用广泛的特点。由于现在的计算机大多数都已取消串口,而以USB2.0接口替代,所以本设计用USB转串口TTL电路使单片机与计算机之间进行通讯。 CH340一款USB转串口芯片,电脑上安装好驱动后,计算机便可以识别出该芯片并分配一个串口。 CH340外围器件只需要晶体和电容,支持本设计采用的3.3V电压源,成本低,兼容性强。该芯
21、片可以工作在全双工模式下,也可工作与异步模式下,而且内部具有数据存储器作为缓冲区,可以用常用的波特率与单片机通讯。;支持多种类型的数据位,支持奇偶校验位,空白、标志、以及无校验位。图 4 转串口电路当我们使用CH340T与单片机进行通讯时,我们只需要提供芯片的工作电源,晶振和一些电容即可。芯片内部已经接有USB上拉电阻,无需外接。参考官方的数据手册,芯片所需外部晶振为12MHz,两个对地小电容的容量应为20p。在电源线和地线之间应连接一个0.1uf的电容来抵抗电源波动,提高芯片的稳定性。CH340T的串口数据输入端、串口数据输出端应直接连到单片机的串口的发送与接收端。该芯片外围电路如图 4所示
22、。.温度湿度传感器的硬件设计温度与湿度的采集有多种方式,根据其信号的输出方式可分为模拟类和数字累两块。模拟类的采集原件常见的有电阻式温湿度传感器,这类的传感器原件一般用于工业设备的自动控制,通过配合一些模拟电路来实现自动控制的效果,易受周围的环境干扰,不适合用来做显示方面;而数字式传感器将要采集的信息直接转换为数字信号,通过特定的协议与单片机或数字信号处理器进行通讯,处理器可以非常方便的使用这些信号进行处理、显示。对于家庭温度和湿度的采集,精度要求不高,实时性要求也不强,所以可以选取一般的、性价比较高的原件来进行温度和湿度的测量。DHT11数字温度湿度传感器是一款复合温度和湿度的传感器原件,每
23、个DHT11出厂前都在极为精确的温湿度校验室中进行校准,校准参数保存在芯片内部的存储芯片上,传感器在检测信号时会调用这些参数,以确保传感器的高度可靠性和长期稳定性。该芯片测量湿度范围在20%-90%,温度范围0-50,足以满足家庭测温的需要。该器件单价4.5人民币,性价比非常高,所以本次设计采用DHT11来采集温度与湿度信息。DHT11只需要一根数据线便可以和单片机进行通讯。一次通讯获得5字节的数据,2字节的温度数据2字节的适度数据。若前4字节的和的最后8位与校验和相等,则数据正确;若不相等,则应舍弃本次读数。DHT11与单片机的连接如图 5所示。图 5 DHT11与单片机接口.光照强度传感器
24、的设计本次设计使用BH1750来检测室内的光照强度,单片机获取到光照强度数据后进行处理,通过PWM波驱动可控硅来控制LED灯的发光强度。BH1750FVI是光照强度传感器的集成电路,使用IIC协议与单片机进行通讯,可探测的光照强度的范围为1lx-65535lx。无需其他外部器件,它可与单片机直接拿进行连接。该芯片对光源的依赖性弱,可检测白炽灯、荧光灯、白光LED和日光灯等。该芯片工作于2.4V-3.6V电源电压下,工作温度-40-80,受红外光影响较小,适合家庭环境下光照强度的采集。BH1750FVI进行光照转化的框图如图 6所示:图 6 BH1750内部结构图当外界的光照强度改变时,接近人眼
25、反应的光敏二极管PD的电流也随之改变,运算放大器AMP将流经光敏二极管的电流转换为电压,然后将该电压进行模数转换并获取16位数字数据,通过IIC接口电路将这16位数据发送出去。BH1750HVI的测量方式分为单次测量和连续测量两种,可以通过写入相应的控制命令来进行控制。本设计使用的是单次测量的模式。该芯片还可以设置不同的测量分辨率,但是需要注意的是,不同分辨率下芯片的测量时间又有所不同,在测量的时候一定要等待足够的时间,以免读出错误数据。单片机读取到光照强度据后进行处理,然后设置不同的PWM波的占空比,来让灯光稳定在一定能的范围内。.火险预警模块现在家庭中广泛使用液化石油气和天然气,这些气体发
26、生泄露时往往不宜被人觉察,碰到明火或静电引起的火花时便容易引起爆炸,发生火灾;即使没有发生火灾,这些气体也容易使人中毒,陷入昏迷状态。MQ-2气体传感器可以对家庭生活中的多种可燃气体进行检测,其原理是根据其气敏材料的导电率在不同浓度的可燃气体下变化。通过模数转化,可以得到可燃气体浓度。表1 标准工作条件符号参数名称技术条件 Vc 回路电压24V VH加热电压5.0V0.2V RL负载电阻可调 RH加热电阻313 PH加热功耗900mW敏感体功耗(Ps)的计算: Ps=Vc2Rs/(Rs+RL)2传感器电阻(Rs)的计算: Rs=(Vc/VRL-1)RL本次设计主要注重于报警功能,当室内可燃气体
27、浓度达到一定值时,直接发出警报即可,可用以下电路实现。如图 7所示,MQ-2的第4引脚输出模拟信号到运算放大器的反相输入端,通过调节RP的阻值可以调节运算放大器同相输入端的电压,当MQ-2输出的模拟信号电压大于运算放大器的同相端输出电压时,该模块便输出低电平,LED灯亮,MCU检测到低电平后向上位机发出报警信号。图 7 烟雾传感器报警电路.入侵警告模块 当无人在家而又有其他人员进入房间时,系统需要能发出警报,并以短信形式通知户主。本次设计选用对人体红外光较为敏感的红外热释电传感器进行信息采集,在系统开启入侵检测的情况下,当传感器感应到有人时,向主控单片机发出信号,单片机收到信号以后驱动蜂鸣器报
28、警,并通过GSM模块发送报警短信到指定的手机号码。本设计采用BIS0001这款专门处理传感器信号的集成电路芯片来处理红外热释电传感器信号。BIS0001内部框图如图 8所示:图 8 BIS0001内部框图从芯片的内部框图可以看到,BIS0001是有比较器,运放,状态控制器和封锁定时器,定时器构成的数模混合的集成电路。VC的值决定了芯片是否进入延时周期 。A端为可重复触发和不可重复触发的选择端。本次设计的入侵警报系统使用的是该芯片的可重复触发方式,所以将A端接高电平即可。电路原理图如图11所示。红外热释电传感器的信号经过运放放大和再经过鉴幅器处理,当检测到有效触发信号是,Vs启动延时时间定时器,
29、由第二引脚输出有效信号。JP1与1端联通时工作于可重复触发状态。电位器RL2可以用来调节运算放大器的增益,电位器RT1用来调节触发封锁时间,值为:Ti=24*RT1*CY1;输出延迟时间有R33和CY2共同决定,值为:Tx=24576*R33*CY2;本红外热释电报警电路如图 9所示。当有人在红外热释电传感器模块的检测范围时,立刻触发该模块持续输出高电平,当红外信号消失后,该高电平持续一段时间后变为低电平。该电路设计使BIS0001工作在可重复触发的模式下。图 9 红外热释电电路.GSM模块设计与应用现在GSM技术已经非常成熟,在远程监控、移动电话、POS机等移动领域都能见到它的应用。TC35
30、是西门子公司的一款GSM模块,支持短信的收发,语音和传真的发送和收受。具有音频接口,并通过RS232接口提供控制功能。GSM模块与单片机接口电路如图 10所示。单片机只需用一组串口与之相连,通过发送简单的AT指令便可以实现短信的收发。图 10 GSM与单片机接口对于AT指令,现对本设计中使用到的几条作简单介绍(1)AT:用于检测TC35模块是否就绪。若该模块就绪,则该模块收到指令后应答“OK”;(2)AT+ISP=XXXX:设置单片机与该模块通讯的波特率,默认是9600;(3)AT+CMGF=1:设置GSM模块的短信模块为TEXT模式,在该模式下只可发送英文,但是无需编码;(4)AT+CMGS
31、=“13569400193”:设置短信接收号码为13569400193,若GSM模块工作正常,则该模块应答“”;确认模块得到应答之后,则可输入短信内容。(5)1A:短信结束符,必须以十六进制方式发送。模块接收到结束符后,把短信发送到指定号码。.2.4G无线通讯模块为了使智能家居控制系统布线方便,现使用NRF24L01模块进行下位机和上位机之间的数据传输。NRF24L01是挪威设计的一款工作于2.4GHz频段下的短距离无线收发芯片。该芯片有五个通道,支持一对多通讯,具有自动应答功能。该芯片一次可以发送最大32个字节的数据。该芯片使用SPI通讯协议与单片机进行通讯,只需通过单片机配置该芯片的相关寄
32、存器,便能实现无线发送与接收。该芯片与单片机的接口电路如图 11。图 11 NRF24L01与单片机接口使用该芯片进行数据发送时,需要按一下步骤对芯片进行初始化:(1)写发送的节点地址;(2)写发送端的节点地址;(3)使能芯片的自动应答功能;(4)配置芯片的自动重发次数;(5)设置芯片的通信频率;(6)配置发射参数;(7)配置接收通道0有效数据宽度;(8)切换芯片的工作模式;图 12 NRF24L01模块原理图初始化完成之后,将制定数据写入到发送缓冲器中,拉高CE,芯片将进行数据的发送。将该模块配置为接受模式的初始化过程:(1)写接收端的节点地址;(2)写发送端的节点地址;(3)使能芯片的自动
33、应答功能;(4)配置芯片的自动重发次数;(5)设置芯片的通信频率;(6)配置发射参数;(7)配置接收通道0有效数据宽度;(8)切换芯片的工作模式;配置完成后,芯片将工作在接受模式下。一旦捕获到有效的数据包,芯片的中断输出引脚输出低电平,单片机检测到低电平后读状态寄存器的值,判断是否接收到有效数据,若接收到数据,则读出接收到的数据。第四章 软件开发4.1 LabVIEW上位机软件设计LabVIEW是美国国家仪器公司开发一款图形化编程软件。LabVIEW容易上手,有C基础的人员只需学习几个相关的例程,便可以快速的进行简单的软件开发。软件内置丰富的图形控件,包括多种多样的数学函数,并且支持多种操作系
34、统,实时操作系统和嵌入式设备。串口是现在大部分MCU都具有的硬件功能,串行口的使用也比较方便,只需要设置好数据长度,波特率,等相关参数两个硬件设备便能进行通讯。在此设计中使用串行口将数据发送到上位机,LabVIEW接收到串口发来的数据后进行分析处理,显示。4.1.1 LabVIEW基本控件介绍LabVIWE有丰富的图形控件和函数,可以满足程序开发人员的基本需要。下面对本设计所用到的部分控件作简要介绍。LabVIWE布尔控件主要用来输出和显示布尔值。控件外形见图 13。按钮、开关类控件只有在外形上有所不同,功能上都是一致的,用于输出“T(1)”或“F(0)”,该类控件在程序图中只有一个输出端;指
35、示灯类控件用于指示所连接数据的布尔值,该类控件在程序图中只有一个输入端。图 13 布尔控件LabVIWE的数值输入控件用来输入指定精度的数值。该类控件在前面板上有一个输入框或滑块,用来调整数值大小,在程序框图里面只有一个输出端,由于输出指定的数值,如图 14所示。图 14 数值控件LabVIEW的字符串控件包括字符串显示控件、字符串输入控件、文件路径控件等,如图 15所示。本设计主要用了字符串输出与显示两类控件。字符串输入控件用于用户输如字符串,字符串显示控件则用于显示指定的字符串。图 15 字符串控件LabVIEW的数组、矩阵和簇控件用于创建新的数组、矩阵、簇,如图 16所示。本设计中主要使
36、用了数组控件。使用数组控件可以方便的创建某一数据类型的一维或多维数组,配合程序上提供的多种数据处理函数,以及丰富多彩的显示控件,可以方便的开发出功能强大的应用程序。 图 16 数组控件4.1.2 LabVIEW的基本函数介绍LabVIEW虽然编程上没有像使用高级语言那么灵活,但是其丰富的函数足以满足自动控制需要。更重要的是,LabVIEW提供了多种硬件的驱动程序,比如GPIB、以太网、串口等,有了这些驱动程序,我们便可以通过图形化程序控制这些硬件。但是无论是图形化编程还是高级语言编程,都必须了解硬件的参数。下面对本设计中使用的函数作简要介绍。编程结构函数:和C语言一样,LabVIEW中也有循环
37、结构、条件结构、顺序结构等、甚至还有延时函数如图 17所示。其用法和C语言基本上保持一致,For循环框内有两个重要参数i和n,当i等于0事终止循环,n为循环计数;While循环中有一个重要参数,即While循环框内的红点。通过控制与该点相连的值的真假来决定循环是否进行。图 17 编程结构函数 数组函数:数组函数用于处理数组和矩阵数据,功能包括数组的拆分、替换、索引、大小等,以及矩阵的转制、矩阵与数组之间的转化、数组与簇之间的转化等,如图 18所示。本设计中使用了多个数组函数,用于处理传感器的数据以及上位机发送控制数据。图 18 数组函数数值函数:数值函数用于数据的处理,功能包括基本的加、减、乘
38、、除,编程常用的自加、自减运算,还有一些去整、平方函数,数据转换和数据操作函数,如图 19所示。图 19 数值函数布尔函数:布尔类型的数据在编程中有着重要的地位,它经常被用来指示一个状态或用来控制开关量。本设计中大量的使用了布尔控件,也用到了一些布尔函数。对于不同功能的函数其输入端的个数也不同。编程时只需要将需要处理的数据连接至相应的输入端,输出端便会输出指定类型的结果。利用输出端输出的结VISA串口函数:VISA串口函数用于控制串口。本设计使用了串口作为单片机与上位机的通讯接口,所以该串口函数在本次上位机程序中有着重要的作用。串口函数主要有以下几个,如图 20所示:图 20 VISA函数VI
39、SA配置串口:用于配置串口的波特率、数据长度、停止位、奇偶校验、流控制等。该部分设置需要与单片机的串口设置保持一致。VISA写入串口缓冲区:将制定的数据写入串口缓冲区。写入完成后,串口将发送写入的数据。VISA读取串口缓冲区:读取串口接收到的数据。VISA关闭串口:释放串口资源。当应用程序结束时需要调用这个函数,否则会造成计算机串口工作不正常。4.1.2 LabVIEW程序设计本上位机程序设计依托于串口通信,上位机验证口令后监视串口缓冲区数据,接收到数据后按照流程对数据进行处理、显示。当上位机发送控制命令时,开始运行登陆?等待输入用户口令口令正确?收到数据?等待处理显示发送命令?写串口数据关闭
40、串口初始化串口是否是否否是是否否是程序便向串口缓冲区写入指定的数据发给单片机。程序工作流程如图 21所示: 图 21 上位机工作流程图 (1)登陆系统:利用输入控件,比较控件与显示对话框控件来实现用户输入的用户名和密码的验证,若输入错误则不可以获取家居信息并进行控制,并在屏幕上显示;若正确则可以获取家居信息并进行控制;点击“退出”按钮则退出智能家居控制系统,程序图如图 22所示。图 22 登陆系统程序图(2)初始化串口::利用labview控件选项卡中的VISA资源名控件来制定进行通讯的串口号,利用函数选项卡中的仪器IO/VISA配置串口函数来设置串口的波特率、数据比特、奇偶校验、停止位和流控
41、制。这些数据需要和发送数据的硬件设置保持一致。程序图如图 23所示。图 23 初始化串口和弹出式对话框 图 24 判断是否收到数据程序图 (3)接收数据:判断串口缓冲区数据是否为零,若不为零则表示接收到数据。程序图如图 24所示。图 25 数据处理 (4)数据处理:对串口缓冲区的数据进行判断,分析,得到各个传感器的数据,然后进行数据转换,显示到前面板上;若数值超过报警值则显示报警信息。程序图如图 25所示。(5)串口关闭:数据处理完成,关闭串口,减少资源的占用; (6)控制系统:点击布尔型控件按钮,写入指定数据到串口缓冲区,串口发送数据;程序图如图 26所示。4.1.3 前面板设计利用labv
42、iew自定义控件的功能可以制作出很多漂亮的控件。同时,该软件还内置了多种前面板修饰工具,我们可以很方便的在前面板上设置背景,放置字体。以美化一个按钮为例:右键单击前面板空白区域,选择:新式-布尔-按钮开关,将此按钮放置到前面板;图 26 写控制命令到串口右键单击该按钮,选择“制作自定义类型”,再次右键单击该按钮,选择“制作自定义类型”,弹出一个单独的编辑窗口;单击“切换至自定义模式”,将按钮的各状态的图标用自己制作好的图标替换,保存;这样,一个自定义的按钮便完成了。如图 27所示。图 27 自定义的布尔开关和布尔指示灯前面板设计完成后的界面如图 28所示。图 28 软件完成界面4.1.5 WE
43、B发布设置Labview中已经集成了一个连接好的web服务器,利用这个功能,我们可以快速的时已经完成的项目链接到互联网上。利用Labview的web发布工具生成的网页视图与前面板样式保持一致,控制方式也与软件的控制方式相同。利用Labview发布web服务需要以下几个步骤:()单击工具web发布工具,打开相关设置的对话框;()选择已经编写好的VI项目,设置web查看方式,单击“下一步”;()输入网页标题,单击“完成”,软件将生成一个用于内网的网址;这样,我们就可以通过web方式来控制这个系统了。4.2 嵌入式系统开软件开发4.2.1 STM32CubeMX开发环境介绍STM32CubeMX是意
44、法半导体公司开发的一款可视化编程软件,该软件提供了非常直接的硬件配置方式,使使用者只通过鼠标的操作即可完成芯片的所有的硬件初始化设置。该软件支持意法半导体公司的所有基于ARM的32位处理器。该软件主要包括四个部分,如图 29所示。图 29 STM32CubeMX的四部分配置GPIO功能的配置:单击相应的芯片的管脚,在弹出的下拉菜单里选择对应的模式,如图 30所示。图 30 STM32CubeMX的GPIO配置时钟配置:选择系统的时钟源,配置系统各个硬件模块的时钟来源,选择倍频器和分频器的分频系数,可以直接的观测到各个硬件模块的工作频率,如图 31所示。系统配置:配置芯片的各种硬件功能如IIC、
45、SPI、TIM等功能是否开启;配置系统中断及硬件功能寄存器相关参数;电源设置:配置单片机的电源模式;选择单片机外置电源的类型;设置单片机在不同模式下时钟的频率、唤醒方式。 在所有的外设配置完成后,点击“生成用户指定的程序按钮”,便可以在指定目录生成MDK或IAR的工程文件。要注意的一点是,生成的工程文件所依赖的库文件是意法半导体公司提供的HAL(硬件抽象层)库,该库文件与以往的标准库文件有较大不同,而且意法半导体公司也已经停止了标准库的更新。图 31 利用STM32CubeMX配置时钟4.2.2 MDK软件开发环境目前支持ARM CORTEX芯片的开发环境较多,其中MDK-ARM和IAR FO
46、R ARM使用的人群较为广泛。MDK-ARM是国内开发ARM芯片的主流软件,而IAR FOR ARM是瑞典的一家公司开发,被国外的广大工程师广泛使用。本设计使用MDK-ARM作为嵌入式系统的开发环境。MDK可以编译、软硬件仿真工程,支持众多的ARM器件。系统上电或复位后,嵌入式控制器首先进行初始化工作:初始化系统时钟、设置堆栈地址、初始化中断向量表、初始化GPIO管脚等,然后根据主程序对一些外设进行初始化操作,如串口、SPI、定时器、IIC等。初始化工作完成以后,微控制器便据主程序去驱动外设进行工作。为了使单片机能够稳定、搞笑的运行,程序设计本着一下的原则:可读性:函数名称、数组名称、各个文件名称要与实际功能相对应,按照统一规则进行命名;便于调试:程序中在容易出错的地方加入有提示功能的代码,如利用串口输出数据、设置指示变量等;可维护性:程序中有详细的注释说明程序的功能,所占用的资源;模块化:用来驱动不同硬件的函数进行独立封装成一个文件,这样也提高的程序的可移植性;4.2.3 光照强度传感器BHV1750程序设计BH1750使用IIC总线协议进行通讯。IIC协议的通讯过程为主机先发送启动信号,然后紧跟着发送地址信号+读写控制位信号,然后从机应答,主机和从机开始进行数据通讯。数据通讯完成后,主机发