基于STM32的智能晾衣架设计与实现(完整项目)
摘要:本文设计并实现了一款基于STM32F103C8T6单片机的智能晾衣架系统,通过集成DHT11温湿度传感器、光敏传感器、雨滴传感器和光电红外传感器等模块,实现了环境参数的实时监测。系统具备自动/手动双模式控制功能,可根据环境变化自动调节晾衣架状态,同时支持OLED显示、按键操作和手机APP远程控制。测试结果表明,该系统运行稳定可靠,能有效解决传统晾衣架操作繁琐、无法自动调节等问题,具有成本低、
基于STM32的智能晾衣架设计与实现
摘要
随着智能家居技术的快速发展,传统晾衣架的手动操作模式已难以满足人们对便捷、智能、安全生活的需求。传统晾衣架存在操作繁琐、无法根据环境变化自动调节、缺乏远程控制和安全防护等弊端,无法适配现代家庭的智能化生活场景。本文设计并实现了一款基于STM32F103C8T6单片机的智能晾衣架,整合了环境监测、自动控制、手动操作、APP远程控制、安全防盗等多项功能,旨在解决传统晾衣架的不足,为用户提供便捷、智能、安全的晾衣体验。
本系统以STM32F103C8T6单片机作为主控单元,搭建了多模块协同工作的硬件架构,包括DHT11温湿度传感器、光敏传感器、雨滴传感器、光电红外传感器、ESP8266 WIFI模块、OLED显示屏、步进电机、有源蜂鸣器、LED指示灯及功能按键等元器件。软件部分采用模块化设计思路,基于Keil MDK开发环境编写代码,实现了环境参数实时采集、OLED信息显示、自动/手动模式切换、自动晾衣控制、手动操作控制、参数阈值调节、APP远程控制及防盗报警等功能。
经过系统调试与测试,该智能晾衣架各项功能运行稳定,环境监测精度满足实际使用需求,模式切换流畅,自动控制逻辑精准可靠,APP远程控制响应及时,防盗报警功能灵敏有效。本设计结构简单、成本低廉、操作便捷、实用性强,可广泛应用于家庭、公寓等场景,对推动智能家居产品的普及、提升人们生活品质具有重要的实际意义和应用价值。
关键词:STM32F103C8T6;智能晾衣架;环境监测;自动控制;APP远程控制;防盗报警




