基于STM32智能教室灯光照明人数监测系统

若该文为原创文章,转载请注明原文出处。

一、引言

(一)研究背景及意义

随着“智慧校园”和“绿色建筑”概念的普及,教室的能源管理,特别是照明用电的节能,已成为一个重要的研究课题。传统教室照明依赖人工管理,经常出现“无人长明灯”和“光照充足仍开灯”的能源浪费现象。本项目旨在利用传感器技术、嵌入式系统和物联网技术,设计一套能够根据室内光照强度和实际人数自动调节照明、并能进行远程监控的系统,对于节约能源、降低运维成本、提升管理智能化水平具有重要的现实意义。

(二)国内外研究现状

目前,智能照明系统多采用单一的光照控制或简单的动静感应控制。单纯的光控无法判断区域内是否有人,而单纯的动静感应(如人体红外传感器)无法区分光照是否充足,且无法进行准确的人数统计。本设计创新性地将光照传感双向人数统计相结合,实现了更精准的“按需照明”控制。同时,引入物联网技术,使管理人员能够远程监控多个教室的状态,大大提升了系统的实用性和管理效率。

二、系统总体设计

(一)系统架构

系统采用“感知-决策-执行-云联”的闭环控制架构。

  1. 感知层:由光照传感器、温湿度传感器、红外对管传感器组成,负责采集环境原始数据。

  2. 决策层:以STM32为核心,处理传感器数据,执行核心控制算法(人数统计、模式判断)。

  3. 执行层:继电器或MOSFET模块,负责控制LED灯组的开关。

  4. 交互与通信层:包括OLED本地显示、按键输入,以及ESP8266 WiFi模块负责与云平台和手机APP进行数据交互。

(二)功能模块划分

  1. 环境感知模块:光照传感器、DHT11温湿度传感器。

  2. 人数统计模块:两对红外对管(或红外发射接收管)传感器。

  3. 控制执行模块:继电器/MOSFET开关电路。

  4. 人机交互模块:OLED显示屏、按键。

  5. 通信模块:ESP8266 WiFi模块。

  6. 电源模块:为STM32及各个模块提供5V和3.3V电源。

三、硬件设计与实现

(一)系统硬件框架图

(二)主控模块选型及介绍

模块名称型号核心参数选型理由
主控MCUSTM32F103C8T6Cortex-M3内核,72MHz,64KB Flash,20KB RAM,2个ADC,3个USART资源完全满足本项目需求(ADC采光照,USART接WiFi,足够GPIO接传感器),性价比极高,开发资料丰富。

(三)传感器模块选型及电路设计

传感器类型型号/种类接口电路设计要点
光照传感器光敏电阻(GL5528)ADC搭配10K电阻组成分压电路,输出模拟电压接入STM32 ADC引脚。光照越强,电阻值越小,输出电压越高。
温湿度传感器DHT11单总线(GPIO)数据线接STM32 GPIO,需接4.7K上拉电阻。时序要求严格,需精确延时。
人数统计传感器红外对管 * 2 (E18-D80NK)GPIO采用高低电平触发的模块。当红外被遮挡时,输出信号跳变。关键:两对传感器需在门口保持一定距离(>20cm)安装,以防止同时被触发。
按键轻触按键GPIO设置为输入上拉模式,按键另一端接地。用于切换模式、手动开关灯。

(四)通信模块选型及配置

模块名称型号接口功能与配置
WiFi模块ESP-01S (ESP8266)USART (串口)STM32通过AT指令集控制ESP8266连接WiFi,并通过MQTT或HTTP协议与云平台(如OneNET、阿里云、Blinker)通信,实现数据上报和指令接收。

核心控制逻辑说明

1. 人数统计逻辑(核心算法)
  • 状态: 系统维护一个内部计数变量 People_Count

  • 进入: 当入口传感器先被触发,然后出口传感器被触发,判定为一人进入,People_Count++

  • 离开: 当出口传感器先被触发,然后入口传感器被触发,判定为一人离开,People_Count--

  • 防误触: 在软件中需加入去抖动延时状态判断,防止有人在门口徘徊造成重复计数。

