基于STM32的机智云版智能语音风扇设计

摘要

随着智能家居技术的快速发展,传统风扇已难以满足用户对便捷性、智能化、个性化的使用需求。传统风扇多采用手动机械控制,存在操作繁琐、功能单一、无法远程管控、缺乏智能联动等弊端,难以适配现代家庭的智能化生活场景。本文设计了一款基于STM32F103C8T6单片机的机智云版智能语音风扇,整合温湿度采集、人体检测、语音控制、自动/手动/语音三种模式切换、定时控制、机智云APP远程管控等核心功能,实现风扇的智能化、便捷化控制。该系统以STM32F103C8T6为核心控制单元,通过DHT11传感器采集环境温湿度,光电红外传感器检测人体存在状态,OLED屏幕实时显示关键参数,SNR8016语音模块实现语音指令识别与控制,ULN2003驱动步进电机模拟风扇摇头,TB6612驱动模块控制风扇风速,ESP8266-01S WIFI模块接入机智云平台,实现手机APP远程交互。系统支持自动、手动、语音三种工作模式,自动模式下根据人体存在状态和环境温度自动调节风扇开关与风速,手动模式下通过按键控制风速、摇头和LED灯,语音模式下通过语音指令实现各类操作,同时具备定时关闭、高温报警功能。测试结果表明,该系统运行稳定、响应迅速、控制精准,各项功能均满足设计要求,操作便捷、智能化程度高,能够有效提升用户使用体验,具有较高的实际应用价值与推广前景。

关键词:STM32F103C8T6;智能语音风扇;机智云APP;WIFI通信;语音控制;自动调节

第一章 绪论

1.1 研究背景与意义

在智能家居快速普及的当下,风扇作为家庭生活中不可或缺的制冷设备,其智能化升级成为行业发展的必然趋势。传统风扇多采用手动旋钮或按键控制,仅能实现简单的开关、风速调节功能,操作繁琐,且无法根据环境变化和用户需求自动调整,缺乏远程控制与智能联动能力,难以适配现代家庭的智能化生活场景。

随着嵌入式技术、传感器技术、语音识别技术与物联网技术的不断融合,智能风扇逐渐成为市场主流。智能风扇能够实现环境参数采集、自动调节、语音控制、远程管控等功能,极大提升了用户使用的便捷性与舒适性。基于此,本文设计一款基于STM32的机智云版智能语音风扇,整合多种智能化功能,解决传统风扇的弊端,结合语音控制与远程管控,实现风扇的全场景智能适配,不仅能够满足用户的个性化使用需求,还能推动智能家居设备的普及与发展,具有重要的理论研究意义与实际应用价值。

1.2 国内外研究现状

国外智能风扇产业起步较早,技术体系较为成熟,产品多集成了环境感知、自动调节、语音控制、远程监控等功能,部分高端产品还支持AI学习、多设备联动等特性,通过WIFI或蓝牙接入云平台,实现手机APP远程管控。国外产品智能化程度高、运行稳定,但价格昂贵,且部分语音识别功能与中文语境适配性不足,难以在国内普通家庭中普及。

国内智能风扇市场近年来发展迅速,众多企业与科研机构纷纷布局相关产品,产品性价比不断提升,功能逐渐完善。目前国内产品多以STM32系列单片机为控制核心,结合传感器与无线通信模块,实现基本的自动调节与远程控制功能,但部分产品存在语音识别准确率低、联动逻辑不完善、远程通信不稳定、模式切换不顺畅等问题,且缺乏定时控制、高温报警等实用功能,难以满足用户的全方位需求。机智云作为国内领先的物联网云平台,具有操作便捷、兼容性强、开发成本低等优势,将其与STM32单片机、语音模块结合,设计一款功能全面、适配性强的智能语音风扇,具有广阔的市场前景。

1.3 研究内容与目标

本文的主要研究内容是设计一款基于STM32F103C8T6的机智云版智能语音风扇,具体包括系统总体方案设计、硬件选型与电路设计、软件逻辑设计、系统调试与测试等方面,实现预设的所有功能,确保系统运行稳定、操作便捷,且不包含任何代码实现。

研究目标如下:

  • 完成系统硬件选型与电路设计,严格按照给定的元器件清单选用适配的元器件,确保各模块协同工作,实现环境温湿度采集、人体检测、语音识别、风扇控制、屏幕显示、WIFI通信等功能;
  • 设计合理的软件逻辑,实现自动、手动、语音三种工作模式的顺畅切换,各模式下完成对应的控制功能,确保控制精准、响应迅速;
  • 实现SNR8016语音模块的语音识别与控制功能,能够准确识别风速调节、模式切换、摇头控制等语音指令,并执行相应动作;
  • 实现ESP8266-01S WIFI模块与机智云平台的稳定连接,完成环境数据上报与控制指令下发,实现手机APP远程查看环境信息、模式切换、控制外设等功能;
  • 通过OLED屏幕实时、清晰地显示环境温湿度、人体存在状态、风扇工作模式、风速、定时倒计时等信息,支持通过按键设置定时时间;
  • 实现定时功能与高温报警功能,定时功能可设置倒计时并自动关闭风扇,自动模式下温度超标时触发蜂鸣器报警;
  • 通过系统调试与测试,确保系统运行稳定、语音识别准确、控制可靠,各项功能均能正常实现,满足用户的实际使用需求。

