视频讲解:

https://t.bilibili.com/1176239152698490882?share_source=pc_native

功能介绍:

系统概述——智慧中枢,掌控一切

本系统以STM32高性能单片机为核心大脑,搭载了OLED高清显示屏、DHT11温湿度传感器、PCF8591模数转换模块、直流电机驱动模块、红外人体感应模块以及丰富的按键输入和报警输出单元,构建了一个闭环的智能家居生态系统。它就像一位不知疲倦的智能管家,24小时不间断地监测您家中的环境参数,并自动做出最优化的控制决策。

最令人赞叹的是,这套系统实现了完全自动化的智能联动控制。它不需要您频繁操作,而是主动感知、主动思考、主动执行。从光线明暗到空气质量,从温湿度变化到人员活动,每一个细节都在它的精准掌控之中。这种"润物细无声"的智能化体验,正是现代高品质家居生活的典范。

环境监测系统——八面玲珑,洞察秋毫

光照强度监测——明暗自知,光影随行

系统通过PCF8591的0x02通道连接光敏传感器,实时采集环境光照强度,并以百分比形式直观显示在OLED屏幕的"GX"区域。这个功能有多么贴心呢?当您午后在客厅小憩时,阳光逐渐西斜,室内光线变暗,系统会敏锐地捕捉到这一变化——一旦光照强度低于您设定的阈值,它会立即执行两个温馨动作:自动开启灯光和自动打开窗帘。而当正午阳光过于强烈时,它又会聪明地关窗遮阳、关闭灯光,既保护了您的家具地板免受暴晒,又节约了电能。

这种智能光控系统带来的体验提升是革命性的。您再也不用摸黑找开关,也不必担心出门忘记关灯。系统就像一个懂光明的精灵,让家里的光线永远保持在最舒适的水平。

烟雾浓度监测——火眼金睛,防患未然

连接在PCF8591 0x01通道的烟雾传感器,是家庭安全的忠诚卫士。它能够敏锐地感知空气中烟雾浓度的细微变化,从厨房烹饪产生的少量油烟到电路老化引发的早期火情,都逃不过它的"鼻子"。当烟雾浓度超过安全阈值时,系统会立即启动声光报警(GPIOB_Pin_5控制蜂鸣器),同时根据当前的布防状态决定是否持续报警。

这个功能的设计尤其值得称道的是它的分级响应机制。在布防状态下,报警器会持续鸣响直至危险解除;而在撤防状态下,系统则人性化地关闭报警输出,避免主人回家时不必要的惊扰。这种智能化的安防逻辑,体现了设计者对用户体验的深刻理解。

PM2.5/粉尘浓度监测——呼吸卫士,净享清新

通过PCF8591的0x00通道,系统实时监测室内空气中的悬浮颗粒物浓度(模拟PM2.5传感器)。这个功能对于现代家庭来说实在是太重要了!我们知道,室内空气质量直接影响着家人的呼吸健康,尤其是家中有老人、小孩或过敏体质成员时,空气质量更是重中之重。

本系统在这方面表现得堪称完美:当PM2.5浓度超标时,它会自动开启排气风扇(GPIOB_Pin_3控制),迅速将污浊空气排出室外,引入新鲜空气;当空气质量恢复优良水平后,风扇自动关闭,实现节能运行。这套智能通风系统相当于为您的家装上了一台会思考的新风系统,让每一次呼吸都清新自然。

温湿度监测——四季如春,舒适相伴

DHT11数字温湿度传感器为系统提供了精准的温湿度数据。在OLED屏幕上,"T="后面显示当前温度(摄氏度),"SD="后面显示相对湿度百分比。虽然代码中尚未添加温湿度的联动控制逻辑,但这个数据展示功能本身就已经极具价值。您可以一目了然地了解家中的温湿度状况,无论是调整空调温度还是使用加湿器,都有了科学依据。

设想一下,如果未来扩展此功能,系统完全可以实现:温度过高时自动开启空调或风扇,湿度过低时启动加湿器,湿度过高时开启除湿模式——让您的家真正实现恒温恒湿的五星级舒适环境。

智能控制系统——自动决策,精准执行

窗帘/窗户自动控制系统——开合之间,尽显智慧

