APP下载

基于单片机的智能开关窗系统设计研究

2023-11-08

关键词:按键智能家居单片机

王 宾

(漳州职业技术学院 智能制造学院,福建 漳州 363000)

自动控制系统的不断普及,使得智能家居的概念深入人心。智能家居系统利用物联网、无线通信、大数据及人工智能等技术,将大量的新技术应用到日常生活中,给人们的生活带来了很多便利[1]。作为家居智能化的核心部分,智能控制系统的开发和建设是未来发展的必然趋势[2]。但对于普通家庭来说,整体智能家居系统成本相对较高,智能家居的应用还比较少。因此,开发一款针对性较强的智能开关窗系统具有实用价值,并且可与智能家居系统进行对接[3]。

单立军等[4]设计了一种基于STM32 单片机的智能窗控制系统,实现了对窗户的智能化控制并提供了多种功能,但相应的系统设计比较复杂。申赞伟等[5]设计了基于STM32 的智能家居物联网系统,为设计智能家居系统提供了很好的研究思路。梁明远等[6]设计了基于树莓派的智能家居系统,采用JavaScript 设计UI 图形界面,实现了远程控制家居设备。乔宇等[7]在智能家居系统方面也做了大量研究。综上所述,目前对于智能家居系统的研究有较好的基础,很多研究者对此方向做了探究,不过对实际居民窗户应用的介绍相对较少。现有的门窗类型丰富,本文主要针对常见的悬窗的自动开关窗进行研究,如图1所示:

图1 常见的悬窗

对照研究方案的可行性,就控制核心器件单片机和PLC做以下比较分析:

1)单片机系统具有结构简单、控制功能强、可靠性好等优点,广泛应用在工业控制、智能化设备等各个领域;针对单项工程或重复数极少的项目,采用PLC快捷方便,成功率高,可靠性好。

2)在成本价格方面:单片机价格便宜,功能强大;PLC的价格昂贵,体积大,功能扩展需要较多的模块,并且不适合大批量重复生产的产品。

3)在工作性能方面:单片机与其他元器件及软件可以构成各种各样的应用系统,使用范围更广,在数据采集、处理等方面,单片机也具有较好的性能[8]。

综合以上,结合系统研究目标及主要解决民用智能关窗系统的要求,本设计采用单片机作为控制核心部件,可以满足使用要求,且研究成本低。

1 系统总体设计

本文提出的智能开关窗系统总体设计框图如图2所示。

图2 智能开关窗系统

本系统以8051 单片机为控制核心,系统通过温湿度传感器DTH11 检测环境信号,并将其转化为电信号传输到单片机,单片机对检测信号进行判断,当达到开关窗条件时,启动开关窗机制。

系统设计电气原理如图3 所示。本系统采用AT89C51 单片机为控制芯片,其具有可嵌入性、实时控制、灵活选型和容易操控等优点[9]。系统采用LCD1206 显示器将相关数据实时直观地展示出来,并且可以通过按键显示内容,便于根据实际环境设置不同的控制信号阈值。

图3 系统设计电气原理

2 系统硬件设计

2.1 单片机控制框图

系统选用目前比较常用的51 系列8 位单片机,MCS-51 是这一系列单片机的内核代表,其在硬件结构上相似,而且指令系统相互兼容[10]。许多生产公司在8051 的基础上增加相应的性能,这一被称作“增强型51 单片机”的新机型在处理速度方面大大提高,各项功能得到增强,集成的资源也丰富了很多[11-12]。

单片机与外围电路构成硬件控制系统,主要包括复位电路、时钟电路、按键电路、电机驱动电路、指示灯电路、液晶显示电路和温湿度检测电路。控制系统结构如图4所示。

图4 控制系统结构

2.2 温湿度传感器模块

本设计采用温湿度传感器DHT11 检测信号。DHT11 应用专用的数字模块采集技术和温湿度传感技术,在检测外接温度和湿度时具有较好的可靠性和稳定性。该传感器包括1 个电阻式感湿元件和1 个NTC测温元件,采用单线制串行接口,外接只需加适当的上拉电阻,检测电路模块如图5所示。

图5 DHT11 检测电路

实现对DHT11 读取数据的控制时序主要分为3 个部分:触发采集数据、读取数字0 和读取数字1。