1.4 论文结构安排

本文共分为6章,具体结构安排如下:

  • 第一章为绪论,阐述研究背景与意义、国内外研究现状、研究内容与目标以及论文结构安排;
  • 第二章为系统总体方案设计,介绍系统的整体架构、设计原则以及功能模块划分,明确各模块的核心功能与工作逻辑;
  • 第三章为系统硬件设计,详细介绍各元器件的选型依据、各功能模块的电路设计以及硬件整体连接关系;
  • 第四章为系统软件设计,阐述软件设计思路、主程序流程以及各功能模块的逻辑实现,重点说明语音识别、机智云APP接入的实现方法(不包含代码);
  • 第五章为系统调试与测试,介绍调试环境、调试过程以及各项功能的测试结果与分析,验证系统的可行性与稳定性;
  • 第六章为总结与展望,总结本文的研究成果,分析系统存在的不足,并对未来的改进方向进行展望。

第二章 系统总体方案设计

2.1 系统整体架构

本智能语音风扇系统以STM32F103C8T6单片机为核心控制单元,采用分层设计理念,分为硬件层、软件层与WIFI通信层三个部分,整体架构如图2-1所示(此处可插入架构图,论文中可预留图位)。

硬件层是系统的基础,主要包括主控单元、温湿度采集模块、人体检测模块、语音模块、显示模块、风扇控制模块(含风速与摇头)、按键模块、LED灯模块、报警模块、WIFI通信模块、电源模块,负责环境参数采集、语音识别、指令执行、数据显示、WIFI传输、报警提醒;软件层运行于STM32单片机中,负责处理传感器采集的数据、解析语音指令、按键指令与机智云APP下发的指令,控制各执行模块动作,实现模式切换、定时控制、自动调节、高温报警等功能,并与语音模块、WIFI模块进行数据交互;WIFI通信层采用ESP8266-01S WIFI模块,负责实现单片机与机智云平台的无线通信,完成环境数据上报与控制指令下发,为用户提供远程监测与控制入口,通过机智云APP实现手机与系统的联动。

2.2 系统设计原则

为确保系统的实用性、可靠性、经济性与可扩展性,结合智能风扇的使用场景与用户需求,本次设计遵循以下原则:

  • 实用性原则:贴合用户实际使用需求,实现语音控制、自动调节、远程管控、定时控制等核心功能,操作简洁易懂,无需专业知识即可上手使用,适配普通家庭场景;
  • 可靠性原则:选用性能稳定、口碑良好的元器件,优化电路设计与软件逻辑,减少故障发生,确保系统长期稳定运行,尤其保证语音识别的准确率与控制的可靠性,避免误操作;
  • 经济性原则:在满足功能需求与性能要求的前提下,选用低成本、高性价比的元器件,降低系统整体成本,便于批量推广与普通家庭使用;
  • 可扩展性原则:系统设计预留一定的接口,便于后续增加功能模块(如AI语音交互、多设备联动等),适应智能家居设备的发展趋势;
  • 兼容性原则:确保ESP8266-01S WIFI模块与机智云平台、手机APP的良好兼容性,SNR8016语音模块与主控单元的适配性,保证语音识别、远程通信稳定顺畅。

2.3 系统功能模块划分

根据系统的设计目标与功能需求,结合给定的元器件清单,将系统划分为以下11个功能模块,各模块协同工作,实现智能语音风扇的全部预设功能:

  1. 主控模块:以STM32F103C8T6单片机为核心,是系统的“大脑”,负责接收各模块的反馈信号,解析语音指令、按键指令与机智云APP指令,控制各执行模块动作,处理检测数据,实现各模块的协同工作;
  1. 温湿度采集模块:由DHT11温湿度传感器组成,负责采集环境中的温度与湿度数据,为系统自动调节风扇风速提供数据支撑;
  1. 人体检测模块:由光电红外传感器组成,负责检测当前环境是否有人,为自动模式下风扇的开关控制提供依据;
  1. 语音模块:由SNR8016语音模块组成,负责接收用户语音指令,进行识别与解析,并将解析后的指令发送给主控单元,实现语音控制功能;
  1. 显示模块:采用OLED屏幕,负责实时显示环境温湿度、人体存在状态(有/无人)、风扇工作模式(自动/手动/语音)、风速等级、定时倒计时、LED灯状态等信息,方便用户现场查看;
  1. 风扇控制模块:由TB6612电机驱动模块、ULN2003步进电机驱动芯片、风扇模块、步进电机组成,TB6612驱动模块控制风扇风速(多档位调节),ULN2003驱动芯片控制步进电机旋转,模拟风扇摇头动作;
  1. 按键模块:负责实现模式切换(自动/手动/语音)、风速调节、摇头控制、LED灯开关、定时时间设置(加/减)、定时功能开启/关闭等操作,是用户与系统现场交互的主要方式;
  1. LED灯模块:由LED灯组成,用于辅助照明,可通过按键、语音指令或机智云APP控制其开关;
  1. 报警模块:由有源蜂鸣器组成,自动模式下当环境温度超过预设最大温度时,自动发出报警声音,提醒用户注意环境温度;
  1. WIFI通信模块:采用ESP8266-01S WIFI模块,负责实现单片机与机智云平台的无线通信,上传环境温湿度、人体状态、风扇工作状态等数据,接收机智云APP下发的控制指令,实现远程监测与控制;
  1. 电源模块:为整个系统提供稳定的供电,确保各模块正常工作,采用5V电源输入,通过稳压芯片转换为3.3V,为单片机、OLED屏幕、传感器、语音模块等模块供电。