本系统采用直流电机驱动机构(Motor驱动模块)来控制窗帘或窗户的开启与关闭。这个子系统的工作逻辑非常巧妙:当光线传感器检测到光照过强(analog2 > GX_L)时,系统判断外部阳光刺眼或室内光线充足无需采光,于是自动关闭窗帘/窗户,并关闭室内灯光;当光线变暗(analog2 ≤ GX_L)时,系统认为需要引入自然光或补充照明,于是自动打开窗帘/窗户,并开启灯光。

更让人惊喜的是电机的控制精度。代码中使用了PWM调速技术(Motor_SetSpeed函数),通过设置正反转和转速值(±30000),实现了平稳的启停动作。配合5000毫秒的运行时间,既保证了窗户完全开启或关闭,又避免了电机堵转过热。这种细腻的控制逻辑,展现了工业级的可靠性。

智能照明系统——光影魔术师

照明控制是本系统又一亮点。通过GPIOB_Pin_0控制继电器模块,进而控制室内主照明的开关。与窗帘系统联动是其最大特色——它不是孤立地根据光线开关灯,而是结合了窗帘状态和环境照度的综合判断。这种协同控制避免了"大白天开灯"的能源浪费,也防止了"晚上拉窗帘后一片漆黑"的尴尬。

试想这样的场景:傍晚时分,夕阳西下,室内光线渐暗。系统检测到光照低于阈值后,首先缓缓打开窗帘,让最后的余晖照亮房间;当自然光仍然不足时,灯光才会亮起。整个过程如行云流水般自然,让您几乎感觉不到科技的存在,却时刻享受着科技带来的便利。

智能通风系统——会呼吸的家

PM2.5超标自动开启风扇的功能,体现了系统对居住者健康的关怀。风扇控制采用简单的开关量控制(GPIOB_Pin_3),响应迅速、稳定可靠。当空气质量好转后自动关闭,实现节能与健康的完美平衡。

安防报警系统——铜墙铁壁,守卫家园

安防功能是这套系统最让人安心的设计之一。它由以下几个部分组成:

红外人体感应模块:连接在GPIOB_Pin_4,采用上拉输入模式,能够可靠检测人员活动。当检测到有人(引脚为低电平)时,OLED屏幕显示"HAVE";无人时显示"NO"。这个检测结果会与布防状态共同决定报警器的行为。

布防/撤防状态机:代码中BF_CF_sig变量(1为布防,0为撤防)和OLED屏幕上的状态显示(BF/CF),让用户清楚知道当前安防模式。在布防状态下,无论是检测到烟雾超标还是有人非法闯入,蜂鸣器都会立即响起(GPIO_ResetBits GPIO_Pin_5),震慑入侵者并提醒邻居;而在撤防状态下,报警器被强制关闭,避免主人回家时触发误报。

这种设计的人性化之处在于:您离家时只需将系统设为布防模式,家就有了一个不知疲倦的电子哨兵;您回家后切换到撤防模式,系统则安静地提供服务,绝不打扰您的正常生活。一个按键,两种模式,安心与便利兼得。

人机交互系统——信息可视,操控随心

OLED高清显示屏——一目了然的信息中心

0.96英寸OLED屏幕虽小,却承载了所有关键信息的展示功能。屏幕布局经过精心设计:

  • 第一行:显示"GX: %"光照强度百分比,以及当前设定的光照阈值(GX_L)
  • 第二行:显示"YW: %"烟雾浓度百分比,以及烟雾报警阈值(YW_L)
  • 第三行:显示"PM: %"粉尘浓度百分比,以及PM阈值(PM_L),右侧显示布防/撤防状态(BF/CF)
  • 第四行:显示"T= C"温度值和"SD= %"湿度值

此外,第一行右侧显示人员检测状态(NO/HAVE),第二行右侧显示窗户状态(W:ON/OFF)。这种信息密度极高的设计,让您一眼就能掌握家中所有环境参数和设备状态。屏幕显示清晰、更新及时,真正做到了"所见即所得"。

阈值设置功能——个性化定制,灵活适应

不同的家庭、不同的生活习惯对环境参数的要求各不相同。本系统充分考虑到了这一点,设计了完善的阈值设置界面。当set_sig标志为1时,系统进入设置模式:

  • 设置光照阈值(GX_L):进入子循环后,阈值数字闪烁显示(显示1秒后清空,交替进行),营造出参数可调的视觉提示。用户通过按键增加或减少数值(代码中虽未展示按键扫描细节,但结合Externkey_Init初始化函数,可知有外部按键用于调整),按下确认键(qr_sig=1)后保存并进入下一项设置。
  • 设置烟雾阈值(YW_L):同样的闪烁提示和确认机制,让用户可以自定义烟雾报警的灵敏度。烹饪爱好者可以把阈值调高一些,避免炒菜时误报警;安全意识强的用户可以调低阈值,获得更早的预警。
  • 设置PM阈值(PM_L):最后设置空气质量阈值,设置完成后自动退出设置模式,系统恢复正常监控状态。