1)当总线空闲状态为高电平时,单片机把总线拉低,等待传感器响应。这一过程持续时间必须大于18 ms 才能保证起始信号被传感器电路检测到,随后单片机发出开始信号。DHT11 接收到开始信号后,等待这一开始信号结束,然后发出持续80 μs时长的低电平响应信号,开始信号持续时间结束后,延时等待20~40 μs 切换为输入状态,等待DHT11 的80 μs 低电平信号结束。当单片机检测到DHT11 发出持续80 μs 的高电平信号时,就可以开始采集数据。

2)如果单片机读取到传感器的信号先为50 μs的低电平,之后为26~28 μs 的高电平,那么说明此时DHT11 输出数字是0。

3)如果单片机读取到传感器的信号先为50 μs的低电平,之后为70 μs 的高电平,那么说明此时DHT11 输出数字是1。

根据以上工作情况,单片机控制DHT11 并读取数据是通过时序控制并做出判断实现的。首先触发DHT11 采集数据,然后读取数据并判断0 或1。DHT11 输出数字0 和数字1 的区别在于高电平的持续时间。因此,单片机可在读取到高电平后,通过延时大于等于28 μs(可以设置30 μs)后,根据总线的电平状态来判断数据,高电平为“1”,低电平为“0”。

2.3 按键设置模块

本系统设置了按键模块用于设置控制系统参数,按键设置模块如图6 所示。

图6 按键设置模块

本系统功能按键采用机械弹性开关,在机械触点的弹性作用下,按键在闭合时不容易实现稳定接通,同样在断开过程也会出现不稳定的现象。为了避免此类不稳定的抖动现象对系统产生的不良影响,通常要在系统设计过程中考虑按键消抖措施。

按键的机械特性决定了抖动时间的长短,通常情况下为5~10 ms,对于很多按键控制场合来说,这是一个相当重要的时间参数。另外,操作人员的按键动作决定了按键稳定闭合时间的长短,通常情况下为零点几秒到几秒的时间。对于控制核心来说,正常的控制逻辑为按键闭合一次,控制核心只能判定为一次。因此,需要对按键进行去除键抖动处理。按键消抖有硬件消抖和软件消抖两种方法。

硬件消抖可以采用由两个“与非”门构成的RS触发器来实现,如图7 所示。在RS 触发器的作用下,如果因为按键的机械性能在闭合或者断开瞬间发生抖动,那么只要按键不返回原始状态,输出状态不改变,时钟为0,则不会产生抖动的波形。

图7 按键去抖电路

软件消抖是指通过软件程序实现按键去抖的操作,通常采用的软件消抖方法是延时函数按键消抖,这种方法简单实用。软件消抖程序编写思路:检测出键闭合后,通过延时函数等待5~10 ms(这一时长可以根据具体按键的机械特性进行设定),一般可以执行10 ms 以上的延时,让前沿抖动消失后再一次检测键的状态,如果仍保持闭合状态电平,则确认为真正有键按下;当检测到按键释放后,也要给5~10 ms 的延时,待后沿抖动消失后才能转入该键的处理程序。

根据系统功能,本设计采用软件延时来实现按键消抖,软件去抖流程如图8所示。

图8 软件去抖流程

2.4 开关窗指示模块

开关窗指示电路如图9所示。

图9 开关窗指示电路

单片机P2.4 口用于控制开关窗指示电路,在自动关窗或开窗过程中,P2.4 口输出高电平,驱动NPN 管Q2 导通,从而控制继电器RL1 得电,将开关从常闭触点调整到常开触点,指示灯被点亮。

2.5 电机驱动模块

该设计的电机驱动电路如图10所示。

图10 电机驱动电路

该设计选用L293D 驱动器,其易于控制,无需保护电路和散热器,频率为5 kHz,工作温度范围为0~70 ℃,可用于驱动控制电压在5~36 V 之间、电流高达600 mA的电机。

可以通过以下计算式选择电机功率:

式中,P为计算功率;F为所需拉(推)力;v为工作机速度。

以常见悬窗为计算示例,其中取推力为300 N,运行速度为10 mm/s,则电机功率为

电机驱动设置逻辑如表1所示。

表1 电机驱动设置逻辑

2.6 LCD液晶显示模块

该系统选择LCD1206 液晶显示器,其接口电路如图11 所示。LCD 显示器件功耗很低,在便携式电子产品中得到广泛应用,能够显示的信息类型包括文字、曲线、图形等。对比数码管显示器件,LCD 显示器件在性能上有了很大的提高。LCD 液晶显示器主要类型有笔段型、字符型和图形点阵型。根据项目实施特点,系统主要显示字母、数字、符号等,选用字符液晶显示器可以满足项目显示需求。

