基于51 单片机的智能窗帘控制系统设计

2023-12-08 12:31郭秋国刘宇吴通滨邓传堃
电子制作 2023年22期
关键词:流程图液晶窗帘

郭秋国,刘宇,吴通滨,邓传堃

(东南大学 成贤学院,江苏南京,210088)

1 课题背景及意义以及国内外发展现状

智能家居以住宅为平台,兼备建筑、网络通信、信息家电、设备自动化,集系统、结构、服务、管理为一体的高效、舒适、安全、便利、环保的居住环境,尽显便捷将家中的各种设备(如音视频设备、照明设备、窗帘控制、空调控制、网络家电等)通过家庭网络连接到一起。与普通家居相比,不仅具有传统的居住功能,提供安全舒适的家庭生活空间,还能提供全方位的信息交互功能,优化人们的生活方式。

随着社会信息化的加快,人们的工作、生活和通讯、信息的日益紧密。信息化社会在改变人们生活方式与工作习惯的时候,也对传统的住宅提出了挑战,社会、技术以及经济的进步更使人们的观念随之巨变。人们对家居的要求早已不是物理空间,更为关注的是一个安全、方便、舒适的居家环境。

而且技术产业结构的调整,生产工艺的飞速发展,人们的生活水平不断提高,家用电器逐渐普及。高精度、多功能、低功耗是现代科技发展的趋势。在这种趋势下,窗帘的数字化、智能化已经成为现代生产研究的主导设计方向。单片机在电子产品中的应用已经越来越广泛,结合感光、时钟、语音和红外系统的智能窗帘系统具有较好的发展前景。

2 系统结构

系统设计以51 单片机为主控模块,采用模块的设计方式,包括遥控、电源、时钟、电机驱动、光照检测、语音检测、温度检测、雨滴检测、键盘和显示等模块,实现对家具智能化的控制。图1 为智能窗帘控制系统的系统框图。

图1 智能窗帘控制系统的系统框图

3 智能窗帘控制系统设计

系统原理图如图2 所示。

图2 系统原理图

■3.1 单片机的选择

方案一:采用STM32 系列单片机,STM32 单片机因其构造简略、简单易用、功能强大、便于开发创作等优点深受广大开发者的青睐。该单片机支持多种外设接口和通信协议,例如USB、CAN、SPI、I2C 等,方便了它与其他设备进行通信。但STM32 内部的时钟受到温度、电压等因素的影响较大。所以相比于外部时钟,稳定性会比较差。这就意味着系统在运行过程中可能会受到时钟抖动的影响,从而导致计时不准确或其他问题。STM32 的时钟精度也不高:内部时钟的精度一般在1%左右,这相对于晶振的精度要低得多。对于某些需要高精度计时的应用场景,内部时钟可能会不够精确。所以STM32 内部时钟通常被视为备用选项,并且系统并不支持长时间运行,如果系统需要长时间运行内部时钟就可能会承担不必要的风险。

方案二:采用STC89C52 单片机。此单片机具有强可靠性、高性价比、低电压、低功耗等优点从而得到迅猛发展和大范围推广,STC89C52 单片机算术运算功能强,软件编程灵活,自由度大,可用软件编程实现各种逻辑功能,本身带有定时器、计数器,可以用来定时和计数,并且其功耗低,体积小和成本低等优点。因其拥有超强抗干扰性就可以解决比如定时,计时的问题。STC89C52 单片机系统支持长时间运行结合功耗低的特点,可搭载蓄电池一类的电源从而达到实时可使用性。基于以上两种方案并结合作品智能窗帘的特性比较以及性价比,我们选择了方案二。

■3.2 液晶显示模块

本模块采用的是LCD1602 液晶显示屏,它是一款物美价廉的工业字符型显示屏,可以显示2 行标准字符,每行共有16 个字符。能够很方便显示英文字母大小写、阿拉伯数字、常用符号等。并且通过自定义还能显示简单的汉字。