这套设置界面的设计思路非常清晰:每个参数独立设置,确认后才进入下一项,避免了误操作;闪烁显示提供了清晰的视觉反馈;退出设置后立即应用新阈值,无需重启。这种人机交互的流畅性,体现了嵌入式系统设计的高水准。

串口远程控制——千里之外,尽在掌握

串口通信功能为本系统增添了远程操控的能力。通过USART接口(9600波特率),用户可以连接蓝牙模块、Wi-Fi模块或直接通过USB转TTL模块与上位机通信。系统定义了简洁的指令集:

  • 0x11:点亮某个设备(GPIOB_Pin_2置低)
  • 0x12:关闭该设备(GPIOB_Pin_2置高)
  • 0x13:点亮另一个设备(GPIOB_Pin_1置低)
  • 0x14:关闭该设备(GPIOB_Pin_1置高)

虽然代码中未明确标注这两个引脚控制的具体设备(可能是台灯、加湿器、空气净化器等),但这种预留接口的设计思路非常灵活。用户可以根据自己的需求,外接任意需要远程控制的电器。配合手机APP或电脑上位机软件,您可以在办公室、旅途甚至异国他乡,远程查看家中环境数据并控制电器开关。

这种可扩展性正是智能家居系统的灵魂所在。本系统没有将自己封闭成一个功能固定的产品,而是一个开放的平台,等待用户不断添加新设备、新功能。

系统架构与代码质量——匠心独运,精益求精

模块化编程思想

从代码开头的#include列表可以看出,整个项目采用了高度模块化的设计:

  • usart.h:串口通信模块,负责远程指令接收
  • delay.h:精确延时模块,为时序敏感的传感器(如DHT11)提供稳定的时序基础
  • Time.h:定时器模块,可用于产生PWM波或周期性任务调度
  • ExternalInterruption.h:外部中断模块,处理紧急事件
  • Stm32Mode.h:低功耗模式管理,展示了作者对功耗优化的思考(注释中的睡眠模式、停机模式、待机模式)
  • OLED.h:显示驱动,让信息可视化
  • DHT11.h:温湿度传感器驱动,单总线协议实现
  • PCF8591.h:I2C接口ADC模块驱动,采集四路模拟信号
  • Motor.h:电机驱动模块,PWM调速实现精准控制

每个硬件模块都有独立的驱动文件,主函数main.c只负责业务逻辑编排。这种"高内聚、低耦合"的代码结构,使得系统易于调试、易于维护、易于扩展。如果要增加一个新传感器,只需编写对应的驱动文件,在主函数中调用即可,不会影响现有功能

系统概述——智慧中枢,掌控一切

本系统以STM32高性能单片机为核心大脑,搭载了OLED高清显示屏、DHT11温湿度传感器、PCF8591模数转换模块、直流电机驱动模块、红外人体感应模块以及丰富的按键输入和报警输出单元,构建了一个闭环的智能家居生态系统。它就像一位不知疲倦的智能管家,24小时不间断地监测您家中的环境参数,并自动做出最优化的控制决策。

最令人赞叹的是,这套系统实现了完全自动化的智能联动控制。它不需要您频繁操作,而是主动感知、主动思考、主动执行。从光线明暗到空气质量,从温湿度变化到人员活动,每一个细节都在它的精准掌控之中。这种"润物细无声"的智能化体验,正是现代高品质家居生活的典范。

环境监测系统——八面玲珑,洞察秋毫

光照强度监测——明暗自知,光影随行

系统通过PCF8591的0x02通道连接光敏传感器,实时采集环境光照强度,并以百分比形式直观显示在OLED屏幕的"GX"区域。这个功能有多么贴心呢?当您午后在客厅小憩时,阳光逐渐西斜,室内光线变暗,系统会敏锐地捕捉到这一变化——一旦光照强度低于您设定的阈值,它会立即执行两个温馨动作:自动开启灯光和自动打开窗帘。而当正午阳光过于强烈时,它又会聪明地关窗遮阳、关闭灯光,既保护了您的家具地板免受暴晒,又节约了电能。

