当前位置:首页 期刊杂志

基于STM32智能窗帘控制系统的设计

时间:2024-07-28

翁利侠

(福建无线电设备有限公司,福建三明 365001)

0 引言

随着科技的飞速发展,人类在向文明迈进,人们的生活质量有着很大的提高,不同时代对居住空间和环境的要求不同,越来越多的人们不拘于旧式居住环境,而提出了更高的要求[1]。人们生活质量的稳步提高是生活水平进步的必然发展过程,其中科技技术的发展更是给生活带来舒适、环保和安全的同时也让居住环境越发舒服和便捷[2]。窗帘充当着家庭生活中的门卫,是家居生活不可缺少的产品,它让室内与外界隔绝,保持居室的私密性,同时又是家装不可或缺的装饰品,使得人们居住环境越发舒适和安全[3]。现在传统窗帘必须人为地去手动拉动,为了满足光线强度的舒适度和居住环境的隐私性,每天手动拉动窗帘也越发频繁,尤其是在占地较大的别墅或复式公寓手动拉动窗帘比较麻烦[4]。基于以上原因,本文以单片机STM32F103作为系统的核心处理平台,设计了一款具有多功能、稳定、安全、成本低等特点的智能窗帘控制系统。解决了人们每天手动拉动窗帘的问题,也可以通过外界的温度和光照强度来控制窗帘的开关,使得室内光线和温度智能化,让人们处于一种较为舒适的生活环境,不仅提高了家居生活的私密性又能突显生活的档次,进一步满足了人们的享受需要,提高了人们的生活质量和效率[5]。

1 系统总体设计

本文以STM32F103单片机为开发平台,根据智能窗帘控制系统需要实现的功能,进行硬件电路的设计[6]。主要由3大部分组成,分别为数据采集、控制中心和执行结构。其中数据采集是由各类电子器件构成的电路组成,通过各种传感器,分别对室内环境温度、室内光照强度、室内声音、红外线信号和定时区间进行采集。经过单片机控制中心一系列分析处理后转化外相应的数据信号,与产品设定的各种数据阈值进行比较,根据比较的结果,控制ULN2003A步进电机进行相关操作,通过电机的正转或者反转,从而控制窗帘的自动升降,并将处理后的数据信号在LCD1602液晶屏上显示,可以清晰看到各种传感器采集的数据,也可以判断数据采集的准确性。该产品可以在显示屏上准确获得当时的时间、温度、窗帘的动作状态以及系统的工作模式等数据。图1所示为智能窗帘系统总体框图。

图1 系统总体框图

2 硬件设计

为实现方便可行的智能窗帘控制系统策略,本系统硬件电路以STM32F103为核心、由电源设计电路、数据采集电路、电机控制电路、液晶显示电路等模块组成,控制系统采用闭环控制[7]。

2.1 电源电路设计

控制系统采用5 V电压供电。但STM32F103C8T6芯片拓展电路需要3.3 V供电,故设计一个降压电路,把5 V电压降压到3.3 V,以满足整个控制系统稳定运行。图2所示为供电电源电路。选用输出电压为3.3 V的正向低压降稳压器AMS1117-3.3,图3所示为AMS1117-3.3降压电路图,图中为保证工作稳定性,接入一个10μF/16 V的钽电容,两个输入电容C5和C7,C14和C8是输出滤波电容[8]。

图2 供电电源电路

图3 AMS1117-3.3降压电路

2.2 数据采集电路设计

系统数据参数采集包括温度、光照强度、语音、红外信号、定时时间区间等,并通过各类传感器进行采集,并把采集到的数据发给控制中心处理[9]。

2.2.1 温度采集电路的设计

采用单线数字温度传感器DS18B20。为一种新的“一线器件”,图4所示为传感器接线原理图,DQ为主要通讯线路,主机可以通过控制DQ线路DQ高低电平时间来对DS进行读取和写入,外加一个上拉电阻,DS的总线采样是在总线拉低后15μs开始的,其工作流程为:开始、DS18B20复位、跳过ROM匹配指令、输入读取温度指令、读取温度值、显示温度值、结束[10]。

图4 DS18B20接线原理

2.2.2 光照强度采集电路的设计

光照强度采集电路选用光敏电阻进行光照强度采集。只需要2个电极,工作原理是基于内光电效应。阻值与光照强度成反比即光照愈强,阻值就愈低,并且它对光线十分敏感,当它处于无光照条件下时,呈高阻值状态,一般可到达1.5 MΩ,如图5所示为光照采集电路原理图,取电阻R8上的电压差值即可判断光强变化。因为检测的是一个电压信号,单片机不能直接处理,32单片机内部自带AD,故直接接入AD输入口即可。将接收到的所测光照强度信号,在数模转换模块的处理后,得到光线值[11]。

