基于单片机的智能窗帘自动控制系统设计*
2021-08-23李宏达
王 冰,李宏达
(沈阳理工大学 装备工程学院,辽宁 沈阳110159)
在21世纪的今天,国家繁荣昌盛,因此在人们的生活中智能家居系统的应用也越发普遍。目前,对于智能窗帘来说,绝大多数的家庭里在用的都是利用扣环钢丝来悬挂的手动式窗帘,只有极少数的家庭里用的是智能化的电动控制式窗帘。其主要原因还是相较于传统的手动窗帘来说,智能窗帘的价格可以说是相当昂贵,人们会认为手动也不会耽误太多时间,而且智能窗帘在目前的情况来说,还不能达到人们所需求的智能化,因此不会在人们的生活中得到普及。也正是因为如此,智能窗帘在人们的生活当中才具有更大的发展空间。所以,如果想提高智能窗帘的普及度,就需要我们研制出功能模块全、智能化水平高、造价成本低并且适用于所有家庭的智能自动控制窗帘。
对于智能窗帘的控制方式来说,可以大致分为光照控制、时钟控制、声音控制、红外遥控。但是在我们的日常生活中,声控往往会受到噪音的影响而难以实施。因此,在智能窗帘设计当中不会应用声音控制。如果设计一款价格便宜、结构清晰、灵敏度高,并结合遥控控制、时间控制、光感控制的智能窗帘系统将会具有较好的发展前景,智能窗帘的存在也可以给我们的生活带来更多便捷。
基于单片机的智能窗帘控制系统就是以单片机为核心,充分利用了它功能强、成本低、消耗低、可靠性强等特点,从而达到我们对智能窗帘功能的要求。当然也正因单片机的这些优良特性,才能够使它更加广泛地应用到工业生成控制、智能家用电器以及相关医疗机械器件等各个领域。
1 系统整体方案
系统整体方案可实现以下模块控制功能:红外控制模块、智能光控模块、步进电机模块、时钟电路模块、报警电路模块、按键电路模块以及显示电路模块等。该设计功能如下:
遥控控制功能:该功能使智能窗帘具有正转和反转的功能,用户可以通过遥控器对窗帘的开合进行控制。在需要拉开或闭合窗帘的时候,只需要人工按一下加号按键或减号按键后,窗帘就会自动拉开或闭合,通过设定的圈数,窗帘将会自动停止,避免了手动的麻烦。
光控调节功能:当用户无暇顾及窗帘的开合程度时可以调制到光控调节功能,通过外界环境、光线的亮度就可以使智能窗帘自动完成拉开或闭合的控制动作。白天期间“,天暗拉开、天亮闭合”单片机会自动获取信息调节室内光照强度。
定时控制功能:通过时钟电路模块,人们可以自行任意地设定时间范围。若在定时范围内,智能窗帘会受到光控的控制,即根据光照强度控制窗帘的拉开或闭合。但若在晚上这段时间区域内,窗帘不会受到外界的干扰,只在规定的时间拉开或闭合窗帘,而对于定时晚上这段时间,窗帘则始终是闭合的状态。
本设计介绍是以单片机为控制核心的智能窗帘系统设计,它采用了红外遥控技术,只要轻按遥控器,智能窗帘就会自行地拉开或闭合。除了这些功能以外,还在智能窗帘上安装了报警系统,通过人的设定,当屋内没人并且窗户被强行打开时,会使光电对射管的光线受到阻断而引起蜂鸣器报警。
本系统是基于单片机的智能窗帘自动控制系统。该系统以红外控制、光控控制以及定时控制实现了智能窗帘的拉开和闭合。利用单片机的红外控制电路,通过红外发射口和红外接收器来实现发射和接收信号功能,并借助单片机的定时系统对窗帘的闭合进行控制,以及利用光敏电阻实现光控等功能来实现人们对智能窗帘的需求。
2 硬件系统组成
智能窗帘是以单片机为控制核心芯片,利用各种模块,从而实现智能窗帘的各种功能。此次基于单片机的智能窗帘自动控制系统设计具有红外控制、光控、定时控制等功能,因此使用这些具有各项功能的模块达到相对应的功能。硬件系统的基本框图如图1所示。
图1 硬件系统的基本框图
该系统所选择的核心是单片机STC89C52,将它作为主控制芯片,再外加键盘电路、液晶显示电路、红外收发电路、报警电路、时钟电路、智能光控电路、A/D转换电路以及步进电机驱动电路等相关外围电路模块组成的基于单片机的智能窗帘自动控制系统。实际上,实现智能窗帘完成拉开和闭合动作的主要受控对象是步进电机,是步进电机带动转轴才完成智能窗帘拉开和闭合的动作。在智能窗帘的遥控方面,是通过红外遥控器发出红外信号传送到单片机连接的红外接收装置来控制步进电机的正转和反转动作,也就是实现智能窗帘的拉开和闭合。除了这些,通过主板上的按键电路还能够控制智能窗帘开合的速度以及设定步进电机旋转圈数。同时,根据用户需求,通过按键电路可以自行设定相应模式。在定时模式下,时钟控制与光控功能可以兼容完成,设定时间受时钟电路控制,其余时间受光控功能控制。对于光控功能,通过光敏电阻感光功能,也可实现智能窗帘因感光而自动开合的功能。对于显示模块主要显示智能窗帘的所处模式、智能窗帘的开合速度等级、步进电机所转圈数以及智能窗帘所处状态。
选择使用单片机STC89C52作为驱动是因为它具有高速、低功耗、高性能、超强抗干扰能力等特点,且为CMOS 8位微控制器。STC89C52具有通用接口I/O口,以及四个准双向口上拉接口,分别是P1/P2/P3/P4,其中P0口是漏极开路输出,当作P0口为总线扩展用时,不用加上拉电阻,而当P0口作为I/O口用时,则需加上拉电阻。系统总体硬件原理如图2所示。
图2 系统总体硬件原理图
如图2所示XTCL1和XTCL2接时钟模块的晶振电路,实现定时功能。P10至P13连接步进电机模块的ULN2003,通过ULN2003产生的扭力达到对步进电机的驱动控制作用。P14至P15连接红外控制模块的LED,通过红外信号达到遥控的功能。P0至P7、P25至P27连接显示电路模块的液晶显示器,通过显示屏展现所控制的状态。P22至P23连接智能光控模块的ADC0832,通过AD转换器将信号转换,达到光敏电阻作用。P20连接报警电路模块的光电对射管,通过光电对射管原理使得信号传入蜂鸣器,从而达到报警的作用。P34至P36连接按键电路模块,通过按键达到人机交互功能,实现各个模块的控制。再将电源、复位电路连接,这样智能窗帘大体的结构就完成了,将硬件整合在一起,就组成了本次设计的智能窗帘。
3 智能窗帘软件方案的设计与实现
智能窗帘所控制的主程序主要是实现智能窗帘的拉开和闭合的动作,可以处理由智能光控模块、红外控制模块、时钟电路模块、报警电路模块等反馈回来的数据信息。该系统可分别选择三个模式,使智能窗帘分别处于三种状态,从而实现相应模块的功能,当选中一种模式时,其他模式所对应的模块将被锁死。
第一个模式为定时模式,在此模式下可实现时钟电路模块和智能光控模块的相应功能。此时,可以根据个人时间情况要求不同,自行设定修改定时时间。单片机会根据设定的时间,对智能光控模块产生的信号对步进电机进行控制。当处于定时规定时间时,智能光控模块会对环境状况做出动作。
第二个模式为遥控模式,此模式也是智能窗帘上电后的初始状态,当上电初始时刻需修正初始时间。此模式可实现红外控制模块的相应功能,以及步进电机转速和所转圈数的设定。红外遥控器可发送相应指令给红外接收器,当红外接收器接收到信号,单片机就会根据相应信号做出处理。
第三个模式为报警模式,在该模式下可实现报警电路模块的相应功能。在光电对射管之间的光线受到干扰或阻断时,光电对射管会将信号传输给蜂鸣器,使得蜂鸣器发出鸣响。
单片机是将中央处理器CPU、存储器、定时器、I/O接口电路等主要功能部件集成在一块集成电路芯片上的微型计算机。在整个控制过程中,正是由于主控制芯片单片机内软件程序功能对各个连接的元器件进行控制,才使得各个模块之间的信号能够得到很好管理,从而井然有序地进行信息传递,不会出现信号之间的相互干扰问题,成功完成与人们要求相对应的功能动作。
该设计的系统软件需要通过Keil uVision5软件来把编辑好的程序导入到单片机STC89C52内,然后对智能窗帘进行调试。定时模式程序设计、遥控模式程序设计、报警模式程序设计,这些模式实现了智能窗帘的大体功能作用。除了以上这些模式程序设计,还需要按键模块程序设计、光控模块程序设计等功能模块进行系统整合。
4 系统调试及测试
智能窗帘的硬件测试,首先是对于智能窗帘的受控对象步进电机驱动的测试。这需要先将智能窗帘开关打开,使智能窗帘处于上电状态,再将智能窗帘模式调整到模式2,通过遥控功能来测试硬件步进电机及驱动电路是否正常。智能窗帘还有光控功能,因此要对光敏电阻的感光能力进行测试。在模式1的情况下,调整光照强度观察显示器和步进电机是否有相应的动作。智能窗帘的报警功能,将模式调整为模式3,测试当光电对射管的光线受到阻断时,蜂鸣器是否发出鸣响。
4.1 遥控模式的调试
将按键调制到遥控模式,即模式2。由于该状态为智能窗帘上电的初始状态,所以要根据按键设定当时时间,左侧第一个按键为确定键,第二个按键为减号键,第三个按键为加号键以及对时间换位,第四个按键为模式键。完成时间的设定,再通过模式按键,设定好最佳转速以及步进电机所转圈数。
一切设定完整之后,需要通过红外遥控器对智能窗帘发射信号,从而使步进电机完成相应的动作。红外遥控器有两个按键,分别是加号键和减号键。当按下红外遥控器加号按键时,步进电机正转,窗帘拉开;当按下红外遥控器减号按键时,步进电机反转,窗帘闭合。
本次遥控模块测试进行了2次,分别完成智能窗帘拉开和闭合的动作。测试记录数据如表1。
表1 遥控模块测试
根据测试结果可以看出该系统可实现遥控模式,并且在测试中也检测了对步进电机转速和所转圈数的设定。测试数据表明智能窗帘可以很完美地做到通过红外控制实现对步进电机的控制。遥控步进电机测试、步进电机转速及其所转圈数设定测试如图3所示。
图3 遥控步进电机测试、步进电机转速及其所转圈数设定测试
4.2 定时模式的调试
将智能窗帘的模式调整为模式1,定时模式兼顾时钟模块和光控模块。首先调整时间,将时间设定为所需时间段,确定完成后开始测试。
当时间处于规定设定时间内,窗帘可实现光控控制,通过显示器所显示的光照强度调整光照。当光照强度低于30%时,步进电机正转,窗帘自动拉开;当光照强度高于70%时,步进电机反转,窗帘自动闭合。当时间处于规定设定时间外,窗帘则始终处于闭合的状态,不会受到光照强度影响。
本次测试设定时间段为7:30-19:30,测试记录数据如表2。
表2 定时模块测试
根据测试结果可以看出该系统可实现定时模式,即实现光控模块和时钟模块的功能,测试数据表明智能窗帘可以通过定时和光照控制实现对步进电机的控制。在调试过程中偶尔会出现步进电机动作稍微延迟的现象,是电压电流带动的问题,如果换成大功率充电设备就可以解决这个问题。定时模式测试如图4所示。
图4 定时模式测试
4.3 报警模式的调试
首先将模式调整为模式3,在该模式下为报警模式。此时,假设一纸片为连接窗户的连接设备,先将该纸片伸至光电对射管中间的位置,阻拦住光线,观察蜂鸣器是否发出鸣响,以及在蜂鸣器鸣响的同时,光电对射管上面的指示灯是否有一个处于熄灭状态。报警模式测试如表3。
表3 报警模式测试
根据测试数据,可以观察出智能窗帘报警模式可实现报警功能。报警模式蜂鸣器测试如图5所示。
图5 报警模式蜂鸣器测试
5 结论
对于该设计来说,它的主控制芯片选择的是单片机STC89C52,在拥有主控制芯片的条件下,使智能窗帘拥有遥控、定时、报警三种模式功能,以实现智能窗帘的功能。在遥控方面,它是由红外遥控器以及按键电路完成的,通过它们完成红外信号的传输和接收工作,实现智能窗帘的动作。在定时方面,充分利用单片机自身定时的功能特点完成对智能窗帘的时间把控,这样不仅实现了智能窗帘设计所需功能,还可以节约成本。在报警方面,选择的是光电对射管,相较于其他无线报警器而言,它虽然不能完成短信等信息的传输,但是它可以完成蜂鸣报警,同样会引起人们的注意,更重要的在于该设计大大降低了成本,相较而言,此种报警模式的设计更加适合普通百姓人家。除主要功能设计以外,智能窗帘系统内还包含光敏电阻、键盘和显示器件以完成相关辅助功能,并且在步进电机处还加入了ULN2003,利用ULN2003的驱动力量带动步进电机成功运转完成动作。