这种智能光控系统带来的体验提升是革命性的。您再也不用摸黑找开关,也不必担心出门忘记关灯。系统就像一个懂光明的精灵,让家里的光线永远保持在最舒适的水平。

烟雾浓度监测——火眼金睛,防患未然

连接在PCF8591 0x01通道的烟雾传感器,是家庭安全的忠诚卫士。它能够敏锐地感知空气中烟雾浓度的细微变化,从厨房烹饪产生的少量油烟到电路老化引发的早期火情,都逃不过它的"鼻子"。当烟雾浓度超过安全阈值时,系统会立即启动声光报警(GPIOB_Pin_5控制蜂鸣器),同时根据当前的布防状态决定是否持续报警。

这个功能的设计尤其值得称道的是它的分级响应机制。在布防状态下,报警器会持续鸣响直至危险解除;而在撤防状态下,系统则人性化地关闭报警输出,避免主人回家时不必要的惊扰。这种智能化的安防逻辑,体现了设计者对用户体验的深刻理解。

PM2.5/粉尘浓度监测——呼吸卫士,净享清新

通过PCF8591的0x00通道,系统实时监测室内空气中的悬浮颗粒物浓度(模拟PM2.5传感器)。这个功能对于现代家庭来说实在是太重要了!我们知道,室内空气质量直接影响着家人的呼吸健康,尤其是家中有老人、小孩或过敏体质成员时,空气质量更是重中之重。

本系统在这方面表现得堪称完美:当PM2.5浓度超标时,它会自动开启排气风扇(GPIOB_Pin_3控制),迅速将污浊空气排出室外,引入新鲜空气;当空气质量恢复优良水平后,风扇自动关闭,实现节能运行。这套智能通风系统相当于为您的家装上了一台会思考的新风系统,让每一次呼吸都清新自然。

温湿度监测——四季如春,舒适相伴

DHT11数字温湿度传感器为系统提供了精准的温湿度数据。在OLED屏幕上,"T="后面显示当前温度(摄氏度),"SD="后面显示相对湿度百分比。虽然代码中尚未添加温湿度的联动控制逻辑,但这个数据展示功能本身就已经极具价值。您可以一目了然地了解家中的温湿度状况,无论是调整空调温度还是使用加湿器,都有了科学依据。

设想一下,如果未来扩展此功能,系统完全可以实现:温度过高时自动开启空调或风扇,湿度过低时启动加湿器,湿度过高时开启除湿模式——让您的家真正实现恒温恒湿的五星级舒适环境。

智能控制系统——自动决策,精准执行

窗帘/窗户自动控制系统——开合之间,尽显智慧

本系统采用直流电机驱动机构(Motor驱动模块)来控制窗帘或窗户的开启与关闭。这个子系统的工作逻辑非常巧妙:当光线传感器检测到光照过强(analog2 > GX_L)时,系统判断外部阳光刺眼或室内光线充足无需采光,于是自动关闭窗帘/窗户,并关闭室内灯光;当光线变暗(analog2 ≤ GX_L)时,系统认为需要引入自然光或补充照明,于是自动打开窗帘/窗户,并开启灯光。

更让人惊喜的是电机的控制精度。代码中使用了PWM调速技术(Motor_SetSpeed函数),通过设置正反转和转速值(±30000),实现了平稳的启停动作。配合5000毫秒的运行时间,既保证了窗户完全开启或关闭,又避免了电机堵转过热。这种细腻的控制逻辑,展现了工业级的可靠性。

智能照明系统——光影魔术师

照明控制是本系统又一亮点。通过GPIOB_Pin_0控制继电器模块,进而控制室内主照明的开关。与窗帘系统联动是其最大特色——它不是孤立地根据光线开关灯,而是结合了窗帘状态和环境照度的综合判断。这种协同控制避免了"大白天开灯"的能源浪费,也防止了"晚上拉窗帘后一片漆黑"的尴尬。

试想这样的场景:傍晚时分,夕阳西下,室内光线渐暗。系统检测到光照低于阈值后,首先缓缓打开窗帘,让最后的余晖照亮房间;当自然光仍然不足时,灯光才会亮起。整个过程如行云流水般自然,让您几乎感觉不到科技的存在,却时刻享受着科技带来的便利。

智能通风系统——会呼吸的家

