1、项目全景与需求分析:智能照明项目概述、核心功能拆解、目标用户画像、技术选型(ESP32/Arduino/传感器)、项目交付标准

各位同学,欢迎来到《智能照明完整项目:从设计到交付》的第一课。

说实话,我见过太多人一上来就撸代码、焊电路。结果呢?做到一半发现需求没想清楚,传感器选错了,或者用户根本不买账。嗯,这课咱们不干这种事。

今天,咱们先把整个项目的地图画出来。你想想看,盖房子之前总得先看图纸吧?做项目也一样。我会带你从零开始,把智能照明这个项目的全貌看清楚。

1.1 项目概述:我们要做什么?

简单说,我们要做一个能自动调节、能远程控制、能省电的智能照明系统

它不是那种花里胡哨的炫技产品。我个人的习惯是,做项目先问自己三个问题:

  • 解决什么痛点?—— 人走了灯还亮着,费电;半夜摸黑找开关,不方便;想调个亮度还得起身。
  • 核心价值是什么?—— 自动感应、远程控制、场景切换。
  • 谁会用?—— 这个咱们后面细说。

说白了,这个项目就是一个低成本、高实用性的物联网照明方案。你可以把它装在家里、办公室,甚至小作坊里。

项目定位:基于 ESP32 主控,结合人体红外传感器、光照传感器,实现人来灯亮、人走灯灭、根据环境光自动调节亮度。同时支持手机 App 远程开关和定时。

1.2 核心功能拆解:别想一口吃成胖子

做项目最忌讳的就是「功能堆砌」。我刚开始带团队时也犯过这毛病,恨不得把所有传感器都怼上去。结果呢?代码耦合得一塌糊涂,调试到崩溃。

所以,咱们把功能拆成几个清晰的模块。每个模块独立开发、独立测试。

1.2.1 基础功能(必须实现)

  1. 人体感应自动开关灯:使用 HC-SR501 红外传感器,检测到人时开灯,人离开后延时关灯。
  2. 环境光自适应调光:使用光敏电阻(LDR)或 BH1750 数字光照传感器,根据环境亮度自动调节 LED 的 PWM 占空比。
  3. 手机远程控制:通过 Wi-Fi 连接,使用 MQTT 协议或 Blynk App,实现远程开关、亮度调节。
  4. 定时开关:在 App 端设置定时任务,比如晚上 7 点自动开灯,11 点自动关灯。

1.2.2 进阶功能(可选扩展)

  1. 场景模式:一键切换「阅读模式」「睡眠模式」「会客模式」,不同模式对应不同的亮度和色温。
  2. 语音控制:接入小爱同学或天猫精灵,实现语音开关灯。
  3. 能耗统计:记录每天的用电量,生成报表。

我的建议:先把基础功能做扎实。我曾经见过一个学员,一上来就搞语音控制,结果基础的人体感应都没调通,最后项目烂尾了。稳扎稳打,先跑通核心流程。

1.3 目标用户画像:给谁用的?

你可能会想:「智能灯嘛,谁都能用。」这话没错,但太笼统了。做产品设计,一定要有具体的用户画像。

我一般会画三个典型用户:

用户类型 核心需求 使用场景
家庭用户(小张) 省电、方便、老人小孩都能用 玄关、走廊、卫生间自动感应;卧室手机控制
办公用户(李经理) 节能管理、集中控制、定时策略 会议室、开放办公区、走廊定时关灯
DIY 爱好者(老王) 可定制、可扩展、有技术挑战 自己改装家里的灯,接入 Home Assistant

你看,不同用户对功能的要求是不一样的。家庭用户更看重「无感」和「稳定」,办公用户更看重「管理」和「节能」。咱们这个课程,会兼顾这三类用户的需求,但重点放在家庭和 DIY 场景。

1.4 技术选型:为什么是 ESP32 + Arduino?

这是很多新手最纠结的地方。我直接给结论:

1.4.1 主控芯片:ESP32

  • 为什么选它? 自带 Wi-Fi 和蓝牙,双核处理器,性能足够。价格才十几块钱。
  • 为什么不选 Arduino Uno? 没有 Wi-Fi,要外接模块,麻烦。而且 Flash 和 RAM 太小,跑 MQTT 库有点吃力。
  • 为什么不选树莓派? 杀鸡用牛刀。树莓派适合跑 Linux 系统,做复杂图像处理。咱们这个项目,ESP32 绰绰有余。

注意:ESP32 的 GPIO 电压是 3.3V,而 HC-SR501 红外传感器输出是 5V。直接连接可能会烧坏 ESP32。我早期就烧过一块板子……所以一定要加电平转换模块,或者用分压电阻。

1.4.2 开发环境:Arduino IDE

  • 为什么选它? 简单、生态好、库丰富。对于咱们这个项目,完全够用。
  • 为什么不选 PlatformIO? 虽然 PlatformIO 更专业,但配置复杂。咱们第一课先求「快」,先跑起来再说。

1.4.3 传感器选型

传感器 型号 接口 特点
人体红外 HC-SR501 数字输出 便宜、灵敏度可调、延时可调
光照传感器 BH1750 I2C 数字输出、精度高、抗干扰强
光照传感器(备选) 光敏电阻 + 10kΩ 电阻 模拟输入 极便宜、但精度差、受温度影响
LED 驱动 MOSFET (IRLZ44N) PWM 驱动大功率 LED 灯带

我个人习惯用 BH1750。为什么?因为它是数字传感器,直接输出 lux 值,不用自己算。光敏电阻虽然便宜,但每次都要校准,麻烦。你想想看,如果环境光变化一点,你就要重新调阈值,多累啊。

1.5 项目交付标准:做到什么程度算「完成」?

没有标准,项目就会无限延期。我见过太多人「做着做着就加功能」,最后不了了之。

咱们这个课程,交付标准非常明确:

  1. 硬件原型:ESP32 开发板 + HC-SR501 + BH1750 + LED 灯带(或高亮 LED),在面包板上搭建完整电路。
  2. 固件代码:实现人体感应、自动调光、MQTT 远程控制、定时开关四个核心功能。代码注释完整,模块化设计。
  3. 手机 App 控制:使用 Blynk 或 MQTT Dashboard,实现远程开关、亮度滑块、定时设置。
  4. 文档与原理图:提供 Fritzing 接线图、电路原理图、物料清单(BOM)。
  5. 演示视频:录制 3 分钟以内的功能演示,展示自动感应、远程控制、调光效果。

一句话总结:拿到这个项目,你就能直接复制出一个可用的智能灯。不是那种「跑个 Hello World」的玩具,而是真正能装到家里用的产品原型。

1.6 本章小结

好,第一课的内容就这些。咱们把项目的「骨架」搭起来了:

  • 知道了要做什么(智能照明系统)
  • 拆解了核心功能(感应、调光、远程、定时)
  • 画了用户画像(家庭、办公、DIY)
  • 选好了技术方案(ESP32 + Arduino + BH1750)
  • 明确了交付标准(硬件、代码、App、文档)

下一课,咱们就开始动手了。我会带你从硬件选型开始,把每个元器件的作用讲清楚。嗯,到时候记得准备好你的 ESP32 开发板。

课后小作业:打开淘宝或立创商城,搜索「ESP32 开发板」「HC-SR501」「BH1750」,看看价格和规格。心里有个数,下节课咱们直接开干。