基于STM32的智能窗帘设计

2024-01-18 06:04倪春晖杨俊伟
现代信息科技 2023年22期
关键词:窗帘蓝牙串口

倪春晖 杨俊伟

收稿日期:2023-07-13

基金项目:2023年教育部供需对接就业育人项目(20230110155);扬州大学广陵学院大学生创新创业训练计划项目(YJ202331)

DOI:10.19850/j.cnki.2096-4706.2023.22.034

摘  要:随着高新技术及电子器件的发展,光控、温控及遥控窗帘应运而生,给人们的生活带来很多方便。因此,研究和设计智能窗帘控制系统具有深远的实际意义。系统设计的主控模块选取STM32F103C8T6单片机。选取串口屏SDWa043C03T作为人机交互模块,负责显示采集到的温度和湿度。选取DHT11作为湿度采集模块,热敏电阻作为温度采集模块,通过BH1750采集室内光照强度,利用HC-05作为蓝牙模块。所设计的智能窗帘成本更加经济,结构更加简单可靠,控制方式更加丰富便捷。

关键词:STM32F103C8T6;光照强度;温度;湿度;蓝牙

中图分类号:TP27    文献标识码:A    文章编号:2096-4706(2023)22-0156-05

Design of Intelligent Curtain Based on STM32

NI Chunhui, YANG Junwei

(Guangling College of Yangzhou University, Yangzhou  225000, China)

Abstract: With the development of high and new technology and electronic devices, light control, temperature control and remote control curtains come into being, bringing much convenience to people's lives. Therefore, the research and design of an intelligent curtain control system has far-reaching practical significance. The main control module of the system design selects STM32F103C8T6 Single-Chip Microcomputer. The serial screen SDWa043C03T is selected as the human-computer interaction module, and it is responsible for displaying the collected temperature and humidity. The DHT11 is selected as the humidity acquisition module. The thermistor is selected as the temperature acquisition module. It collects the indoor light intensity by BH1750, and uses HC-05 as a Bluetooth module. The cost of the designed intelligent curtain is more economical, the structure is more simple and reliable, and the control mode is more abundant and convenient.

Keywords: STM32F103C8T6; light intensity; temperature; humidity; Bluetooth

0  引  言

隨着电子信息技术高速发展,人们的生活水平逐步提高。人们对美好生活的期盼也不断提高,智能化的家居产品需求也越来越旺盛。有需求就会有市场,各种智能家居喷涌而出,例如:智能门锁、智能橱柜、智能音箱、智能台灯等。这些产品的出现使人们的生活更加的便利。因为人们对智能家居的需求大,并且智能家居有着广泛的市场。所以,在目前阶段,智能家居系统的产生就非常有必要。智能家居是现代电子技术、通信技术及自动化技术相结合的产物。因为高性能控制芯片的不断产生,电子和控制技术不断提高,所以现在市场上出现了很多的智能化的窗帘,例如光控窗帘、声控窗帘,抑或是通过蓝牙技术即可遥控的窗帘。生活因为这些智能化家居的产生而变得更加美好,正因如此,研究和设计更为可靠的智能窗帘控制系统具有深远的现实意义。本文的智能窗帘主要朝着家居的智能化、自动化方向发展。通过结合蓝牙、串口屏、单片机等元件对升降窗帘进行一些改造,使得升降窗帘更加智能化,更能满足人们对智能家居的需求[1]。

1  方案的总体设计

系统是以单片机最小系统为核心控制,由温度采集电路、湿度采集电路、光照强度采集电路、蓝牙控制电路[2]、电机电路和显示电路组成。利用温度采集电路实时采集室内温度。采用湿度采集电路实时采集室内湿度,通过光照强度采集电路实时采集室内的光照强度,对采集到的光照强度进行处理[3],进而发出指令控制窗帘的状态。通过蓝牙模块实现对窗帘的遥控,并基于串口屏实现温湿度显示,以及控制模式的选择,再通过对电机的控制实现对窗帘运动的控制。图1为系统架构框图。

智能窗帘拥有2种工作模式:自动模式、手动模式[4]。自动模式是通过光照强度采集模块采集室内光照强度,发送给单片机,单片机判断采集到的光照强度。如果光照强度过大,则单片机发送指令给电机,控制窗帘降下,从而使室内的光照强度下降到一个合适的范围内。如果光照强度过小,则单片机发送指令给电机,控制电机上升,从而使室内的光照强度上升到一个合适的范围内[5]。而手动模式主要依靠的串口屏,通过串口屏配置的页面,可以进行手动和自动模式的切换,也可以通过配置的按钮进行对窗帘运动的控制,还可以通过手机蓝牙进行对窗帘的遥控。