PM2.5超标自动开启风扇的功能,体现了系统对居住者健康的关怀。风扇控制采用简单的开关量控制(GPIOB_Pin_3),响应迅速、稳定可靠。当空气质量好转后自动关闭,实现节能与健康的完美平衡。

安防报警系统——铜墙铁壁,守卫家园

安防功能是这套系统最让人安心的设计之一。它由以下几个部分组成:

红外人体感应模块:连接在GPIOB_Pin_4,采用上拉输入模式,能够可靠检测人员活动。当检测到有人(引脚为低电平)时,OLED屏幕显示"HAVE";无人时显示"NO"。这个检测结果会与布防状态共同决定报警器的行为。

布防/撤防状态机:代码中BF_CF_sig变量(1为布防,0为撤防)和OLED屏幕上的状态显示(BF/CF),让用户清楚知道当前安防模式。在布防状态下,无论是检测到烟雾超标还是有人非法闯入,蜂鸣器都会立即响起(GPIO_ResetBits GPIO_Pin_5),震慑入侵者并提醒邻居;而在撤防状态下,报警器被强制关闭,避免主人回家时触发误报。

这种设计的人性化之处在于:您离家时只需将系统设为布防模式,家就有了一个不知疲倦的电子哨兵;您回家后切换到撤防模式,系统则安静地提供服务,绝不打扰您的正常生活。一个按键,两种模式,安心与便利兼得。

人机交互系统——信息可视,操控随心

OLED高清显示屏——一目了然的信息中心

0.96英寸OLED屏幕虽小,却承载了所有关键信息的展示功能。屏幕布局经过精心设计:

  • 第一行:显示"GX: %"光照强度百分比,以及当前设定的光照阈值(GX_L)
  • 第二行:显示"YW: %"烟雾浓度百分比,以及烟雾报警阈值(YW_L)
  • 第三行:显示"PM: %"粉尘浓度百分比,以及PM阈值(PM_L),右侧显示布防/撤防状态(BF/CF)
  • 第四行:显示"T= C"温度值和"SD= %"湿度值

此外,第一行右侧显示人员检测状态(NO/HAVE),第二行右侧显示窗户状态(W:ON/OFF)。这种信息密度极高的设计,让您一眼就能掌握家中所有环境参数和设备状态。屏幕显示清晰、更新及时,真正做到了"所见即所得"。

阈值设置功能——个性化定制,灵活适应

不同的家庭、不同的生活习惯对环境参数的要求各不相同。本系统充分考虑到了这一点,设计了完善的阈值设置界面。当set_sig标志为1时,系统进入设置模式:

  • 设置光照阈值(GX_L):进入子循环后,阈值数字闪烁显示(显示1秒后清空,交替进行),营造出参数可调的视觉提示。用户通过按键增加或减少数值(代码中虽未展示按键扫描细节,但结合Externkey_Init初始化函数,可知有外部按键用于调整),按下确认键(qr_sig=1)后保存并进入下一项设置。
  • 设置烟雾阈值(YW_L):同样的闪烁提示和确认机制,让用户可以自定义烟雾报警的灵敏度。烹饪爱好者可以把阈值调高一些,避免炒菜时误报警;安全意识强的用户可以调低阈值,获得更早的预警。
  • 设置PM阈值(PM_L):最后设置空气质量阈值,设置完成后自动退出设置模式,系统恢复正常监控状态。

这套设置界面的设计思路非常清晰:每个参数独立设置,确认后才进入下一项,避免了误操作;闪烁显示提供了清晰的视觉反馈;退出设置后立即应用新阈值,无需重启。这种人机交互的流畅性,体现了嵌入式系统设计的高水准。

串口远程控制——千里之外,尽在掌握

串口通信功能为本系统增添了远程操控的能力。通过USART接口(9600波特率),用户可以连接蓝牙模块、Wi-Fi模块或直接通过USB转TTL模块与上位机通信。系统定义了简洁的指令集:

  • 0x11:点亮某个设备(GPIOB_Pin_2置低)
  • 0x12:关闭该设备(GPIOB_Pin_2置高)
  • 0x13:点亮另一个设备(GPIOB_Pin_1置低)
  • 0x14:关闭该设备(GPIOB_Pin_1置高)

虽然代码中未明确标注这两个引脚控制的具体设备(可能是台灯、加湿器、空气净化器等),但这种预留接口的设计思路非常灵活。用户可以根据自己的需求,外接任意需要远程控制的电器。配合手机APP或电脑上位机软件,您可以在办公室、旅途甚至异国他乡,远程查看家中环境数据并控制电器开关。