图11 液晶显示接口电路

3 系统软件设计

3.1 系统开关窗程序设计

系统开关窗软件设计流程如图12所示。

图12 系统开关窗软件设计流程

系统通过温湿度传感器检测环境信号,根据检测信号进行开关窗控制。如果空气中湿度超过设定值,表明开始有降雨,系统驱动电机转动,关闭窗户,当窗户碰到行程开关时,将信号传输给单片机,然后控制电机停止转动。室内环境温度信号控制的优先级低于湿度信号控制,在空气湿度未达到阈值情况下,如果室内温度超过阈值,启动电机控制开窗,同样通过行程开关控制开窗的极限位置。在开窗或关窗过程中,系统通过指示电路进行警示,防止人员误操作以致被夹伤。

3.2 系统按键程序设计

系统按键设置软件流程如图13 所示。

图13 按键设置流程

按键14 分别接单片机P2.0~P2.3 口,按键1 用于设置显示界面的切换,按键2 用于设置切换设置值,按键3和4用于设置参数阈值的加和减。每触碰一次按键2,参数num值加1(num初始值为0),当num=3时,再触碰一次按键,num值回到0,根据num值的不同设置当前的阈值类型。

3.3 LCD液晶显示软件设计

在进行命令、数据的写入前,要对LCD液晶显示进行读状态操作,判断液晶显示是否为忙状态。LCD液晶显示基础读写流程如图14所示。

图14 LCD液晶显示基础读写流程

通过读LCD内部状态函数,根据返回的状态字最高位的电平情况来判断液晶显示是否为忙,如果最高位为1,表示LCD正在忙;如果为0,则表示非忙。如果LCD一直处于忙状态,那么继续等待,直到进入非忙时才继续写入。查询忙状态的程序如下:

3.4 系统测试

通过系统按键进行阈值设置,如设置湿度上限阈值RH为50,当DHT11模块检测到湿度小于50时,指示灯不亮,电机不启动;当DHT11模块检测到湿度不小于50时,指示灯亮,电机启动。

按键设置界面如图15所示,仿真结果如图16所示,系统实物图及测试数据如图17及表2所示。

表2 测试数据

图15 按键设置界面

图16 仿真运行结果

图17 实物测试

4 结语

本文提出了一种基于单片机智能开关窗系统设计方案,该方案基于温湿度传感器DTH11,以51单片机为控制核心,研究并设计了一种智能开关窗系统。首先系统通过温湿度传感器检测环境信号并转化为电信号,然后将其传输到单片机对检测信号进行判断,最后作出相应的控制。该设计从系统硬件和软件两个方面进行了介绍,对硬件电路各个功能子模块进行了分析,包括温湿度传感器模块、按键设置模块、电机驱动模块和运行指示灯模块,并且根据系统设计要求对软件设计流程进行了分析。

本设计电路结构简单,通过proteus 软件进行仿真验证,并运行软件程序对实际情况进行模拟,具有较好的参考意义。系统设计实用,嵌入性强,可以通过扩展接入端口和传感器模块对系统功能进行增强,可以用于与智能家居系统进行对接。在此基础上,笔者提出以下展望:

1)增加系统配电设计。系统设计没有详细说明供电问题,在目前研究阶段,可以通过家用市电进行降压整流,以提供系统用电需求。如果考虑系统的进阶功能,可以增加太阳能供电,提高系统的可靠性。

2)充分考虑安装配置问题。系统设计对电路结构和软件设计做了阐述,针对不同的居家环境、使用场合,需要考虑系统的安装问题,这一情况要根据现场条件进行调整。

3)长远考虑系统实施情况。智能家居的发展虽然已经有几十年的积累,但是全屋智能家居系统的实现仍然不成熟,各系统模块的设计要考虑今后的发展对接,要从长远角度考虑系统的实用性。

猜你喜欢

按键智能家居单片机
基于有限状态机的按键检测程序设计
基于单片机的SPWM控制逆变器的设计与实现
基于单片机的层次渐变暖灯的研究
基于单片机的便捷式LCF测量仪
基于Zigbee的无线通信技术在智能家居中的应用
一种多方向导光按键结构设计
关于智能家居真正需求的探讨
Microchip推出两个全新PIC单片机系列
智能家居更贴心
基于LD3320的智能家居控制