2  系统硬件设计

2.1  STM32F103C8T6最小系统

最小系统主要有以下五大部分:电源电路、时钟电路、调试电路、复位电路、控制芯片。

2.2  温度采集方案设计

室内温度的范围一般是-10 ℃至40 ℃,而热敏电阻的测温范围完全可以满足这一范围,并且其具有稳定性好、过载能力强的特点。测温电路采用3.3 V供电,热敏电阻与10 kΩ的电阻相连接,R1作为补偿电阻,即当热敏电阻温度变化时将相对应的输出电压线性化。PA0为输出。通过此方案设计能够将-10 ℃至40 ℃的温度通过传感器采集,且误差在±5%。

2.3  光照强度采集电路设计

BH1750的能够检测到0~65 535勒克斯(Lux)范围内的光照强度,误差变动为±20%。输出的是检测到的光照强度的数字值,这种数值相较于其他传感器输出的模拟量而言更加容易处理。BH1750引脚1为VCC采用3.3 V电源供电。引脚6为SCL,IIC时钟线,时钟输入引脚。引脚4为SDA,IIC数据线,用来传输数据。引脚2为ADDR。引脚3为GND。引脚5为DVI。通过此方案设计将室内的0~10 000勒克斯(Lux)光照强度通过传感器采集,测量精度为±20% Lux。光照强度采集电路图如图2所示。

2.4  湿度采集电路设计

DHT11湿度检测范围为20%~90%相对湿度(RH),精度范围为±5%相对湿度(RH)。拥有较高的可靠性和稳定性,抗干扰能力强。DHT11一共3个引脚,引脚1是VCC,使用3.3 V电源进行供电,引脚2是DOUT输出数据,引脚3是GND接地。通过此方案设计能够将20%~90%相对湿度(RH)通过传感器采集,且误差在±5%相对湿度(RH)。

2.5  蓝牙电路设计

蓝牙电路图如图3所示。HC-05蓝牙模块传输距离为10 m,波特率最低可至4 800 bit/s,最高可以達到1 382 400 bit/s。蓝牙模块与单片机之间的通信方式为串口通信。HC-05蓝牙模块引脚1是EN。引脚2是VCC,使用3.3 V电源供电,引脚3是GND接地。引脚4是TXD用来发送蓝牙模块的输出数据,通过连接单片机的RXD,使单片机接收到蓝牙模块发送的数据。引脚5是RXD用来接收单片机发送给蓝牙模块的数据,通过连接单片机的TXD,使蓝牙模块接收到单片机发送的数据。引脚6是STATE。通过此方案可以实现手机蓝牙对智能窗帘的遥控。

2.6  电机驱动电路设计

该设计使用的电机为28BYJ-48步进电机。此电机一般配备的驱动板为ULN2003。ULN2003是高压大电流达林顿晶体管阵列系列产品[6],它具有以下特点:具有比较高的电流增益、工作时的电压比较高、工作的温度范围比较广、带负载能力强。ULN2003驱动板使用5 V电源供电,单片机的4个I/O口分别连接驱动板的IN1、IN2、IN3和IN4。通过I/O口输出高低电平来实现电机的控制。通过此方案设计可以实现对28BYJ-48步进电机的控制,进而实现对窗帘的控制。

2.7  STM32F103C8T6配置

该设计采用的主控芯片为STM32F103C8T6[7],它需要通过SMT32cubeMX进行I/O口、时钟、串口的配置。为便于在串口屏上显示出实时时间,因此需要配置一个定时器,STM32使用内部高速振荡器即HSI通过锁相环PLL倍频到72 MHz。时间走时采用TIM2,选取内部时钟,Prescaler配置为7 199,Counter Period配置为9 999,这样配置的时间就为1秒。