2.4 系统工作流程

系统上电后,首先完成各模块的初始化,包括单片机外设、DHT11传感器、光电红外传感器、SNR8016语音模块、OLED屏幕、ESP8266-01S WIFI模块、电机驱动模块等的初始化;初始化完成后,OLED屏幕显示系统启动信息,ESP8266-01S模块自动连接指定WIFI并接入机智云平台,语音模块进入待命状态,系统默认进入自动模式,风扇、LED灯处于关闭状态,定时功能处于未开启状态。

自动模式下,系统实时采集环境温湿度与人体信号,根据预设逻辑自动调节风扇:检测到无人时,风扇保持关闭状态;检测到有人时,根据环境温度调节风速(温度越高,风速越大),用户可通过按键或语音指令开启摇头功能,开启定时功能后,倒计时结束时自动关闭风扇;当温度超过预设最大值时,启动有源蜂鸣器报警,直至温度降至阈值以下。

用户可通过按键或语音指令切换至手动模式,手动模式下,系统停止自动调节,用户可通过按键调节风扇风速、控制摇头功能的开启/关闭、控制LED灯开关,也可设置定时时间并开启定时功能,定时结束后风扇自动关闭。

切换至语音模式时,语音模块持续接收用户语音指令,用户可通过语音指令实现模式切换、风速调节、摇头控制、LED灯开关、定时设置与开启/关闭等操作,指令执行后,系统实时更新OLED屏幕显示与机智云APP状态。

用户可通过手机机智云APP,实时查看环境温湿度、人体存在状态、风扇工作模式、风速、定时倒计时等信息,也可下发控制指令,切换系统模式、调节风速、控制摇头与LED灯开关、设置定时时间,指令下发后,系统立即响应并执行相应动作,同时将执行结果反馈至APP。

第三章 系统硬件设计

3.1 硬件选型

硬件选型是系统设计的基础,结合系统功能需求、性能要求与经济性原则,严格按照给定的元器件清单进行选型,确保各元器件适配性良好、性能稳定,具体选型如下:

3.1.1 主控单元:STM32F103C8T6单片机

STM32F103C8T6是ST公司推出的一款基于ARM Cortex-M3内核的32位微控制器,主频最高可达72MHz,拥有丰富的IO接口、ADC接口、UART接口、I2C接口等,能够满足系统多传感器数据采集、语音指令解析、电机控制、WIFI通信等需求。该单片机体积小、功耗低、性能稳定、性价比高,广泛应用于嵌入式系统设计中,非常适合作为本智能语音风扇系统的主控单元。其最小系统需满足供电、时钟、复位等基本需求,供电电压为3.3V,采用外部8MHz晶体振荡器提供时钟信号,配置复位按键实现系统复位功能,同时设置正确的启动模式,确保单片机正常工作。

3.1.2 温湿度采集模块:DHT11温湿度传感器

DHT11温湿度传感器采用单总线通信方式,能够同时采集环境的温度与湿度,测量范围为温度0-50℃、湿度20%-90%RH,精度满足日常环境监测需求,接线简单、成本低廉。该传感器通过DATA引脚与单片机进行串行单向数据传输,一次通讯时间约4ms,数据格式包含湿度、温度数据与校验和,确保数据采集的准确性,能够为系统自动调节风扇风速提供可靠的温度数据支撑。

3.1.3 人体检测模块:光电红外传感器

采用漫反射式光电红外传感器,当有人体靠近时,传感器输出低电平信号,无人靠近时输出高电平信号,通过GPIO接口与单片机连接,实现人体信号的检测。该传感器检测距离可调(通常为3-5米),抗干扰能力强,响应迅速,能够准确判断当前环境是否有人,为自动模式下风扇的开关控制提供依据,适合家庭场景使用。

3.1.4 语音模块:SNR8016语音模块

SNR8016语音模块是一款低成本、高性价比的语音识别与控制模块,支持离线语音识别,无需联网即可实现语音指令的识别与执行,识别准确率高、响应迅速。该模块支持自定义语音指令,可根据系统需求设置风速调节、模式切换、摇头控制等指令,通过UART接口与单片机连接,实现语音指令的传输与解析,体积小、功耗低,易于集成到系统中,能够满足用户语音控制的需求。

3.1.5 显示模块:OLED屏幕

选用0.96英寸OLED屏幕,采用I2C通信方式,具有分辨率高、功耗低、响应快、视角广、显示清晰等优点,能够实时显示环境温湿度、人体存在状态、风扇工作模式、风速等级、定时倒计时、LED灯状态等信息。该屏幕体积小、重量轻,便于安装在风扇控制面板上,方便用户现场查看系统状态与相关参数,无需额外驱动电路,接线简单,与STM32单片机适配性良好。

