1. 项目缘起:为什么我们需要一个“三合一”的智能灯?
不知道你有没有这样的经历:晚上回家,摸黑找开关,手忙脚乱;白天光线明明很亮,灯却还傻傻地亮着;或者躺在床上,懒得下床关灯,只能任由它亮到天亮。这些生活中的小麻烦,其实用一个几十块钱的Arduino小项目就能轻松解决。
我折腾过不少智能家居方案,发现很多成品要么太贵,要么不够灵活。后来我琢磨着,能不能自己动手做一个既聪明又听话的灯?它得满足几个核心需求:人来灯亮,人走灯灭,这是最基本的自动化;光线太亮时自动不亮,避免白天浪费电;还得能用手机远程控制,躺在床上就能开关。听起来是不是挺酷的?
这个项目就是把这三个功能完美融合在一起:用HC-SR501人体红外传感器当“眼睛”,检测有没有人;用光敏电阻当“光感器”,判断环境亮度;再用一个HC-05或HC-06蓝牙模块当“耳朵”,接收手机指令。最后,用一个Arduino Uno作为“大脑”,一个继电器模块作为“开关”,来控制一盏普通的LED灯或者小台灯。
我实测下来,这套方案成本不到一百元,但带来的便利性和科技感是实打实的。无论是放在走廊做小夜灯,放在卫生间做感应灯,还是放在卧室做床头灯,都非常合适。接下来,我就手把手带你从零开始,把这个“三合一”的智能灯光系统做出来。
2. 核心元件详解与避坑指南
工欲善其事,必先利其器。在动手接线之前,我们得先搞清楚手里这几个“宝贝”怎么用,特别是怎么调,这里面有不少门道。
2.1 HC-SR501人体红外传感器:你的“人体雷达”
这个白色的小方盒就是我们的“守夜人”。它的原理是探测人体发出的特定波长的红外线。这里有几个关键点,调不好就容易“抽风”。
三个可调旋钮/跳线帽:
- 感应距离调节:顺时针旋转,感应距离增大(最大约7米);逆时针旋转,感应距离减小(最小约3米)。我建议一开始先调到中间位置,避免过于灵敏或迟钝。
- 延时时间调节:这个最重要!顺时针旋转,感应到人后,高电平输出保持的时间变长(最长可达300秒);逆时针旋转,保持时间变短(最短约0.5秒)。对于走廊灯,可以调短一些(比如3-5秒);对于卫生间,可以调长一些(比如30-60秒)。新手最容易在这里踩坑,如果调得太长,灯会一直亮着不灭。
- 触发方式选择:模块上有一个三针的跳线帽。
- 可重复触发(H模式):跳线帽连接左侧两个针脚(标注
H)。在延时时间段内,如果再次感应到人体,会重新开始计时。比如你调了30秒延时,在第20秒时又有人经过,它会再亮30秒。适合人活动频繁的区域。 - 不可重复触发(L模式):跳线帽连接右侧两个针脚(标注
L)。一旦触发,就固定亮完设定的延时时间,期间即使再有人经过也不会重新计时。适合只需要短暂照明的通道。
- 可重复触发(H模式):跳线帽连接左侧两个针脚(标注
注意:模块上电后有约1分钟的初始化时间,这段时间输出可能不稳定,属于正常现象。安装时要避免正对空调出风口、暖气片或阳光直射,这些热源可能导致误触发。
2.2 光敏电阻与分压电路:环境的“亮度计”
光敏电阻本身不能直接给Arduino读取。我们需要搭建一个简单的分压电路,将光线变化转换成Arduino能读懂的电压变化(0-5V)。
你需要准备:
- 1个光敏电阻
- 1个10kΩ的定值电阻
连接方法:将光敏电阻和10kΩ电阻串联在Arduino的5V和GND之间。它们相连的中间点,接至Arduino的模拟输入引脚(比如A0)。这样,环境越亮,光敏电阻阻值越小,中间点的电压就越高;环境越暗,电压越低。我们在代码里设定一个阈值(比如analogRead(A0) > 500代表足够亮),就能实现光线判断。
2.3 蓝牙模块(HC-05/HC-06):手机的“遥控器”
蓝牙模块让我们的灯联网了。HC-05和HC-06是最常用的两种,HC-05功能更强(可主从切换),HC-06更便宜(仅从机)。对于这个项目,HC-06就足够了。
接线非常简单,就四根线:
- VCC -> Arduino 5V(有些模块是3.3V,务必看清模块标识!接错可能烧毁)
- GND -> Arduino GND
- TXD -> Arduino的RX(数字引脚10,因为我们用软件串口)
- RXD -> Arduino的TX(数字引脚11)
这里有个关键技巧:我们通常使用SoftwareSerial库来创建软件串口,把蓝牙模块接在数字引脚10和11上,从而把硬件串口(引脚0和1)空出来用于调试和上传



被折叠的 条评论
为什么被折叠?