液晶模块的电路的连接图见图2,第1 脚接到了电路的GND 和第2 脚接到了电路的VCC。第3 脚通过一个10k 的蓝白可调电阻连接到地端,蓝白可调电阻可根据实际情况调整电阻从而改变液晶屏对比度实现更清晰的文字显示。第4脚是液晶的寄存器控制脚,接到单片机的P13 脚。第5 脚是液晶的读写控制脚,接到单片机的P14 脚。第6 脚是液晶的使能脚,接到单片机的P15 脚。第7 脚到第14 脚是液晶的数据/地址8 位总线,接到单片机的P00 到p07 脚。第15 脚接到电路的VCC 这是液晶的背光电源脚,第16 脚接到电路的GND。

■3.3 雨滴模块

此模块由一个比较器和一个感应板组成,它可以用于模拟量输出和数字量输出,AO 口可以与AD 模块相连通过AD转换之后可以获取到更加精确的数值。DO 口则可以和单片机直接连接检测其高低电平。我们在本设计中主要运用到雨滴模块的DO 口输出。雨滴模块电路图见图2。

该雨滴模块在本系统中的用途主要是用于感应外界天气是否下雨并以此来控制步进电机的状态,当雨滴模块感受到外界下雨时该模块会输出低电平给单片机,与此同时单片机收到来自雨滴模块传达的信号并控制步进电机使窗帘关闭。

■3.4 按键模块

本模块中一共采用了五个按键,它们的功能分别是:模式切换、增按钮、减按钮、阈值设置、设定时间。按键模块电路图见图2。K1 按钮是模式切换按键,在初始化启动时系统默认是手动模式,可以通过K1 来切换到其他控制模式。K2 按钮是设定时间按钮,它的作用是设置实际时间。阈值设置按钮是K3 按钮它是用来选择需要设置的阈值的类型例如光照和温度。增减按钮则是用来调整阈值的分别是K5 和K4 按钮。

■3.5 光照感应模块

光照感应模块我们采用的是通过光敏电阻来采集获取光照强度,然后再通过ADC0832 将采集的信息传给单片机进行处理。然后将处理后的数据和系统设置的阈值进行比较进而来控制步进电机的运作。

■3.6 红外遥控模块

红遥控模块是由1838 红外接收头和红外遥控器组成。用户可以在手动模式下使用红外遥控器上的左右键来控制窗帘的开关。该系统的主要工作原理是由连接在单片机上的红外接收头来接收红外遥控器的红外信号,再通过解码来使单片机获取到用户按下的是哪个按键,进而实现远程遥控控制步进电机的运动状态的操作。

■3.7 温度模块

温度感应模块是由DS18B20 与单片机直接相连组成,用来对周围环境的温度进行测量,它的工作原理是通过对DS18B20 中的晶振产生的脉冲信号进行加减法计数来获取温度数据,经过DO 口传递给单片机再由单片机进行处理之后就可以获得室内温度数值。

■3.8 定时模块

定时模块我们使用DS1302 芯片来计时,并且为了保证其在系统断电之后可以继续正常工作,我们为其加装了一个纽扣电池作为其后备电源。DS1302 的2、3 管脚连接晶振为DS1302 提供相应的时钟脉冲信号。5、6、7 管脚作为IO 口与单片机相连用于数据的传输。

■3.9 语音系统控制模块设计

在我们最初的方案设计中打算采用的是LD3320 语音控制模块,但是由于此前的设计已经占用了RXD 和TXD,所以最终语音控制模块我们采用的是SU-03T。它一款离线智能语音识别模块,有别于在线语音模块的是,SU-03T 语音模块是由本地存储数据,所以在使用前需要提前设置自己所需要的命令词和回复语。SU-03T 智能语音模块虽然使用简单,但由于词汇有限制所以会比较单一,但基本可以满足本模块的设计需求。在实际使用过程中智能语音控制模块SU-03T 在接收到预前预先设计好命令词时,A25,A26 管脚发出低电平给与之相连的STC89C52 的P3.6 和P3.7 管脚来控制电机的运作。

■3.10 电机驱动模块

