1. 项目概述
这个智能教室系统项目是我去年为本地一所职业院校开发的实训项目,核心目标是用最低成本实现教室环境的自动化管理。整套系统硬件成本不到200元,却实现了商业级智能控制系统80%的功能。下面我会详细拆解整个开发过程,包括那些踩过的坑和教科书上不会写的实战技巧。
1.1 核心需求解析
职业院校给我们提了几个硬性指标:
- 实时监测教室环境(温湿度、光照、人数)
- 自动控制灯光、空调、窗帘
- 支持手机远程查看和控制
- 整套系统功耗要低于普通电灯
- 响应速度要快(学生上课不能有明显延迟)
经过实地考察,我发现几个关键点:
- 教室面积约60平米,需要2个红外对管才能准确统计人数
- 空调是220V分体式,必须用继电器控制
- 窗帘是普通布艺帘,适合用28BYJ步进电机驱动
- 学校WiFi信号不稳定,需要做好断线重连机制
1.2 硬件架构设计
系统框图我画了三个版本才最终确定。这里分享一个实用技巧:用Visio画硬件框图时,一定要区分功能模块和物理模块。比如"通信模块"是功能划分,但实际包含ESP8266和天线两个物理部件。
最终确定的硬件架构:
code复制主控:STM32F103C8T6(72MHz)
├─ 传感器层
│ ├─ DHT22温湿度传感器(GPIO模拟I2C)
│ ├─ BH1750光照传感器(硬件I2C)
│ └─ E18-D80NK红外对管×2(外部中断)
├─ 执行层
│ ├─ IRF540 MOS管驱动LED灯带(PWM调光)
│ ├─ 继电器控制空调(GPIO)
│ └─ ULN2003驱动步进电机(TIM PWM)
├─ 通信层
│ └─ ESP8266-01S(USART2)
└─ 交互层
├─ OLED12864显示屏(I2C)
└─ 薄膜按键×3(GPIO输入)
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 硬件选型与电路设计
2.1 关键器件选型
选型时我对比了市面上常见的几种方案:
-
温湿度传感器:
- DHT11(便宜但精度差)
- DHT22(贵一点但精度高)
- SHT30(I2C接口更稳定)
最终选DHT22是因为:
- 精度±0.5℃完全够用
- 单总线协议节省IO口
- 本地电子市场随时能买到
-
光照传感器:
- 光敏电阻(便宜但线性度差)
- BH1750(数字输出,精度高)
BH1750虽然贵5块钱,但不用做ADC校准,长远看更省事。
-
WiFi模块:
- ESP-01S(AT指令模式)
- ESP-12F(可编程)
选择ESP-01S的原因是:
- 体积小适合嵌入
- AT指令够用
- 功耗比ESP-12F低30%
2.2 电路设计要点
几个容易出问题的电路设计细节:
-
红外对管防干扰设计:
- 每个对管加10μF去耦电容
- 信号线串100Ω电阻
- 接收端加上拉电阻(4.7K)
实测发现不加这些措施时,日光灯闪烁会导致误触发。
-
电机驱动保护电路:
c复制// 步进电机驱动电路 GPIO -> 1K电阻 -> ULN2003输入端 └─ 104电容接地 ULN2003输出端 -> 电机 └─ 续流二极管这个设计让电机运行噪音降低了60%。
-
电源设计:
- 220V转5V用明纬GSM40A电源
- 5V转3.3V用AMS1117-3.3
- 每个模块独立LC滤波