3.1.6 风扇控制模块元器件

  • TB6612电机驱动模块:是一款双路直流电机驱动芯片,工作电压为2.5V-13.5V,能够驱动直流电机的正反转与转速调节,用于控制风扇模块的风速(多档位调节)。该模块通过GPIO接口与单片机连接,单片机输出PWM脉冲信号,调节风扇的转速,实现风速的分级控制,驱动能力强、运行稳定。
  • ULN2003步进电机驱动芯片:是一款高耐压、大电流的达林顿管阵列芯片,能够驱动步进电机正常工作,用于控制步进电机的旋转,模拟风扇摇头动作。该芯片通过GPIO接口与单片机连接,单片机输出控制信号,控制步进电机的旋转角度与速度,实现风扇摇头的启停与角度调节,接线简单、控制精准。
  • 风扇模块:选用小型直流风扇,工作电压为5V,通过TB6612电机驱动模块与单片机连接,由驱动模块控制其转速与启停,风速可根据系统指令实现多档位调节,体积小、功耗低、风力适中,适合家庭使用。
  • 步进电机:选用28BYJ48步进电机,工作电压为5V,通过ULN2003驱动芯片与单片机连接,旋转角度精准,能够实现风扇的左右摇头动作,转速可调,运行平稳、无噪音,适合模拟风扇摇头功能。

3.1.7 按键模块:独立按键

选用8个独立按键,分别用于模式切换(自动/手动/语音)、风速加、风速减、摇头控制(开启/关闭)、LED灯开关、定时加、定时减、定时功能开启/关闭,通过GPIO接口与单片机连接。按键采用高有效方式连接,无需额外添加下拉电阻,可通过软件配置单片机内部下拉电阻,实现按键信号的精准检测,操作简单、可靠,能够满足用户现场操作的需求。

3.1.8 LED灯模块:LED灯

选用普通LED灯,工作电压为3.3V,通过GPIO接口与单片机连接,串联一个220Ω限流电阻,保护LED灯与单片机IO口。LED灯用于辅助照明,可通过按键、语音指令或机智云APP控制其开关,亮度适中,能耗低,适合家庭场景使用。

3.1.9 报警模块:有源蜂鸣器

选用有源蜂鸣器,工作电压为3.3V,通过GPIO接口与单片机连接,当系统检测到环境温度超过预设最大值时,单片机输出控制信号,触发蜂鸣器发出连续的报警声音,提醒用户注意环境温度。该蜂鸣器无需额外驱动电路,响应迅速,音量可调,适合家庭场景的报警需求。

3.1.10 WIFI通信模块:ESP8266-01S模块

选用ESP8266-01S WIFI模块,支持WIFI 802.11 b/g/n协议,采用UART通信方式与单片机连接,能够实现与机智云平台的稳定无线通信,上传环境温湿度、人体状态、风扇工作状态等数据,接收机智云APP下发的控制指令。该模块体积小、功耗低、通信距离远(可达10米),配置简单,能够快速接入机智云平台,是实现远程控制的核心元器件。

3.1.11 电源模块:稳压模块

选用LM1117低压差线性调整器作为稳压芯片,将5V直流电源转换为3.3V稳定电压,为STM32单片机、OLED屏幕、DHT11传感器、光电红外传感器、SNR8016语音模块、ESP8266-01S模块等需3.3V供电的模块供电;同时保留5V电源输出,为TB6612驱动模块、ULN2003驱动芯片、风扇模块、步进电机、LED灯等需5V供电的模块供电。电源模块配置100nF旁路电容,滤除电源噪声,保证供电稳定性,避免电压波动影响系统运行。

3.2 硬件电路设计

系统硬件电路主要包括主控单元电路、温湿度采集模块电路、人体检测模块电路、语音模块电路、显示模块电路、风扇控制模块电路、按键模块电路、LED灯模块电路、报警模块电路、WIFI通信模块电路、电源模块电路,各电路相互独立又相互关联,通过导线连接形成完整的硬件系统,电路设计遵循简洁、可靠、抗干扰的原则,确保各模块稳定工作。

3.2.1 主控单元电路

STM32F103C8T6单片机最小系统电路包括供电电路、时钟电路、复位电路与启动模式配置电路。供电电路采用LM1117稳压芯片,将5V输入电压转换为3.3V稳定电压,为单片机供电,同时在供电引脚旁配置100nF旁路电容,滤除电源噪声;时钟电路采用外部8MHz晶体振荡器,搭配两个22pF匹配电容与1MΩ反馈电阻,为单片机提供稳定的时钟信号;复位电路采用轻触按键复位,利用单片机内部上拉电阻,无需额外添加上拉电阻,按下按键时实现系统复位;启动模式配置电路通过两个10kΩ电阻将BOOT0与BOOT1引脚下拉到地,默认设置为主Flash存储器启动模式,确保单片机上电后正常加载程序。

3.2.2 温湿度采集模块电路