这种可扩展性正是智能家居系统的灵魂所在。本系统没有将自己封闭成一个功能固定的产品,而是一个开放的平台,等待用户不断添加新设备、新功能。

系统架构与代码质量——匠心独运,精益求精

模块化编程思想

从代码开头的#include列表可以看出,整个项目采用了高度模块化的设计:

  • usart.h:串口通信模块,负责远程指令接收
  • delay.h:精确延时模块,为时序敏感的传感器(如DHT11)提供稳定的时序基础
  • Time.h:定时器模块,可用于产生PWM波或周期性任务调度
  • ExternalInterruption.h:外部中断模块,处理紧急事件
  • Stm32Mode.h:低功耗模式管理,展示了作者对功耗优化的思考(注释中的睡眠模式、停机模式、待机模式)
  • OLED.h:显示驱动,让信息可视化
  • DHT11.h:温湿度传感器驱动,单总线协议实现
  • PCF8591.h:I2C接口ADC模块驱动,采集四路模拟信号
  • Motor.h:电机驱动模块,PWM调速实现精准控制

每个硬件模块都有独立的驱动文件,主函数main.c只负责业务逻辑编排。这种"高内聚、低耦合"的代码结构,使得系统易于调试、易于维护、易于扩展。如果要增加一个新传感器,只需编写对应的驱动文件,在主函数中调用即可,不会影响现有功能

系统概述——智慧中枢,掌控一切

本系统以STM32高性能单片机为核心大脑,搭载了OLED高清显示屏、DHT11温湿度传感器、PCF8591模数转换模块、直流电机驱动模块、红外人体感应模块以及丰富的按键输入和报警输出单元,构建了一个闭环的智能家居生态系统。它就像一位不知疲倦的智能管家,24小时不间断地监测您家中的环境参数,并自动做出最优化的控制决策。

最令人赞叹的是,这套系统实现了完全自动化的智能联动控制。它不需要您频繁操作,而是主动感知、主动思考、主动执行。从光线明暗到空气质量,从温湿度变化到人员活动,每一个细节都在它的精准掌控之中。这种"润物细无声"的智能化体验,正是现代高品质家居生活的典范。

环境监测系统——八面玲珑,洞察秋毫

光照强度监测——明暗自知,光影随行

系统通过PCF8591的0x02通道连接光敏传感器,实时采集环境光照强度,并以百分比形式直观显示在OLED屏幕的"GX"区域。这个功能有多么贴心呢?当您午后在客厅小憩时,阳光逐渐西斜,室内光线变暗,系统会敏锐地捕捉到这一变化——一旦光照强度低于您设定的阈值,它会立即执行两个温馨动作:自动开启灯光和自动打开窗帘。而当正午阳光过于强烈时,它又会聪明地关窗遮阳、关闭灯光,既保护了您的家具地板免受暴晒,又节约了电能。

这种智能光控系统带来的体验提升是革命性的。您再也不用摸黑找开关,也不必担心出门忘记关灯。系统就像一个懂光明的精灵,让家里的光线永远保持在最舒适的水平。

烟雾浓度监测——火眼金睛,防患未然

连接在PCF8591 0x01通道的烟雾传感器,是家庭安全的忠诚卫士。它能够敏锐地感知空气中烟雾浓度的细微变化,从厨房烹饪产生的少量油烟到电路老化引发的早期火情,都逃不过它的"鼻子"。当烟雾浓度超过安全阈值时,系统会立即启动声光报警(GPIOB_Pin_5控制蜂鸣器),同时根据当前的布防状态决定是否持续报警。

这个功能的设计尤其值得称道的是它的分级响应机制。在布防状态下,报警器会持续鸣响直至危险解除;而在撤防状态下,系统则人性化地关闭报警输出,避免主人回家时不必要的惊扰。这种智能化的安防逻辑,体现了设计者对用户体验的深刻理解。

PM2.5/粉尘浓度监测——呼吸卫士,净享清新

通过PCF8591的0x00通道,系统实时监测室内空气中的悬浮颗粒物浓度(模拟PM2.5传感器)。这个功能对于现代家庭来说实在是太重要了!我们知道,室内空气质量直接影响着家人的呼吸健康,尤其是家中有老人、小孩或过敏体质成员时,空气质量更是重中之重。