Abstract
With the rapid development of smart home technology, the manual operation mode of traditional clothes horses has been difficult to meet people's needs for a convenient, intelligent and safe life. Traditional clothes horses have disadvantages such as cumbersome operation, inability to automatically adjust according to environmental changes, lack of remote control and safety protection, and cannot adapt to the intelligent living scenarios of modern families. This paper designs and implements an intelligent clothes horse based on STM32F103C8T6 single-chip microcomputer, integrating multiple functions such as environmental monitoring, automatic control, manual operation, APP remote control, and safety anti-theft, aiming to solve the shortcomings of traditional clothes horses and provide users with a convenient, intelligent and safe clothes drying experience.
The system uses STM32F103C8T6 single-chip microcomputer as the main control unit, and builds a hardware architecture with multi-module collaborative work, including DHT11 temperature and humidity sensor, photosensitive sensor, raindrop sensor, photoelectric infrared sensor, ESP8266 WIFI module, OLED display screen, stepper motor, active buzzer, LED indicator light and function keys and other components. The software part adopts a modular design idea, and the code is written based on Keil MDK development environment, realizing functions such as real-time collection of environmental parameters, OLED information display, automatic/manual mode switching, automatic clothes drying control, manual operation control, parameter threshold adjustment, APP remote control and anti-theft alarm.
After system debugging and testing, all functions of the intelligent clothes horse run stably, the environmental monitoring accuracy meets the actual use needs, the mode switching is smooth, the automatic control logic is accurate and reliable, the APP remote control response is timely, and the anti-theft alarm function is sensitive and effective. This design has the advantages of simple structure, low cost, convenient operation and strong practicality. It can be widely used in families, apartments and other scenarios, and has important practical significance and application value for promoting the popularization of smart home products and improving people's quality of life.
Key words: STM32F103C8T6; Intelligent Clothes Horse; Environmental Monitoring; Automatic Control; APP Remote Control; Anti-theft Alarm
目录
- 绪论
- 研究背景与意义
- 国内外研究现状
- 研究内容与目标
- 论文结构安排
- 系统总体方案设计
- 设计原则
- 系统功能需求分析
- 系统总体架构设计
- 系统工作流程设计
- 系统硬件设计
- 硬件总体设计
- 主控单元设计(STM32F103C8T6)
- 环境监测模块设计
- DHT11温湿度检测模块
- 光敏传感器模块(光照强度检测)
- 雨滴传感器模块(雨水检测)
- 光电红外传感器模块(人体靠近/闯入检测)
- 显示模块设计(OLED屏幕)
- 执行模块设计
- 步进电机模块(晾衣架升降控制)
- LED指示灯模块(状态指示)
- 报警模块设计(有源蜂鸣器)
- 通信模块设计(ESP8266 WIFI模块)
- 控制模块设计(功能按键)
- 电源模块设计
- 硬件接线图与PCB设计
- 系统软件设计
- 软件总体设计思路
- 开发环境搭建
- 主程序设计
- 各功能模块软件实现
- 环境监测模块(传感器数据采集与处理)
- OLED显示模块(时间、环境信息显示)
- 模式切换模块(自动/手动模式控制)
- 自动模式控制模块(逻辑判断与执行)
- 手动模式控制模块(按键操作处理)
- 参数设置模块(阈值、时间、防盗开关设置)
- WIFI通信模块(ESP8266与APP交互)
- 报警模块(蜂鸣器控制)
- 手机APP界面设计与通信实现
- 软件调试与优化
- 系统调试与测试
- 调试环境搭建
- 硬件调试
- 软件调试
- 系统功能测试
- 环境监测功能测试
- 模式切换与控制功能测试
- 参数设置功能测试
- APP远程控制测试
- 防盗报警功能测试
- 显示功能测试
- 测试结果分析
- 总结与展望
- 研究总结
- 存在的问题与不足
- 未来展望
- 参考文献
- 致谢
- 附录(源代码、硬件原理图、PCB图)
1 绪论
1.1 研究背景与意义
随着社会经济的发展和人们生活水平的提高,智能家居已逐渐走进千家万户,成为现代家庭生活的重要组成部分。晾衣架作为家庭必备的生活用品,其便捷性、智能化程度直接影响人们的生活体验。传统晾衣架多采用手动升降模式,操作繁琐,且无法根据环境变化(如降雨、光照不足、湿度变化)自动调节,容易导致衣物被淋湿、晾晒效果不佳等问题。
同时,现代家庭中,人们常常因工作繁忙、外出等原因,无法及时处理晾衣相关事宜,缺乏远程控制能力;此外,部分家庭存在防盗需求,传统晾衣架无法提供有效的安全防护。随着嵌入式技术、传感器技术、无线通信技术的快速发展,为智能晾衣架的设计与实现提供了成熟的技术支撑,使得智能晾衣架能够整合环境监测、自动控制、远程控制、防盗报警等功能,解决传统晾衣架的弊端。
因此,设计一款基于STM32的智能晾衣架,实现环境自适应调节、手动/自动模式切换、APP远程控制和防盗报警等功能,能够有效提升晾衣的便捷性和安全性,改善人们的生活品质,同时推动智能家居产品的多样化发展,具有重要的现实意义和广阔的市场应用前景。
1.2 国内外研究现状
目前,国内外对智能晾衣架的研究已取得一定进展,市场上也出现了多款智能晾衣架产品,但仍存在功能单一、性价比低、适配性差等问题。
国外发达国家凭借先进的智能家居技术,推出的智能晾衣架产品智能化程度较高,如德国、日本等国家的产品,多具备自动升降、环境监测、远程控制等功能,部分产品还整合了衣物烘干、杀菌等功能,但这类产品价格昂贵,结构复杂,维修成本高,难以在发展中国家广泛普及。
国内对智能晾衣架的研究多集中于高校、科研机构和中小企业,主要以STM32、Arduino等单片机为核心,整合传感器和无线通信模块,实现基本的自动控制和远程控制功能。现有国内产品大多注重单一功能的实现,部分产品缺乏环境自适应调节、防盗报警等实用功能,且在稳定性、易用性和性价比方面仍有提升空间。因此,本文设计的基于STM32F103C8T6的智能晾衣架,兼顾功能全面性、成本经济性和操作便捷性,整合多种实用功能,能够更好地满足国内用户的实际需求。
1.3 研究内容与目标
1.3.1 研究内容
本文围绕基于STM32的智能晾衣架设计与实现展开研究,结合用户需求和元器件特性,具体研究内容如下:
- 分析智能晾衣架的功能需求,明确系统的设计目标,确定系统的总体设计方案,包括硬件架构和软件流程。
- 完成系统硬件设计,包括主控单元、环境监测模块、显示模块、执行模块、报警模块、通信模块、控制模块和电源模块的选型与电路设计,绘制硬件接线图和PCB图。
- 完成系统软件设计,基于Keil MDK开发环境编写各模块的控制代码,实现环境参数采集、OLED显示、模式切换、自动控制、手动操作、参数设置、APP远程控制及防盗报警等功能。
- 搭建系统调试环境,对硬件和软件进行调试,解决系统运行过程中出现的问题,确保各项功能稳定可靠。
- 对系统进行全面的功能测试和性能测试,验证系统的实用性和稳定性,分析测试结果并进行优化。
1.3.2 研究目标
本研究的目标是设计并实现一款功能完善、性能稳定、成本低廉、操作便捷的智能晾衣架,具体目标如下:
- 实现环境监测功能,通过DHT11、光敏、雨滴、光电红外传感器,实时采集温湿度、光照强度、雨水状态、人体靠近/闯入信息,并上传至主控单元。
- 实现OLED显示功能,清晰显示当前时间、环境参数(温湿度、光照强度、雨水状态)、工作模式、晾衣架状态及参数设置信息。
- 实现模式切换功能,通过按键可自由切换自动模式和手动模式,两种模式独立工作、切换流畅。
- 实现自动模式控制,定时时间内自动开启晾衣架,当光照强度低于阈值、湿度高于阈值、检测到雨水或人体靠近时,自动关闭晾衣架;定时时间外晾衣架始终关闭;防盗开关开启时,有人闯入触发蜂鸣器报警。
- 实现手动模式控制,通过按键可直接控制晾衣架的升降和LED指示灯的开关,操作便捷。
- 实现参数设置功能,通过按键进入设置界面,可修改当前时间、各环境参数阈值、定时晾衣时间及防盗开关状态。
- 实现APP远程控制功能,通过ESP8266 WIFI模块连接手机APP,APP可实时查看环境参数,下发晾衣架升降、灯光开关、模式切换、参数修改等控制指令。
- 确保系统运行稳定,各模块协同工作,响应及时,报警灵敏,满足家庭实际使用需求。
1.4 论文结构安排
本文共分为7个章节,各章节内容安排如下:
第1章为绪论,阐述本文的研究背景与意义、国内外研究现状、研究内容与目标,以及论文的结构安排,为全文的研究奠定基础。
第2章为系统总体方案设计,明确系统的设计原则和功能需求,设计系统的总体架构和工作流程,确定系统的硬件和软件设计思路。
第3章为系统硬件设计,详细介绍各硬件模块的选型依据、电路设计原理,绘制硬件接线图和PCB图,确保硬件架构合理、稳定。
第4章为系统软件设计,介绍软件开发环境,设计主程序和各功能模块的软件流程,编写相关控制代码,实现系统的各项智能化功能。
第5章为系统调试与测试,搭建调试环境,对硬件和软件进行调试,开展系统功能测试和性能测试,分析测试结果并进行优化。
第6章为总结与展望,总结本文的研究成果,分析系统存在的问题与不足,对未来的研究方向进行展望。
第7章为参考文献、致谢和附录,列出本文所引用的参考文献,表达对指导教师和相关人员的感谢,附上系统源代码、硬件原理图等相关资料。
2 系统总体方案设计
2.1 设计原则
本智能晾衣架的设计遵循以下原则,确保系统的实用性、稳定性、经济性和易用性,满足家庭实际使用需求:
- 实用性原则:围绕用户的实际晾衣需求和安全需求设计功能,操作简单便捷,适合不同年龄段用户使用,无需复杂的操作步骤。
- 稳定性原则:选用成熟、可靠的元器件和技术,优化硬件电路和软件程序,确保系统长时间稳定运行,避免出现误动作、误报警等问题。
- 经济性原则:在满足功能需求的前提下,选用性价比高的元器件,降低系统成本,便于批量生产和普及,符合国内家庭的消费需求。
- 扩展性原则:系统硬件和软件采用模块化设计,预留接口,便于后续增加功能(如衣物烘干、杀菌、语音控制等),提升系统的适配性。
- 易用性原则:OLED屏幕显示清晰、直观,按键操作简洁,APP界面友好,便于用户快速上手,无需专业知识即可操作。
- 安全性原则:完善防盗报警功能,确保用户家庭安全;优化电路设计,避免短路、漏电等安全隐患,保障系统使用安全。
2.2 系统功能需求分析
结合用户需求和市场调研,本智能晾衣架的功能需求主要分为以下8个方面,与用户提供的功能要求一致,具体如下:
- 主控功能:采用STM32F103C8T6单片机作为主控单元,负责接收各传感器的数据,处理用户操作指令和APP指令,控制各模块协同工作,是整个系统的核心。
- 环境监测功能:通过DHT11温湿度传感器采集环境温湿度数据,通过光敏传感器采集光照强度数据,通过雨滴传感器检测是否有雨,通过光电红外传感器检测是否有人靠近或闯入,为自动控制和防盗报警提供数据支撑。
- 显示功能:通过OLED屏幕实时显示当前时间、环境参数(温湿度、光照强度、雨水状态)、工作模式(自动/手动)、晾衣架状态(开启/关闭)及参数设置信息,为用户提供直观的信息展示。
- 模式切换功能:通过功能按键可自由切换自动模式和手动模式,切换过程中系统状态平稳过渡,不影响其他模块工作。
- 自动模式功能:自动模式下,定时时间内晾衣架自动开启;若检测到光照强度低于设定阈值、湿度高于设定阈值、有雨或有人靠近,自动关闭晾衣架;定时时间外晾衣架始终关闭;防盗开关开启时,有人闯入触发蜂鸣器报警。
- 手动模式功能:手动模式下,通过按键可直接控制晾衣架的升降(开启/关闭)和LED指示灯的开关,操作灵活便捷。
- 参数设置功能:通过按键进入系统设置界面,可修改当前时间、温湿度阈值、光照强度阈值、定时晾衣时间(开启和关闭时间)及防盗开关状态,参数修改后自动保存,掉电不丢失。
- APP远程控制功能:通过ESP8266 WIFI模块与手机APP建立连接,APP可实时接收环境参数数据,下发晾衣架升降、灯光开关、模式切换、参数修改等控制指令,实现远程操控。
2.3 系统总体架构设计
本智能晾衣架系统采用模块化设计,总体架构分为硬件层和软件层,各模块相互独立又协同工作,确保系统的稳定性和可维护性,同时便于后续功能扩展。
2.3.1 硬件层架构
硬件层以STM32F103C8T6单片机为核心,分为以下8个模块,各模块的功能和连接关系如下:
- 主控模块:STM32F103C8T6单片机,作为系统的核心,负责数据处理、指令发送和模块控制,接收各传感器的数据和用户指令,控制执行模块、显示模块、报警模块等协同工作。
- 环境监测模块:包括DHT11温湿度传感器、光敏传感器、雨滴传感器、光电红外传感器,分别负责采集温湿度、光照强度、雨水状态、人体靠近/闯入数据,通过对应的接口与主控模块连接,将采集到的数据传输给主控单元。
- 显示模块:OLED屏幕,通过I2C接口与主控模块连接,用于显示当前时间、环境参数、工作模式、晾衣架状态及参数设置信息,为用户提供直观的信息展示。
- 执行模块:包括步进电机和LED指示灯,步进电机用于控制晾衣架的升降(开启/关闭),LED指示灯用于指示系统工作状态(如模式指示、电源指示),均由主控模块控制。
- 报警模块:有源蜂鸣器,用于防盗报警和异常提示,当防盗开关开启且有人闯入时,主控单元控制蜂鸣器发出持续报警声,提醒用户。
- 通信模块:ESP8266 WIFI模块,通过UART接口与主控模块连接,负责与手机APP进行数据交互,实现环境参数上传和控制指令接收。
- 控制模块:功能按键,包括模式切换键、手动控制键、设置键、确认键、调节键等,用于用户手动操作,向主控单元发送操作指令。
- 电源模块:为整个系统提供稳定的供电,采用5V直流电源供电,通过稳压电路将电压转换为3.3V,满足STM32单片机和各模块的供电需求,同时预留备用电源接口,确保系统不间断工作。
2.3.2 软件层架构
软件层采用模块化设计,基于Keil MDK开发环境,以C语言为开发语言,主要分为以下7个模块,各模块协同工作,实现系统的各项功能:
- 主程序模块:负责初始化各模块,调度各功能模块协同工作,处理异常情况,确保系统正常运行,是软件系统的核心。
- 环境监测模块:负责控制各传感器采集环境数据,对采集到的数据进行滤波、校准处理,确保数据的准确性,将处理后的数据传输给主程序模块。
- 显示控制模块:负责控制OLED屏幕的显示内容,根据主控单元的指令,实时更新时间、环境参数、工作模式、晾衣架状态等信息,确保显示清晰、准确。
- 模式控制模块:负责处理模式切换逻辑,实现自动模式和手动模式的切换,根据当前模式,调用对应的控制逻辑,确保模式切换流畅、稳定。
- 参数设置模块:负责处理用户的参数设置操作,接收用户通过按键或APP发送的参数修改指令,更新系统参数并保存,确保参数修改后生效且掉电不丢失。
- WIFI通信模块:负责处理ESP8266 WIFI模块的通信逻辑,实现与手机APP的数据交互,接收APP发送的控制指令,上传环境参数和系统状态数据。
- 报警控制模块:负责处理防盗报警逻辑,检测光电红外传感器的信号,当防盗开关开启且检测到有人闯入时,控制蜂鸣器发出报警声,同时将报警信息上传至APP。
2.4 系统工作流程设计
本智能晾衣架系统的工作流程如下,确保各项功能有序执行,各模块协同工作:
- 系统上电后,主控单元STM32F103C8T6初始化各模块(包括传感器、OLED屏幕、步进电机、ESP8266 WIFI模块、蜂鸣器、LED指示灯等),完成系统自检,加载默认参数(阈值、定时时间、防盗开关状态等)。
- 自检正常后,系统默认进入手动模式,OLED屏幕显示当前时间、环境参数初始值、工作模式(手动)、晾衣架状态(关闭);若自检异常,LED指示灯闪烁,蜂鸣器发出短鸣报警,提示用户检查硬件。
- 系统进入正常工作状态,各传感器实时采集环境数据(温湿度、光照强度、雨水状态、人体靠近/闯入信息),采集到的数据经处理后,实时显示在OLED屏幕上,并通过ESP8266 WIFI模块上传至手机APP(若已连接)。
- 用户可通过按键切换工作模式:
- 自动模式:系统根据当前时间判断是否在定时晾衣时间内,若在定时时间内,自动控制步进电机开启晾衣架;实时检测环境参数,若光照强度低于阈值、湿度高于阈值、检测到雨水或人体靠近,立即控制步进电机关闭晾衣架;若不在定时时间内,晾衣架始终保持关闭状态;若防盗开关开启,检测到有人闯入,控制蜂鸣器报警,并将报警信息上传至APP。
- 手动模式:用户通过按键控制晾衣架的升降(开启/关闭)和LED指示灯的开关,系统忽略自动控制逻辑,仅响应用户的手动操作。
- 用户可通过按键进入参数设置界面,修改当前时间、各环境参数阈值、定时晾衣时间及防盗开关状态,参数修改后自动保存,OLED屏幕实时更新显示修改后的参数,同时将修改后的参数上传至APP。
- ESP8266 WIFI模块持续处于待连接状态,当手机APP发起连接请求时,建立WIFI通信链路,主控单元将环境参数、系统状态(模式、晾衣架状态、防盗开关状态)实时上传到APP,同时接收APP发送的控制指令(模式切换、晾衣架控制、灯光控制、参数修改等),执行相应的操作,并更新系统状态。
- 系统持续循环执行上述操作,实时更新环境数据、响应用户操作和APP指令,确保各项功能稳定运行。
3 系统硬件设计
3.1 硬件总体设计
本系统硬件设计以STM32F103C8T6单片机为核心,整合各功能模块,实现智能晾衣架的各项功能。硬件总体设计的核心思路是:选用性价比高、稳定性好的元器件,采用模块化电路设计,简化接线,降低硬件故障率,同时预留接口,便于后续扩展;优化电路布局,减少信号干扰,确保系统稳定运行。
硬件总体框图如图3-1所示(此处可插入硬件总体框图,附录中提供详细原理图),各模块通过对应的接口与主控单元连接,协同工作,完成环境采集、数据处理、显示、控制、通信和报警等功能。
3.2 主控单元设计(STM32F103C8T6)
3.2.1 元器件选型依据
STM32F103C8T6是ST公司推出的一款基于ARM Cortex-M3内核的32位单片机,具有以下优点,符合本系统的设计需求,是智能晾衣架主控单元的理想选择:
- 性能稳定:工作频率最高可达72MHz,具备较强的数据处理能力,能够满足多传感器数据采集、多模块控制和WIFI通信的数据处理需求。
- 外设丰富:拥有多个GPIO口、UART接口、I2C接口、SPI接口等,可直接与各功能模块(传感器、OLED、ESP8266、步进电机等)连接,无需额外扩展接口芯片,简化硬件设计。
- 成本低廉:性价比高,市场供应充足,适合批量生产,能够降低系统的整体成本,符合国内家庭的消费需求。
- 开发便捷:拥有成熟的开发环境(Keil MDK)和丰富的技术资料,便于软件编程和系统调试,降低开发难度。
- 功耗较低:支持多种低功耗模式,适合长时间工作,减少电源消耗,延长系统的使用时间。
3.2.2 主控单元电路设计
STM32F103C8T6单片机的最小系统电路是整个硬件系统的基础,包括电源电路、复位电路和晶振电路,具体设计如下,确保单片机稳定工作:
- 电源电路:采用5V直流电源供电,通过AMS1117-3.3V稳压芯片将5V电压转换为3.3V,为单片机和各模块提供稳定的3.3V供电。电源输入端并联一个10μF电解电容和一个0.1μF陶瓷电容,用于滤波,减少电源噪声,确保电路稳定工作;稳压芯片输出端也并联一个10μF电解电容和一个0.1μF陶瓷电容,进一步滤除纹波,保障供电稳定。
- 复位电路:采用手动复位和上电复位相结合的方式,复位引脚(NRST)通过一个10kΩ电阻接3.3V电源,通过一个0.1μF电容接地,同时连接一个复位按键。按下按键时,复位引脚接地,实现手动复位;上电时,电容充电,实现上电复位,确保单片机正常启动,避免因复位异常导致系统故障。
- 晶振电路:采用8MHz外部晶振,晶振两端分别连接单片机的OSC_IN和OSC_OUT引脚,同时各串联一个22pF电容接地,为单片机提供稳定的时钟信号,确保单片机的时序准确,保障各模块的协同工作。晶振电路的设计直接影响系统的稳定性,因此选用高精度晶振,减少时钟误差。
主控单元的GPIO口分配如下(根据实际接线调整,确保各模块互不干扰):
- DHT11温湿度传感器:连接PA0引脚(GPIO输入),用于接收温湿度数据。
- 光敏传感器:连接PA1引脚(GPIO输入),用于采集光照强度数据。
- 雨滴传感器:连接PA2引脚(GPIO输入),用于检测是否有雨。
- 光电红外传感器:连接PA3引脚(GPIO输入),用于检测人体靠近/闯入。
- OLED屏幕:SDA引脚连接PB0,SCL引脚连接PB1(I2C接口),用于控制屏幕显示。
- 步进电机:IN1-IN4引脚分别连接PB2-PB5(GPIO输出),用于控制步进电机转动,实现晾衣架升降。
- LED指示灯:连接PB6引脚(GPIO输出),用于指示系统工作状态。
- 有源蜂鸣器:连接PB7引脚(GPIO输出),用于防盗报警和异常提示。
- ESP8266 WIFI模块:TX引脚连接PB8,RX引脚连接PB9(UART接口),用于WIFI通信。
- 功能按键:模式切换键(PA4)、手动控制键(PA5)、设置键(PA6)、确认键(PA7)、调节键(PC0-PC1),用于用户手动操作。
3.3 环境监测模块设计
3.3.1 DHT11温湿度检测模块
DHT11是一款低成本、高精度的数字温湿度传感器,采用单总线通信方式,仅需一根GPIO线即可实现与主控单元的通信,适合用于环境温湿度的实时监测。其测量范围为温度0-50℃,误差±2℃;湿度20%-90%RH,误差±5%RH,能够满足智能晾衣架的环境监测需求,准确反映环境温湿度变化。
DHT11的电路设计简单,VCC引脚接3.3V电源,GND引脚接地,DATA引脚连接STM32的PA0引脚,同时在DATA引脚与VCC引脚之间串联一个10kΩ的上拉电阻,确保通信稳定,避免信号干扰。DHT11采用单总线协议,主控单元通过发送起始信号、接收响应信号和数据信号的方式,读取温湿度数据。需要注意的是,DHT11对时序精度要求严苛,必须采用微秒级精准延时,直接依赖HAL库的通用延时函数无法满足要求,需采用NOP循环实现精准延时,确保通信可靠,避免数据读取错误。
3.3.2 光敏传感器模块(光照强度检测)
光敏传感器采用光敏电阻作为检测元件,光敏电阻的阻值会随着光照强度的变化而变化,光照强度越强,阻值越小;光照强度越弱,阻值越大。通过检测光敏电阻的阻值变化,可间接获取环境光照强度,为自动模式下晾衣架的控制提供数据支撑。
光敏传感器的电路设计如下:VCC引脚接3.3V电源,GND引脚接地,OUT引脚通过一个10kΩ电阻连接STM32的PA1引脚,同时光敏电阻与一个10kΩ电阻串联在VCC和GND之间,构成分压电路。当光照强度变化时,光敏电阻的阻值变化,导致OUT引脚的电压发生变化,主控单元通过ADC采集OUT引脚的电压值,经过换算得到环境光照强度。为了提高检测精度,在电路中增加一个0.1μF电容,用于滤波,减少信号干扰。
3.3.3 雨滴传感器模块(雨水检测)
雨滴传感器采用电阻式检测原理,传感器表面有两个电极,当有雨水落在传感器表面时,电极之间的电阻减小,导电性能增强;无雨水时,电极之间的电阻很大,导电性能差。通过检测电极之间的电阻变化,可判断是否有雨,避免衣物被淋湿。
雨滴传感器的电路设计如下:VCC引脚接3.3V电源,GND引脚接地,DO引脚(数字输出)连接STM32的PA2引脚,AO引脚(模拟输出)可悬空(本系统采用数字输出模式,简化设计)。当有雨水时,DO引脚输出低电平;无雨水时,DO引脚输出高电平,主控单元通过检测PA2引脚的电平变化,判断是否有雨,响应速度快,检测灵敏。同时,传感器表面采用防水设计,避免雨水渗入内部损坏元器件。
3.3.4 光电红外传感器模块(人体靠近/闯入检测)
光电红外传感器采用反射式红外传感器,由红外发射管和红外接收管组成,当有人靠近或闯入时,红外光线被人体遮挡,接收管接收不到红外信号,输出电平发生变化;无人靠近时,接收管接收到发射管的光线,输出电平保持稳定。该传感器响应快、灵敏度高,适合用于人体靠近检测和防盗报警。
光电红外传感器的电路设计如下:VCC引脚接3.3V电源,GND引脚接地,OUT引脚连接STM32的PA3引脚。当没有人体遮挡时,红外接收管接收到发射管的光线,OUT引脚输出高电平;当有人体遮挡时,接收管接收不到光线,OUT引脚输出低电平。主控单元通过检测PA3引脚的电平变化,判断是否有人靠近或闯入,为自动模式控制和防盗报警提供依据。为了避免干扰,采用多次采集取平均值的方式,提高检测的准确性。
3.4 显示模块设计(OLED屏幕)
本系统采用0.96英寸OLED屏幕,分辨率为128×64,采用I2C通信方式,具有显示清晰、功耗低、体积小、响应快、视角广等优点,适合用于智能晾衣架的信息显示,能够清晰展示当前时间、环境参数、工作模式等信息。
OLED屏幕的电路设计如下:VCC引脚接3.3V电源,GND引脚接地,SDA引脚(数据线)连接STM32的PB0引脚,SCL引脚(时钟线)连接STM32的PB1引脚。I2C通信方式仅需两根线即可实现与主控单元的通信,简化了硬件接线,降低了硬件故障率。主控单元通过发送I2C指令,控制OLED屏幕的显示内容,包括字符、数字和简单图形的显示,具体的显示控制代码将在软件设计章节详细介绍。OLED屏幕的初始化完成后,实时更新显示内容,确保用户能够及时了解系统状态和环境信息。
3.5 执行模块设计
3.5.1 步进电机模块(晾衣架升降控制)
步进电机采用42步进电机,具有精度高、扭矩大、运行稳定、控制简单等优点,能够精确控制转动角度,实现晾衣架的平稳升降,满足智能晾衣架的控制需求。步进电机通过驱动模块(ULN2003)与主控单元连接,ULN2003是一款高耐压、大电流复合晶体管阵列,能够驱动步进电机正常工作,保护主控单元GPIO口。
步进电机的电路设计如下:ULN2003驱动模块的VCC引脚接5V电源,GND引脚接地,IN1-IN4引脚分别连接STM32的PB2-PB5引脚,由主控单元输出控制信号;驱动模块的OUT1-OUT4引脚连接步进电机的对应引脚,为步进电机提供驱动信号。主控单元通过发送不同时序的控制信号,控制步进电机的转动方向和转动角度,实现晾衣架的升降(正转控制晾衣架下降开启,反转控制晾衣架上升关闭)。同时,在步进电机两端并联一个二极管,用于吸收反电动势,保护驱动模块和步进电机。
3.5.2 LED指示灯模块(状态指示)
LED指示灯采用普通红色LED灯,用于指示系统的工作状态,如电源指示、模式指示、报警指示等,便于用户快速了解系统状态。LED指示灯具有功耗低、响应快、寿命长等优点,适合用于状态指示。
LED指示灯的电路设计如下:LED灯的阳极通过一个220Ω电阻连接STM32的PB6引脚,阴极接地。当主控单元输出高电平时,LED灯点亮;输出低电平时,LED灯熄灭。通过控制LED灯的亮灭和闪烁频率,指示不同的系统状态,例如:电源正常时常亮,模式切换时闪烁,报警时快速闪烁。
3.6 报警模块设计(有源蜂鸣器)
有源蜂鸣器是一种自带振荡电路的蜂鸣器,只需接入电源和控制信号,即可发出固定频率的报警声,具有结构简单、使用方便、音量大等优点,适合用于智能晾衣架的防盗报警和异常提示。本系统采用5V有源蜂鸣器,当防盗开关开启且有人闯入时,发出持续的报警声,提醒用户注意安全。
有源蜂鸣器的电路设计如下:VCC引脚接5V电源,GND引脚通过一个NPN三极管(PNP三极管也可)接地,三极管的基极通过一个1kΩ电阻连接STM32的PB7引脚。当主控单元输出高电平时,三极管导通,蜂鸣器通电发出报警声;当输出低电平时,三极管截止,蜂鸣器停止发声。这种设计可以避免主控单元GPIO口直接驱动蜂鸣器,保护GPIO口,同时增强蜂鸣器的发声功率,确保报警声清晰可辨。
3.7 通信模块设计(ESP8266 WIFI模块)
ESP8266 WIFI模块是一款低成本、高性能的无线通信模块,支持WIFI 802.11 b/g/n协议,采用UART串口通信方式,具有通信稳定、功耗低、传输距离远(最大100m)、配置简单等优点,适合用于智能晾衣架与手机APP的远程通信,实现环境参数上传和控制指令接收。
ESP8266 WIFI模块的电路设计如下:VCC引脚接3.3V电源(注意:ESP8266模块不能直接接5V电源,否则会损坏模块),GND引脚接地,TX引脚(模块发送端)连接STM32的PB8引脚,RX引脚(模块接收端)连接STM32的PB9引脚,RST引脚(复位引脚)可通过一个10kΩ电阻接3.3V电源(默认常高,复位时拉低),IO0引脚悬空(用于烧录程序时切换模式,正常工作时无需连接)。ESP8266模块初始化后,通过AT指令配置WIFI连接(连接用户家庭WIFI),与手机APP建立TCP/UDP通信链路,实现数据交互。主控单元通过UART接口向模块发送数据(环境参数、系统状态),模块将数据传输给手机APP;同时,手机APP发送的控制指令通过模块传输给主控单元,主控单元执行相应的操作。
3.8 控制模块设计(功能按键)
功能按键采用轻触式按键,具有手感好、寿命长、体积小等优点,用于用户手动操作,向主控单元发送操作指令,实现模式切换、手动控制、参数设置等功能。本系统共设置6个功能按键,分别为模式切换键、手动控制键(晾衣架升降)、设置键、确认键、调节加键、调节减键,布局合理,操作便捷。
功能按键的电路设计如下:每个按键的一端接地,另一端通过一个10kΩ电阻连接STM32的对应GPIO引脚(PA4-PA7、PC0-PC1),同时GPIO引脚通过内部上拉电阻接3.3V电源。当按键未按下时,GPIO引脚为高电平;当按键按下时,GPIO引脚接地,变为低电平。主控单元通过检测GPIO引脚的电平变化,判断按键是否按下,并识别按键类型,执行相应的操作。为了消除按键抖动,在软件设计中加入消抖处理,确保按键操作的准确性。
3.9 电源模块设计
本系统采用5V直流电源供电,电源模块的核心功能是将输入的5V电压转换为3.3V稳定电压,为STM32单片机、传感器、OLED屏幕、ESP8266模块等提供可靠的供电;同时为步进电机、有源蜂鸣器提供5V供电,确保各模块正常工作。
电源模块的电路设计如下:输入电压(5V)通过一个二极管连接到AMS1117-3.3V稳压芯片的输入端(IN引脚),二极管用于防止电源反接,保护电路,避免因电源接反而损坏元器件;AMS1117-3.3V的输出端(OUT引脚)输出3.3V电压,连接到各需要3.3V供电的模块的VCC引脚;输入端和输出端分别并联一个10μF电解电容和一个0.1μF陶瓷电容,用于滤波,减少电源噪声,确保电压稳定。同时,电源模块预留锂电池接口,可接入3.7V锂电池,通过充电模块充电,便于在没有市电的情况下使用,确保系统不间断工作。
3.10 硬件接线图与PCB设计
根据上述各模块的电路设计,绘制系统硬件接线图,明确各元器件之间的连接关系,确保接线正确、合理,避免出现短路、断路等问题。硬件接线图采用Altium Designer软件绘制,清晰标注各引脚的连接关系、元器件型号和参数,便于硬件焊接和调试。
PCB设计采用双层PCB板,遵循PCB设计规范,合理布局各元器件,缩短信号线长度,减少干扰;电源线和地线尽量粗,确保供电稳定;各模块之间的连线尽量短,避免信号衰减和干扰;敏感元器件(如传感器、ESP8266模块)与干扰源(如步进电机、蜂鸣器)分开布局,减少电磁干扰。PCB板预留焊接孔和接口,便于元器件焊接和后续扩展,同时设计散热片,确保芯片工作时的散热效果,提高系统的稳定性。PCB设计完成后,生成Gerber文件,用于PCB板的制作。
4 系统软件设计
4.1 软件总体设计思路
本系统软件采用模块化设计思路,基于Keil MDK5开发环境,以C语言为开发语言,围绕STM32F103C8T6单片机展开编程。软件设计的核心思路是:将系统的各项功能拆分为独立的模块,每个模块负责实现特定的功能,通过主程序调度各模块协同工作,确保系统的稳定性和可维护性;同时优化程序逻辑,减少CPU占用率,提高系统响应速度。
软件总体流程如下:系统上电后,首先进行各模块的初始化(包括GPIO口初始化、UART初始化、I2C初始化、ADC初始化、RTC初始化、各传感器初始化、ESP8266 WIFI模块初始化等),完成系统自检,加载默认参数;自检通过后,进入主循环,主循环中依次执行数据采集、数据处理、显示更新、模式判断、控制执行、WIFI通信、按键处理等操作,同时响应用户的按键操作和APP指令,确保各项功能有序执行。
软件模块化设计的优点是:各模块相互独立,便于代码的编写、调试和维护;当需要修改某一功能时,只需修改对应的模块代码,不影响其他模块的正常工作;便于后续功能扩展,可根据需求增加新的模块(如语音控制、烘干控制等)。
4.2 开发环境搭建
4.2.1 硬件开发环境
硬件开发环境主要包括:STM32F103C8T6最小系统板、各功能模块(DHT11、光敏、雨滴、光电红外传感器、ESP8266 WIFI模块、OLED屏幕、步进电机、蜂鸣器、LED指示灯、功能按键)、USB转串口模块、电脑、示波器(用于调试电路时序)、焊接工具(用于PCB板焊接)、5V直流电源等。通过USB转串口模块将STM32最小系统板与电脑连接,实现程序的下载和调试;示波器用于检测传感器通信时序和电路信号,确保电路工作正常;焊接工具用于PCB板的元器件焊接和接线。
4.2.2 软件开发环境
软件开发环境采用Keil MDK5,具体搭建步骤如下,确保开发环境能够正常支持STM32F103C8T6单片机的编程和调试:
- 安装Keil MDK5软件,选择合适的安装路径,按照提示完成软件安装,安装过程中可选择默认组件,无需额外配置。
- 安装STM32F103系列单片机的芯片包(Keil.STM32F1xx_DFP),用于支持STM32F103C8T6单片机的编程和调试,芯片包可从Keil官网下载,安装后重启Keil MDK5即可生效。
- 创建新的工程,打开Keil MDK5软件,点击“Project”->“New μVision Project”,输入工程名称和保存路径,选择STM32F103C8T6芯片,点击
更多推荐



所有评论(0)