DHT11温湿度传感器电路设计简洁,VCC引脚接3.3V电源,GND引脚接地,DATA引脚通过10kΩ上拉电阻连接到单片机的GPIO引脚,实现温湿度数据的采集。上拉电阻用于保证数据传输的稳定性,避免因信号不稳定导致数据采集错误,传感器的DATA引脚与单片机GPIO引脚之间串联一个1kΩ限流电阻,保护单片机IO口。

3.2.3 人体检测模块电路

光电红外传感器的VCC引脚接3.3V电源,GND引脚接地,OUT引脚连接到单片机的GPIO引脚,输出低电平表示有人体靠近,高电平表示无人靠近,实现人体信号的检测。传感器的OUT引脚与单片机GPIO引脚之间串联一个1kΩ限流电阻,保护单片机IO口,同时配置一个100nF电容,滤除信号噪声,提升检测的可靠性。

3.2.4 语音模块电路

SNR8016语音模块采用UART通信方式与单片机连接,模块的VCC引脚接3.3V电源,GND引脚接地,TXD引脚连接到单片机的RX引脚,RXD引脚连接到单片机的TX引脚,实现语音指令的传输与解析。模块的KEY引脚(唤醒引脚)连接到单片机的GPIO引脚,用于唤醒语音模块,确保语音模块在待命状态下低功耗运行;同时在模块电源引脚旁配置100nF旁路电容,保证模块供电稳定,避免通信干扰。

3.2.5 显示模块电路

OLED屏幕采用I2C通信方式,其SDA引脚与SCL引脚分别连接到单片机的两个GPIO引脚,VCC引脚接3.3V电源,GND引脚接地,无需额外驱动电路。通过I2C通信协议,单片机向OLED屏幕发送显示指令与数据,实现各类信息的实时显示,接线简单、功耗低,屏幕的SDA、SCL引脚与单片机GPIO引脚之间分别串联1kΩ限流电阻,保护屏幕与单片机IO口。

3.2.6 风扇控制模块电路

风扇控制模块电路包括TB6612电机驱动电路、ULN2003步进电机驱动电路、风扇控制电路、步进电机控制电路:

  • TB6612电机驱动电路:TB6612芯片的VCC引脚接5V电源,GND引脚接地,VIN引脚接5V电源(为风扇供电),IN1、IN2引脚连接到单片机的GPIO引脚,用于控制风扇的正反转(本系统中风扇仅需单向旋转,可固定IN1、IN2引脚电平),PWM引脚连接到单片机的PWM输出引脚,通过输出不同占空比的PWM脉冲信号,调节风扇的转速,实现风速分级控制;
  • ULN2003步进电机驱动电路:ULN2003芯片的VCC引脚接5V电源,GND引脚接地,IN1-IN4引脚分别连接到单片机的四个GPIO引脚,用于输出步进电机控制信号,OUT1-OUT4引脚连接到步进电机的四个接线端,驱动步进电机旋转;
  • 风扇控制电路:风扇的正极连接到TB6612芯片的OUT1引脚,负极连接到OUT2引脚,通过TB6612芯片的控制,实现风扇的启停与转速调节;
  • 步进电机控制电路:步进电机的四个接线端分别连接到ULN2003芯片的OUT1-OUT4引脚,电机的VCC引脚接5V电源,GND引脚接地,通过单片机输出的控制信号,控制步进电机的旋转角度与速度,实现风扇摇头动作。

3.2.7 按键模块电路

八个独立按键的一端分别连接到单片机的八个GPIO引脚,另一端共同接地,通过软件配置单片机内部下拉电阻,当按键按下时,GPIO引脚检测到高电平信号,单片机通过检测电平变化识别按键操作,实现模式切换、风速调节、摇头控制等功能。电路设计简洁、可靠,无需额外添加电阻元件,每个按键与单片机GPIO引脚之间串联一个1kΩ限流电阻,保护单片机IO口。

3.2.8 LED灯模块电路

LED灯的正极通过一个220Ω限流电阻连接到单片机的GPIO引脚,负极接地,当单片机输出高电平信号时,LED灯点亮;输出低电平时,LED灯熄灭。限流电阻用于限制电流,保护LED灯与单片机IO口,确保LED灯稳定工作,避免因电流过大烧毁元器件。

3.2.9 报警模块电路

有源蜂鸣器的VCC引脚接3.3V电源,GND引脚通过GPIO引脚接地,当单片机输出低电平信号时,蜂鸣器形成回路,发出提醒声音;输出高电平时,蜂鸣器停止工作。电路中串联一个220Ω限流电阻,保护蜂鸣器与单片机IO口,避免电流过大损坏元器件。

3.2.10 WIFI通信模块电路

ESP8266-01S WIFI模块的VCC引脚接3.3V电源,GND引脚接地,TXD引脚连接到单片机的RX引脚,RXD引脚连接到单片机的TX引脚,通过UART通信协议,实现单片机与模块之间的数据交互,进而实现与机智云平台的通信。需注意模块与单片机的共地,避免通信干扰,同时在模块电源引脚旁配置100nF旁路电容,保证模块供电稳定,模块的TXD、RXD引脚与单片机GPIO引脚之间分别串联1kΩ限流电阻,保护模块与单片机IO口。

3.2.11 电源模块电路