2. 自动模式 (Auto_Mode = 1)
  • 条件1(光照不足): if (光照强度 < 光照阈值) { 开启照明灯; }

  • 条件2(有人): if (People_Count > 0) { 开启照明灯; }

  • 关灯条件: if (光照强度 >= 光照阈值 && People_Count == 0) { 延迟一段时间(如2分钟)后关闭照明灯; } //延迟防止人短暂离开就关灯

3. 手动模式 (Auto_Mode = 0)
  • 本地手动: 通过按键强制控制照明灯的开关,自动逻辑失效。

  • 远程手动: 通过手机APP远程控制照明灯的开关,并可远程切换模式。

4. 数据上传与显示
  • 动作: STM32定期将人数、温湿度、光照、灯状态等数据通过WiFi上传至手机APP。

  • 显示: OLED屏幕实时刷新显示所有关键参数。

四、软件设计与实现

(一)开发环境搭建

  1. IDE:STM32CubeIDE 或 Keil uVision 5。

  2. :使用STM32CubeMX配置HAL库,快速生成初始化代码。

  3. 驱动:需编写DHT11、OLED(SSD1306)、ESP8266 AT指令解析、MQTT客户端等驱动程序。

(二)系统软件流程图

(三)关键软件模块实现

1. 人数统计算法(核心)

2. 自动控制逻辑实现

3. 数据上报与指令接收

五、系统测试与优化

(一)测试方案

  1. 功能测试

    • 人数统计:用书本模拟人体,分别测试“进入”和“离开”动作,观察OLED显示的人数变化是否准确。

    • 光控测试:用手遮挡光照传感器,模拟光线变暗,观察LED灯是否在有人的情况下自动开启。

    • 模式切换:通过按键和APP切换模式,测试手动开关灯功能是否正常。

    • 网络通信:查看云平台是否能实时更新数据,并通过APP下发指令控制灯开关和模式切换。

  2. 性能测试

    • 抗干扰测试:在传感器附近快速挥手,测试是否会误触发。

    • 压力测试:模拟多人快速连续进出,测试人数统计的准确率。

(二)优化方向

  1. 软件优化

    • 状态机优化人数统计:使用更精确的状态机算法来跟踪人的运动方向,进一步提高计数准确率,防止在门口徘徊造成误计数。

    • 数据滤波:对光照传感器采集的ADC值进行软件滤波(如滑动平均滤波),避免因瞬时变化导致灯光频繁闪烁。

    • 看门狗:加入独立看门狗(IWDG),防止程序跑飞,提高系统稳定性。

  2. 硬件优化

    • 传感器布局:优化红外对管的安装位置和角度,确保其探测区域不会重叠,且能可靠检测到通行人员。

    • 电源管理:采用更稳定的LDO电源芯片,并为数字和模拟部分进行适当的电源隔离,减少干扰。

六、结论与关键设计

(一)结论

本项目成功设计并实现了一套功能完整、运行稳定的智能教室灯光与人数监测系统。系统成功将环境感知、人员监测、智能决策和物联网远程控制有机结合,实现了教室照明的智能化管理,达到了节能降耗和提升管理效率的设计目标。经过测试,各项功能均运行良好,具有较高的实用和推广价值。

(二)关键设计

  1. 基于双红外对管的双向人数统计方案:这是系统的核心创新点,通过判断两个传感器触发的先后顺序来区分进出方向,实现了相对准确的人数统计,为“人走灯灭”提供了精准的数据依据。

  2. 光照与人数双条件判断的自动控制逻辑:控制策略并非简单的“有人就开灯”或“暗了就开灯”,而是 “在光照不足的条件下,且有人存在时才开灯” 。这一逻辑从根本上避免了两种主要的能源浪费场景。

  3. 灵活的本地与远程双控制模式:系统提供了自动智能控制和手动远程控制两种模式,既保证了日常的自动化运行,又满足了特殊情况下的人为干预需求,极大地增强了系统的实用性和用户体验。

如有侵权,或需要完整代码,请及时联系博主。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

殷忆枫

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值