作为本系统的核心电机驱动模块,我们选择的是使用ULN2003 作为电机的驱动芯片,用来将单片机IO 口直接输出的弱电流进行增强,并以此来驱动步进电机的正常运转。

4 系统软件设计部分

■4.1 开发环境简介

本系统的开发使用的是Keil C51 编译软件。Keil C51 是一种专门用于8051 微控制器的C 语言编译器。它是由Keil公司开发的,已经被ARM 公司收购。Keil C51 提供了完整的集成开发环境(IDE),其中包括编辑器,编译器,调试器和仿真器。它支持广泛的8051 系列芯片,并提供丰富的库和示例程序,使8051 编程变得更加容易和高效。Keil C51在嵌入式系统开发中应用广泛,尤其是在工业控制、汽车电子控制系统、通信设备和消费电子中的应用更为常见。

■4.2 系统流程图设计

本系统流程图如图3 所示,整个系统为循环处理,在初始化的时候对液晶显示屏以及时钟芯片进行初始化设置。先读取由DS18B20 处理的时间数据信息以及光照强度和温度的数据然后交由液晶显示屏进行显示。紧接着是按键扫描,根据按下按键的信息实现不同模式的转换和操作控制。例如按下光照模式时,会自动读取并显示实时的光强并且按照设定好的阈值来控制窗帘的驱动模式。模式为温度模式时则会读取室温并显示,然后按照设定好的温度阈值来操作窗帘状态。手动模式则是根据按下的按键来开关窗帘。

图3 系统流程图

■4.3 时钟信息读取

时间信息的获取是依靠单片机不断去读取DS1302 芯片中的时间信息并且实时发送至LCD1602 液晶显示屏上进行显示。读取时间信息是将年、月、日、时、分、秒等,的数据分别储存在几个不同的个寄存器当中,并且依次将其显示在液晶显示屏上。时钟信息读取流程图如图4 所示。

图4 时钟信息读取流程图

■4.4 LCD1602 液晶屏显示程序

首先在LCD1602 显示出我们想要显示的内容之前,需要将先通过设置光标地址指针来确定需要显示内容在屏幕上的位置。而在显示长串字符串的时候可以只在最开始的时候完成一次地址指针设置,之后的内容会自动顺延下一位地址显示,无需每个字符都定位一次。LCD 显示模块流程图如图5 所示。

图5 LCD 显示模块流程图

■4.5 光控模块程序设计

光强信息的读取主要是由光感电阻来感应光强弱变换,然后再由ADC0832 将收集到的数据进行转换,变成数字信号之后交由单片机进行数据处理。所以该模块的软件设计主要是在于对所收集的光强数据进行处理和对比后进行对窗帘的控制。光控模块程序设计流程图如图6 所示。

图6 光控模块程序设计流程图

■4.6 温控模块程序设计

温度数据的采集是利用了DS18B20 芯片对外界温度数据的收集并将其返回的十六位二进制数交由单片机进行处理,所返回的二进制数中高五位代表正负,后面十一位将其换算成十进制后再乘0.0625 之后所得到的就是此刻温度。在单片机将此时的温度数据与阈值进行比较后来进行对窗帘进行操控。温控模块程序设计流程图如图7 所示。

图7 温控模块程序设计流程图

■4.7 红外遥控模块程序设计

通过解码单片机接收到的红外信号来实现对窗帘的控制。而遥控器上有不同的按键,每个按键对应不一样的红外信号。所以按下不同按键时单片机接收并解码到的键值有所不同。这个模块的设计主要是通过对比键值来实现对应预设按键的功能。例如开关窗帘。红外遥控模块程序设计流程图如图8 所示。

图8 红外遥控模块程序设计流程图

猜你喜欢
流程图液晶窗帘
不可压液晶方程组的Serrin解
《液晶与显示》征稿简则
赶路人
巧做窗帘
专利申请审批流程图
专利申请审批流程图
液晶与显示2015年第30卷第1期 目录
感恩的窗帘
窗帘
宁海县村级权力清单36条