电源模块采用5V直流电源输入,通过LM1117稳压芯片将5V电压转换为3.3V,输出端配置100nF旁路电容滤除噪声,为单片机、传感器、OLED屏幕、语音模块、WIFI模块等供电;同时保留5V电源输出端,为TB6612驱动模块、ULN2003驱动芯片、风扇模块、步进电机、LED灯等设备供电。电源输入端配置保险丝,防止短路损坏元器件,输入输出端均配置电容,滤除电源噪声,确保供电稳定。

3.3 硬件连接总览

系统硬件连接采用模块化设计,各模块通过导线与STM32F103C8T6单片机的对应引脚连接,确保各模块能够正常通信与工作,具体连接关系如下(可根据实际引脚分配调整,均选用单片机空闲IO口与ADC接口):

  • DHT11温湿度传感器:DATA → PA0
  • 光电红外传感器:OUT → PA1
  • SNR8016语音模块:TXD → PA2,RXD → PA3,KEY → PA4
  • OLED屏幕:SDA → PB0,SCL → PB1
  • TB6612电机驱动模块:IN1 → PB2,IN2 → PB3,PWM → PB4
  • ULN2003步进电机驱动芯片:IN1 → PB5,IN2 → PB6,IN3 → PB7,IN4 → PC0
  • 按键:K1(模式切换)→ PC1,K2(风速加)→ PC2,K3(风速减)→ PC3,K4(摇头控制)→ PC4,K5(LED灯开关)→ PC5,K6(定时加)→ PC6,K7(定时减)→ PC7,K8(定时开关)→ PD0
  • LED灯:正极 → PD1
  • 有源蜂鸣器:GND → PD2
  • ESP8266-01S WIFI模块:TXD → PD3,RXD → PD4
  • 风扇模块:正极 → TB6612 OUT1,负极 → TB6612 OUT2
  • 步进电机:接线端 → ULN2003 OUT1-OUT4,VCC → 5V,GND → GND

硬件连接完成后,需对各模块进行绝缘处理,避免引脚短路,确保系统硬件的安全性与可靠性;同时检查各元器件的接线是否正确,避免接反电源导致元器件损坏,重点检查电机驱动模块、电源模块的接线,防止短路烧毁设备。

第四章 系统软件设计

4.1 软件设计思路

系统软件设计采用模块化设计思想,以STM32F103C8T6单片机为核心,按照功能模块划分软件模块(温湿度采集模块、人体检测模块、语音识别模块、显示模块、风扇控制模块、按键处理模块、LED灯控制模块、报警模块、WIFI通信模块、定时模块),各模块独立设计、协同工作,便于软件的调试、修改与扩展,且不包含任何代码实现,仅阐述逻辑设计。

软件设计的核心思路是:系统上电后,首先完成各模块的初始化,包括单片机IO口、ADC、UART、I2C等外设的初始化,以及各传感器、语音模块、OLED屏幕、WIFI模块、电机驱动模块等的初始化;初始化完成后,OLED屏幕显示系统启动信息,ESP8266-01S模块自动连接WIFI并接入机智云平台,语音模块进入待命状态,系统默认进入自动模式,风扇、LED灯处于关闭状态,定时功能处于未开启状态,蜂鸣器处于关闭状态。

在主循环中,系统实时采集环境温湿度与人体信号,对采集到的数据进行处理与校准;同时检测语音指令、按键指令与机智云APP指令,解析指令后执行相应的控制动作;根据当前工作模式,实现自动调节、手动控制或语音控制功能;将环境数据、系统工作状态上传至机智云平台,通过OLED屏幕实时显示相关信息;当自动模式下温度超过预设最大值时,启动蜂鸣器报警;若定时功能开启,倒计时结束后自动关闭风扇;循环执行上述流程,确保系统持续稳定运行。

4.2 主程序设计

主程序是系统软件的核心,负责统筹各模块的工作,协调各模块之间的数据交互与指令执行,其流程如下,不包含任何代码:

1. 系统上电,初始化系统时钟、单片机外设(IO口、ADC、UART、I2C);

2. 初始化各功能模块:DHT11温湿度传感器、光电红外传感器、SNR8016语音模块、OLED显示模块、TB6612电机驱动模块、ULN2003步进电机驱动模块、按键模块、LED灯模块、报警模块、ESP8266-01S WIFI模块、定时模块;

3. OLED屏幕显示系统启动信息(如“智能语音风扇启动中...”),ESP8266-01S模块启动并连接预设WIFI,接入机智云平台,连接成功后在OLED屏幕显示“机智云连接成功”,语音模块进入待命状态,延迟2秒后切换到正常显示界面;

4. 系统进入主循环,首先调用温湿度采集模块与人体检测模块函数,采集环境温湿度与人体信号,对数据进行校准与处理,转换为可显示、可判断的实际数值;

5. 调用显示模块函数,将处理后的温湿度、人体状态、风扇工作模式、风速、定时倒计时、LED灯状态等信息显示在OLED屏幕上,实时更新;

6. 检测语音指令:语音模块接收用户语音指令,进行识别与解析,将解析后的指令发送给主控单元,主控单元执行相应动作(如模式切换、风速调节等);

7. 检测按键信号,解析按键指令,实现模式切换、风速调节、摇头控制、LED灯开关、定时设置与开启/关闭等功能;