本系统在这方面表现得堪称完美:当PM2.5浓度超标时,它会自动开启排气风扇(GPIOB_Pin_3控制),迅速将污浊空气排出室外,引入新鲜空气;当空气质量恢复优良水平后,风扇自动关闭,实现节能运行。这套智能通风系统相当于为您的家装上了一台会思考的新风系统,让每一次呼吸都清新自然。

温湿度监测——四季如春,舒适相伴

DHT11数字温湿度传感器为系统提供了精准的温湿度数据。在OLED屏幕上,"T="后面显示当前温度(摄氏度),"SD="后面显示相对湿度百分比。虽然代码中尚未添加温湿度的联动控制逻辑,但这个数据展示功能本身就已经极具价值。您可以一目了然地了解家中的温湿度状况,无论是调整空调温度还是使用加湿器,都有了科学依据。

设想一下,如果未来扩展此功能,系统完全可以实现:温度过高时自动开启空调或风扇,湿度过低时启动加湿器,湿度过高时开启除湿模式——让您的家真正实现恒温恒湿的五星级舒适环境。

智能控制系统——自动决策,精准执行

窗帘/窗户自动控制系统——开合之间,尽显智慧

本系统采用直流电机驱动机构(Motor驱动模块)来控制窗帘或窗户的开启与关闭。这个子系统的工作逻辑非常巧妙:当光线传感器检测到光照过强(analog2 > GX_L)时,系统判断外部阳光刺眼或室内光线充足无需采光,于是自动关闭窗帘/窗户,并关闭室内灯光;当光线变暗(analog2 ≤ GX_L)时,系统认为需要引入自然光或补充照明,于是自动打开窗帘/窗户,并开启灯光。

更让人惊喜的是电机的控制精度。代码中使用了PWM调速技术(Motor_SetSpeed函数),通过设置正反转和转速值(±30000),实现了平稳的启停动作。配合5000毫秒的运行时间,既保证了窗户完全开启或关闭,又避免了电机堵转过热。这种细腻的控制逻辑,展现了工业级的可靠性。

智能照明系统——光影魔术师

照明控制是本系统又一亮点。通过GPIOB_Pin_0控制继电器模块,进而控制室内主照明的开关。与窗帘系统联动是其最大特色——它不是孤立地根据光线开关灯,而是结合了窗帘状态和环境照度的综合判断。这种协同控制避免了"大白天开灯"的能源浪费,也防止了"晚上拉窗帘后一片漆黑"的尴尬。

试想这样的场景:傍晚时分,夕阳西下,室内光线渐暗。系统检测到光照低于阈值后,首先缓缓打开窗帘,让最后的余晖照亮房间;当自然光仍然不足时,灯光才会亮起。整个过程如行云流水般自然,让您几乎感觉不到科技的存在,却时刻享受着科技带来的便利。

智能通风系统——会呼吸的家

PM2.5超标自动开启风扇的功能,体现了系统对居住者健康的关怀。风扇控制采用简单的开关量控制(GPIOB_Pin_3),响应迅速、稳定可靠。当空气质量好转后自动关闭,实现节能与健康的完美平衡。

安防报警系统——铜墙铁壁,守卫家园

安防功能是这套系统最让人安心的设计之一。它由以下几个部分组成:

红外人体感应模块:连接在GPIOB_Pin_4,采用上拉输入模式,能够可靠检测人员活动。当检测到有人(引脚为低电平)时,OLED屏幕显示"HAVE";无人时显示"NO"。这个检测结果会与布防状态共同决定报警器的行为。

布防/撤防状态机:代码中BF_CF_sig变量(1为布防,0为撤防)和OLED屏幕上的状态显示(BF/CF),让用户清楚知道当前安防模式。在布防状态下,无论是检测到烟雾超标还是有人非法闯入,蜂鸣器都会立即响起(GPIO_ResetBits GPIO_Pin_5),震慑入侵者并提醒邻居;而在撤防状态下,报警器被强制关闭,避免主人回家时触发误报。

这种设计的人性化之处在于:您离家时只需将系统设为布防模式,家就有了一个不知疲倦的电子哨兵;您回家后切换到撤防模式,系统则安静地提供服务,绝不打扰您的正常生活。一个按键,两种模式,安心与便利兼得。

人机交互系统——信息可视,操控随心

OLED高清显示屏——一目了然的信息中心