为保证串口屏SDWa043C03T和单片机之间顺利通信,因此需要在SMT32cubeMX中配置串口,这里选取USART1作为串口屏与单片机通信的串口,波特率配置为115 200 bit/s,字节长度为8个字节,停止位为1个字节。PA9配置为USART1_TX通过与串口屏SDWa043C03T的RX连接,将单片机的指令传输给串口屏SDWa043C03T。PA10配置为USART1_RX通过与串口屏SDWa043C03T的TX连接,将串口屏的指令传输给单片机。温度采集是使用的AD采集,因此要在SMT32cubeMX中配置ADC1,选取IN0,其对应的I/O口为PA0。湿度采集采用DHT11温湿度检测模块,它有3个引脚,分别是VVC、GND和DOUT,配置PB9的GPIO mode为input mode。用来接收DHT11温湿度模块采集到的湿度值。光照强度采集采用BH1750光照强度检测模块,此模块通信方式采用IIC,因此配置PB0为SDA,配置PB1为SCL。蓝牙模块采用的是HC-05蓝牙模块,蓝牙模块和单片机之间的通信方式是串口通信,因此蓝牙模块和串口屏一样都需要配置串口,这里选取USART2作为蓝牙模块与单片机通信的串口,波特率配置为115 200 bit/s,字节长度为8个字节,停止位为1个字节。PA2配置为USART2_TX通过与蓝牙模块的RX连接,将单片机的指令传输给蓝牙模块。PA3配置为USART1_RX通过与蓝牙模块的TX连接,将蓝牙模块的指令传输给单片机。28BYJ-48步进电机使用ULN2003驱动板进行驱动,因此需要单片机4个I/O口对其进行控制,PA4、PA5、PA6及PA7均设置为output,分别连接ULN2003驱动板的IN1、IN2、IN3及IN4。通过这四个I/O口输出高低电平进而控制电机的正转反转。STM32F103C8T6配置图如图4所示。

3  系统软件设计

智能窗帘的主程序主要包括:温度采集程序、光照强度采集程序、湿度采集程序、蓝牙控制程序和串口屏SDWa043C03T显示及控制程序等。系统上电后,首先进行初始化,串口屏SDWa043C03T开始开机动画、温度采集、湿度采集,等待串口屏SDWa043C03T开机动画播放完毕后,进入主页面进行温度和湿度的显示,还可以在主页面进行自动和手动模式的切换,同时主页面有时间的显示,还可以对时间进行调时,可以通过定时控制按钮进入定时控制页面,设置定时打开窗帘和定时关闭窗帘的时间[8]。通过打开定时和关闭定时2个按钮来控制定时功能的打开和关闭。手动模式是通过升上窗帘、降下窗帘和停止窗帘3个按钮来对窗帘进行控制。自动模式通过采集到的光照强度来对窗帘进行控制。每种控制都会加上限位,即通过红外对管检测窗帘的位置来控制窗帘的停止。主程序流程图如图5所示。

本设计采用的是热敏电阻进行温度采集,因此通过AD进行采集,将采集到的电压值通过计算转化成温度。利用DHT11进行湿度采集[9],DHT11采用单总线双向串行通信协议。通过通信得出实时的湿度值。并且通过BH1750进行光照强度的检测,单片机通过IIC总线的方式与该模块进行通信,进而得出实时的光照强度,进而实现对窗帘的自动控制。选取HC-05模块作为蓝牙控制,蓝牙和单片机之间是串口通信。通过串口通信的方式实现对窗帘的遥控。选取串口屏SDWa043C03T作为显示屏,单片机通过串口的方式与该屏幕实现通信,通过该屏幕进行温湿度及时间显示,也可以通过该屏幕发送对窗帘的控制指令。

4  实物及调试

实物整体照片如图6所示。通过下方的串口屏实现对窗帘的手动控制,并且串口屏负责显示时间及温湿度,两个限位开关负责限位,热敏电阻负责测温,BH1750负责检测光照强度,DHT11负责检测湿度。

本系统设计选用串口屏SDWa043C03T作为显示与控制模块,因此串口屏与单片机之间的通信就很重要。需要用到串口屏来显示室内的温度、湿度以及时间,这些数据是单片机通过串口发送给串口屏,因此要用到单片机的TX和串口屏的RX。本设计还可以通过串口屏进行模式的选择、调时、定时以及手动控制窗帘,这些数据是串口屏发送给单片机,这就用到了串口屏的TX和单片机的RX。因此在使用串口屏前需要对串口屏进行一些调试,来确保串口屏和单片机之间可以正常通信。时钟的走时和调时用到TX与RX,因此选取时钟的走时与调时来测试串口屏与单片机之间的通信[10]。

温湿度显示及时间显示如图7所示。在屏幕的左下角分别显示室内的温度及湿度,温度单位为摄氏度,湿度按百分比来显示,时间在屏幕的左上角。点击定时开关进入定时控制页面,点击自动模式,窗帘工作模式进入自动模式并进入自动模式页面,点击手动模式,窗帘工作模式进入手動模式并进入手动模式页面。可以点击时间进行对时间的调时。