8. 检测ESP8266-01S WIFI模块与机智云平台的连接状态,若连接正常,将环境数据、系统工作状态上传到机智云平台,供手机APP查看,并接收APP下发的控制指令,解析后执行相应动作;若未连接,在OLED屏幕显示“机智云连接失败”,模块自动重新连接;

9. 根据当前工作模式执行相应的控制逻辑:自动模式下,根据人体状态与温度自动调节风扇;手动模式下,根据按键或远程指令控制风扇与LED灯;语音模式下,根据语音指令执行相应动作;

10. 检测定时功能状态,若定时功能开启,倒计时递减,倒计时结束后自动关闭风扇,重置定时状态;

11. 自动模式下,检测环境温度是否超过预设最大值,若超过,启动蜂鸣器报警,直至温度降至阈值以下;

12. 循环执行步骤4-11,确保系统持续稳定运行,实时响应各类指令与状态变化。

4.3 各功能模块软件设计

4.3.1 温湿度采集模块软件设计

温湿度采集模块软件主要负责采集DHT11传感器的输出信号,并对信号进行处理、校准,得到实际的温湿度数值,为系统自动调节风扇风速提供数据支撑,具体逻辑如下,不包含代码:

通过GPIO引脚向DHT11传感器发送启动信号(拉低总线18ms以上,再拉高20-40us),等待传感器响应后,接收传感器输出的40bit数据,对数据进行校验(前32bit数据的校验和与后8bit校验和一致则数据有效),解析后得到温度与湿度的实际数值;设置定时采集机制,每隔1秒采集一次温湿度数据,确保数据的实时性,同时对采集到的数据进行异常判断,若数据超出传感器的测量范围,则视为无效数据,采用上一次的有效数据替代,提升数据采集的可靠性。

4.3.2 人体检测模块软件设计

人体检测模块软件负责采集光电红外传感器的输出信号,判断当前环境是否有人,为自动模式下风扇的开关控制提供依据,具体逻辑如下,不包含代码:

通过GPIO接口采集传感器的输出电平信号,设置防抖处理(延迟100ms检测电平变化),避免误检测;检测到低电平时,判定为有人体靠近,设置“有人”标志位;检测到高电平时,判定为无人靠近,设置“无人”标志位;每隔500ms采集一次人体信号,确保检测的准确性,同时将人体状态同步至OLED屏幕与机智云APP。

4.3.3 语音识别模块软件设计

语音识别模块软件负责控制SNR8016语音模块,实现语音指令的接收、识别与解析,将解析后的指令发送给主控单元,实现语音控制功能,具体逻辑如下,不包含代码:

系统初始化完成后,语音模块进入待命状态,单片机通过UART接口向语音模块发送唤醒指令,唤醒语音模块;语音模块接收用户语音指令后,对指令进行识别与解析,将解析后的指令(如“风速加大”“切换自动模式”“开启摇头”)通过UART接口发送给单片机;单片机接收指令后,解析指令类型,执行相应的控制动作,同时将指令执行结果反馈至语音模块(可选),语音模块可通过语音提示用户指令已执行;语音指令识别完成后,语音模块重新进入待命状态,等待下一次指令输入。

预设的语音指令包括:模式切换指令(“切换自动模式”“切换手动模式”“切换语音模式”)、风速调节指令(“风速加大”“风速减小”“风速一档”“风速二档”“风速三档”)、摇头控制指令(“开启摇头”“关闭摇头”)、LED灯控制指令(“打开灯光”“关闭灯光”)、定时指令(“定时10分钟”“定时30分钟”“关闭定时”)、风扇开关指令(“打开风扇”“关闭风扇”)。

4.3.4 显示模块软件设计

显示模块软件负责控制OLED屏幕显示相关信息,采用I2C通信协议,实现字符、数字、字符串的显示,显示界面分为正常显示界面与定时设置界面,不包含代码:

正常显示界面:实时显示当前环境温度(℃)、湿度(%RH)、人体状态(有/无人)、风扇工作模式(自动/手动/语音)、风速等级(1-3档,0档为关闭)、定时倒计时(分钟:秒)、LED灯状态(开/关),显示格式清晰、简洁,便于用户现场查看;

定时设置界面:当用户按下“定时加/减”按键时,切换到定时设置界面,显示当前设置的定时时间,用户通过“定时加/减”按键调整定时时间(范围0-60分钟),按下“定时开关”按键,开启或关闭定时功能,开启后返回正常显示界面,实时显示倒计时;定时时间为0时,关闭定时功能。

软件通过定时器实现显示信息的更新,每隔1秒更新一次检测参数与系统状态,确保显示信息的实时性,同时避免频繁刷新导致屏幕闪烁,提升用户体验。

4.3.5 风扇控制模块软件设计