0.96英寸OLED屏幕虽小,却承载了所有关键信息的展示功能。屏幕布局经过精心设计:

  • 第一行:显示"GX: %"光照强度百分比,以及当前设定的光照阈值(GX_L)
  • 第二行:显示"YW: %"烟雾浓度百分比,以及烟雾报警阈值(YW_L)
  • 第三行:显示"PM: %"粉尘浓度百分比,以及PM阈值(PM_L),右侧显示布防/撤防状态(BF/CF)
  • 第四行:显示"T= C"温度值和"SD= %"湿度值

此外,第一行右侧显示人员检测状态(NO/HAVE),第二行右侧显示窗户状态(W:ON/OFF)。这种信息密度极高的设计,让您一眼就能掌握家中所有环境参数和设备状态。屏幕显示清晰、更新及时,真正做到了"所见即所得"。

阈值设置功能——个性化定制,灵活适应

不同的家庭、不同的生活习惯对环境参数的要求各不相同。本系统充分考虑到了这一点,设计了完善的阈值设置界面。当set_sig标志为1时,系统进入设置模式:

  • 设置光照阈值(GX_L):进入子循环后,阈值数字闪烁显示(显示1秒后清空,交替进行),营造出参数可调的视觉提示。用户通过按键增加或减少数值(代码中虽未展示按键扫描细节,但结合Externkey_Init初始化函数,可知有外部按键用于调整),按下确认键(qr_sig=1)后保存并进入下一项设置。
  • 设置烟雾阈值(YW_L):同样的闪烁提示和确认机制,让用户可以自定义烟雾报警的灵敏度。烹饪爱好者可以把阈值调高一些,避免炒菜时误报警;安全意识强的用户可以调低阈值,获得更早的预警。
  • 设置PM阈值(PM_L):最后设置空气质量阈值,设置完成后自动退出设置模式,系统恢复正常监控状态。

这套设置界面的设计思路非常清晰:每个参数独立设置,确认后才进入下一项,避免了误操作;闪烁显示提供了清晰的视觉反馈;退出设置后立即应用新阈值,无需重启。这种人机交互的流畅性,体现了嵌入式系统设计的高水准。

串口远程控制——千里之外,尽在掌握

串口通信功能为本系统增添了远程操控的能力。通过USART接口(9600波特率),用户可以连接蓝牙模块、Wi-Fi模块或直接通过USB转TTL模块与上位机通信。系统定义了简洁的指令集:

  • 0x11:点亮某个设备(GPIOB_Pin_2置低)
  • 0x12:关闭该设备(GPIOB_Pin_2置高)
  • 0x13:点亮另一个设备(GPIOB_Pin_1置低)
  • 0x14:关闭该设备(GPIOB_Pin_1置高)

虽然代码中未明确标注这两个引脚控制的具体设备(可能是台灯、加湿器、空气净化器等),但这种预留接口的设计思路非常灵活。用户可以根据自己的需求,外接任意需要远程控制的电器。配合手机APP或电脑上位机软件,您可以在办公室、旅途甚至异国他乡,远程查看家中环境数据并控制电器开关。

这种可扩展性正是智能家居系统的灵魂所在。本系统没有将自己封闭成一个功能固定的产品,而是一个开放的平台,等待用户不断添加新设备、新功能。

系统架构与代码质量——匠心独运,精益求精

模块化编程思想

从代码开头的#include列表可以看出,整个项目采用了高度模块化的设计:

  • usart.h:串口通信模块,负责远程指令接收
  • delay.h:精确延时模块,为时序敏感的传感器(如DHT11)提供稳定的时序基础
  • Time.h:定时器模块,可用于产生PWM波或周期性任务调度
  • ExternalInterruption.h:外部中断模块,处理紧急事件
  • Stm32Mode.h:低功耗模式管理,展示了作者对功耗优化的思考(注释中的睡眠模式、停机模式、待机模式)
  • OLED.h:显示驱动,让信息可视化
  • DHT11.h:温湿度传感器驱动,单总线协议实现
  • PCF8591.h:I2C接口ADC模块驱动,采集四路模拟信号
  • Motor.h:电机驱动模块,PWM调速实现精准控制

每个硬件模块都有独立的驱动文件,主函数main.c只负责业务逻辑编排。这种"高内聚、低耦合"的代码结构,使得系统易于调试、易于维护、易于扩展。如果要增加一个新传感器,只需编写对应的驱动文件,在主函数中调用即可,不会影响现有功能

更多推荐