根据表中的数据可以看出,温度采集存在些许误差,误差为±1 ℃,在误差允许的范围内。用手指触摸热敏电阻,通过Debug可以看到温度值随着手指的触摸而升高。由以上数据和测试可以得出该采集电路可以达到测量室内温度的目的的结论。湿度采集调试中通过Debug进行数据查看,用对着DHT11吹气的方式查看湿度变化。具体采集数据如表2所示。

根据表中的数据可以看出,湿度采集存在些许误差,误差为±2%,在误差允许的范围内。对着DHT11吹气,通过Debug可以看到湿度值会因为吹气而升高。由以上数据和测试得出该采集电路可以达到测量室内湿度的目的的结论。

定时控制如图8所示。可以点击打开窗帘和关闭窗帘后面的时和分进行定时时间的选择,然后点击打开定时,进入定时模式。点击关闭定时则退出定时模式。点击返回按钮,返回到模式选择页面。蓝牙控制如图9所示。点击降下窗帘,控制电机将窗帘降下。点击升上窗帘,控制电机将窗帘升上。点击停止窗帘,电机停止运动,窗帘停止。点击自动模式,窗帘工作模式进入自动模式。点击降下窗帘、升上窗帘和停止窗帘这三个按钮都可以使其退出自动模式。

5  结  论

本系统设计的智能窗帘因为选取DHT11作为湿度检测模块,因此可以检测室内的湿度,使用者可以通过串口屏直观地了解到室内的湿度情况。此外,还选取了热敏电阻电路作为温度检测模块,使用者可以通过串口屏了解到室内的温度。HC-05蓝牙模块的使用,使得使用者可以通过手机APP对窗帘实行遥控。BH1750光照强度检测模块的使用,使得智能窗帘变得更加智能化,其可以读取室内的光照强度,通过将采集到的数据发送到单片机,单片机处理数据,进而控制窗帘的升降,使得室内的光照强度处于一个适宜的状态。该智能窗帘适用人群广泛。在如今各种智能产品遍地的情况下,一些老年人由于不会使用智能手机就显得落伍,一些智能产品也不知道该如何去控制。本窗帘可以通过串口屏上的按键进行模式切换与手动模式进行控制。方便老年人使用。年轻人可以通过手机进行遥控,也可以选择其他模式进行控制。此智能窗帘设计使得窗帘自动化程度更高,更加智能化,更能满足人们对智能家居的需求。

参考文献:

[1] 申赞伟,殳国华,张士文,等.基于STM32的智能家居物联网系统实验设计 [J].实验室研究与探索,2022,41(2):60-63+93.

[2] 付心仪,张鹤,薛程,等.智能家居综合实验平台设计研究与应用实践 [J].包装工程,2022,43(16):50-58+108.

[3] 刘小滨,刘寅,沈文浩.基于STM32单片机的环境温/湿度远程监控系统设计 [J].中国造纸学报,2022,37(3):118-125.

[4] 单立军,孔永华.基于STM32单片机的智能窗控制系统设计 [J].东华大学学报:自然科学版,2021,47(6):84-90.

[5] 陈卯纯,孙薇,赵小惠.物联网智能家居中的人机交互 [J].包装工程,2014,35(2):64-67.

[6] 朱礼智,张艳君.现代老年公寓智能家居系统的设计 [J].包装工程,2013,34(10):31-33+94.

[7] 郭宇.人工智能与家居设计 [J].包装工程,2017,38(16):12-15.

[8] 缪珂,肖亦奇,施斌.新中产生活情境下智能家居产品设计策略研究 [J].包装工程,2021,42(18):410-415.

[9] 马晓娜,张雨欣,于茜.基于多模态信息交互的智能家居设计研究 [J].包装工程,2022,43(16):59-67+115.

[10] 王基策,李意莲,贾岩,等.智能家居安全综述 [J].计算机研究与发展,2018,55(10):2111-2124.

作者简介:倪春晖(2000—),男,汉族,江苏淮安人,本科在读,研究方向:控制理论与控制系统;通讯作者:杨俊伟(1990—),男,汉族,江苏扬州人,讲师,博士,研究方向:风力发电控制及流动测量。

猜你喜欢
窗帘蓝牙串口
蓝牙音箱的直线之美
风儿撩起了窗帘
浅谈AB PLC串口跟RFID传感器的通讯应用
简单、易用,可玩性强Q AcousticsBT3蓝牙音箱
适合自己的才是最好的 德生(TECSUN) BT-50蓝牙耳机放大器
巧做窗帘
紧急:蓝牙指尖陀螺自燃!安全隐患频出
USB接口的多串口数据并行接收方法探索
基于蓝牙串口适配器的GPS接收机与AutoCAD的实时无线通信
感恩的窗帘