风扇控制模块软件负责控制风扇的风速与摇头动作,根据系统指令实现风速调节、摇头启停,具体逻辑如下,不包含代码:

  • 风速控制:系统支持3档风速调节,通过TB6612驱动模块输出不同占空比的PWM脉冲信号控制风扇转速(占空比越大,风速越大),1档为最低风速(占空比30%),2档为中等风速(占空比60%),3档为最高风速(占空比90%),0档为关闭状态;风速调节可通过按键、语音指令或机智云APP实现,调节后实时更新OLED屏幕显示与机智云APP状态;
  • 摇头控制:通过ULN2003驱动芯片控制步进电机旋转,实现风扇的左右摇头动作,摇头角度可设置为180°,摇头速度可调(默认每分钟30次);摇头功能可通过按键、语音指令或机智云APP开启/关闭,开启后步进电机按照预设角度与速度旋转,关闭后步进电机停止旋转,风扇保持当前角度;
  • 自动模式风速调节逻辑:检测到有人时,根据环境温度自动调节风速:温度≤25℃,风扇关闭(0档);25℃<温度≤30℃,1档风速;30℃<温度≤35℃,2档风速;温度>35℃,3档风速;检测到无人时,无论温度如何,风扇均关闭。

4.3.6 按键处理模块软件设计

按键处理模块软件负责检测按键信号,解析按键指令,实现各类操作功能,具体逻辑如下,不包含代码:

  • 模式切换按键:按下一次,切换一种工作模式(自动→手动→语音→自动),切换后在OLED屏幕显示当前模式,同时将模式状态上传至机智云APP;
  • 风速加/减按键:手动模式与语音模式下有效,按下风速加按键,风速提升一档(最高3档);按下风速减按键,风速降低一档(最低0档,即关闭);自动模式下按下无效,OLED屏幕提示“自动模式不可手动调节风速”;
  • 摇头控制按键:按下一次,切换摇头功能的开启/关闭状态,开启后风扇开始摇头,关闭后停止摇头,状态实时更新至OLED屏幕与机智云APP;
  • LED灯开关按键:按下一次,切换LED灯的开关状态,开启后LED灯点亮,关闭后熄灭,状态实时更新至OLED屏幕与机智云APP;
  • 定时加/减按键:按下定时加按键,定时时间增加5分钟(最大60分钟);按下定时减按键,定时时间减少5分钟(最小0分钟);定时时间调整后,OLED屏幕实时显示当前设置的定时时间;
  • 定时开关按键:按下一次,开启或关闭定时功能,开启后倒计时开始,关闭后倒计时重置为0,定时状态实时更新至OLED屏幕与机智云APP。

软件设置按键防抖处理(延迟100ms检测电平变化),避免按键误触发,确保按键操作的可靠性。

4.3.7 LED灯控制模块软件设计

LED灯控制模块软件负责控制LED灯的开关,根据按键指令、语音指令或机智云APP指令执行相应动作,具体逻辑如下,不包含代码:

当接收到LED灯开启指令(按键、语音、APP)时,单片机输出高电平信号,LED灯点亮;当接收到LED灯关闭指令(按键、语音、APP)时,单片机输出低电平信号,LED灯熄灭;LED灯的状态实时更新至OLED屏幕与机智云APP,确保现场与远程状态同步;系统上电后,LED灯默认处于关闭状态。

4.3.8 报警模块软件设计

报警模块软件负责控制有源蜂鸣器的工作,实现高温报警功能,具体逻辑如下,不包含代码:

自动模式下,系统实时对比当前环境温度与预设最大温度(默认38℃,可通过机智云APP修改),当温度超过预设最大值时,单片机输出低电平信号,触发蜂鸣器发出连续的报警声音;当温度降至预设最大值以下时,单片机输出高电平信号,蜂鸣器停止报警;手动模式与语音模式下,蜂鸣器不进行自动报警,仅在用户通过按键或APP发送报警测试指令时启动,确保报警功能的灵活性;同时软件支持报警音量调节,用户可通过机智云APP调整蜂鸣器的音量大小。

4.3.9 WIFI通信模块与机智云APP接入设计

WIFI通信模块软件负责实现ESP8266-01S WIFI模块与单片机、机智云平台的通信,完成环境数据上报与控制指令接收,机智云APP接入流程如下,不包含代码:

1. ESP8266-01S WIFI模块初始化:系统上电后,单片机通过UART接口向模块发送AT指令,配置模块的工作模式(STA模式,即客户端模式)、WIFI名称、WIFI密码、通信波特率(与单片机一致,如9600bps),完成模块初始化;

2. 机智云平台配置:在机智云平台注册账号,创建智能设备,添加对应的产品型号,配置设备的采集点(温湿度、人体状态、风扇模式、风速、定时状态、LED灯状态)与控制点(模式切换、风速调节、摇头控制、LED灯开关、定时设置、定时开关、温度阈值修改),生成设备ID与密钥,将设备ID与密钥写入单片机,实现设备与平台的绑定;

3. 手机APP连接:用户下载机智云APP,登录账号后,搜索并添加绑定的智能设备,完成APP与设备的连接,连接成功后,APP实时显示设备上传的环境参数与运行状态;

4. 数据上报:单片机将处理后的温湿度、人体状态、风扇工作模式、风速、定时倒计时、LED灯状态、温度阈值等数据,通过UART

Logo

智能硬件社区聚焦AI智能硬件技术生态,汇聚嵌入式AI、物联网硬件开发者,打造交流分享平台,同步全国赛事资讯、开展 OPC 核心人才招募,助力技术落地与开发者成长。

更多推荐