图5 光照采集电路原理

2.2.3 语音识别电路的设计

采用非特定语音识别LD3320芯片,通过话筒收集声音数据,经滤波、放大处理后发送到LD3320进行语音识别,把处理结果输出到控制中心中。控制中心通过接收从语音识别芯片输出的处理结果数据,进行解析,对ULN2003A步进电机发送相应的操作指令,完成窗帘的开和关动作[12]。

为了确认系统是否识别到声音,设计中加入一个LED发光二极管,当LD3320收集到语音信号“小白”时,LED点亮,以此来提示有声音发送。在指示灯亮时说对应的关键词可以让窗帘进行打开或者关闭,比如当指示灯亮时,说“开窗”时,系统检测到会驱动电机进行正转即窗帘打开,当指示灯亮时,说“关窗”时,系统检测到时会驱动电机进行翻转,即窗帘关闭,图6所示为LD3320语音识别原理图。

图6 LD3320接线原理

2.2.4 红外接收电路的设计

采用HX1838红外接收头为一体化红外接收头,解调信号输出端接在单片机P3.2引脚上。红外遥控系统主要分为3部分,分别为调制、发射和接收。利用外部中断进行数据的接收[13]。图7所示为红外接收电路原理。

图7 红外接收电路原理

2.3 电机控制电路的设计

采用ULN2003A芯片用于步进电机驱动电路中。图8所示为ULN2003A的电路原理。

图8 ULN2003A电路原理

2.4 液晶显示屏电路的设计

采用LCD1602液晶显示屏。进行初始化,然后设置显示的字符串即可控制显示屏显示想要的结果。该显示器内部设有存储器,其存储器中存储了英文字母、数字以及图形等,这些数据共同构成了一个数据库,当显示器工作时,只需调用库中的数据,即可实现对显示屏的编辑[14]。图9所示为LCD1602的电路原理。

图9 LCD1602电路原理

3 系统测试和结果分析

3.1 系统功能测试

对整个系统进行测试,检验系统实现的功能是否达标,各个硬件电路,各种软件设计以及软件和硬件设计是否存在冲突,使得设计的控制系统更具有现实性。

3.2 手动模式测试

在显示屏左下角可以看到系统当前模式,可以通过K4键位调节模式,在手动模式下主要通过手动、红外线遥控、语音识别来关窗帘,开窗帘。其中,通过手动按键位K2可以实现开窗帘,按K3可以实现关窗帘;红外遥控器上对应的1~4按键和实物上的K1~K4一一对应,遥控器可以通过对准HX1838红外接收一体头来实现红外遥控控制;当我们说关键词“小白”,语音对应的LED会亮,指示灯亮时需要再说“开窗”或“关窗”,就可以实现窗帘的开关。系统窗帘的开关状态可以在显示屏右下角看,ON表示系统窗帘打开,OFF则表示系统窗帘关闭。图10所示为手动模式下实物测试下窗帘的打开。

图10 手动模式下实物

3.3 自动模式测试

自动模式下主要通过温度和光照强度控制窗帘的开和关。在检测温度功能前,需要提前设置温度值,以确保功工作能正常运行。实物检测温度功能时,当外界温度达不到设置的温度值时,可以拿手指去捏DS18B20温度传感器,人为的去改变系统温度,让温度到达系统要求,从而控制窗帘的关闭,以检测该功能是否能正常运行。图11所示为自动系统下,设定温度值为30℃时系统关闭窗帘的实物图。当图中左上角的光敏电阻检测到有光照时,电机会反转即窗帘会关闭,当检测到无光照时,电机会正转即窗帘会打开。当出现设定的温度和光照强度在都满足系统控制窗帘条件下时,温度的优先级会高于光照强度,

图11 自动模式下实物

3.4 测试结果分析

在反复测试20次后,自动模式下各种操作都无异常,而在手动模式下的语言识别却不太灵敏,在测试的20次中有8次出现异常,在更换手机充电器(5V 2A)后恢复正常,原使用手机充电器(5V 1.5A),推测原因是电压供给系统各模块电压不稳定,导致语音识别以及温度检测出现不精确现象。

4 结束语

本文基于STM32F103设计了一款智能窗帘控制系统。设计硬件电路与软件程序,其中硬件电路设计了系统电源电路、数据采集电路、最小组成系统电路以及系统外围电机控制电路的设计。通过多种传感器收集各种数据,控制电机正反转以达到控制窗帘的自动升降。通过LCD1602显示当前窗帘的时间、温度、工作模式、工作状态等信息。搭建系统实物测试平台,测试硬件设计和软件设计是否出现冲突的现象。根据测试到的数据结果,对本次课题设计进行调试、分析及改进。从实验结果可以得出该系统性价比高、可靠性强。

免责声明

我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!