手机控制关灯:从抱怨到躺床关灯的一次 DIY 记录
一篇完整的从需求到上手的记录分享。我是从 0 开始、全程靠 AI 协助完成的(无 Arduino/ESP 基础),下文也会写清楚「怎么用 AI 一步步做到」的。详细清单与步骤见同目录下 01~05 文档。
一、为啥要做这个
家里经常有人抱怨:夜里要关灯,得下床摸黑去按开关,太不方便了。我就想,能不能在手机上点一下就把灯关了?躺床上不用下地,同一 WiFi 下用浏览器就能控制——不折腾云、不买成品智能开关,就自己做一个能「按」现有墙壁开关的小设备。
于是有了这个方案:ESP8266 + 舵机,固定在现有灯开关上,手机连家里 WiFi,打开浏览器访问设备 IP,点「开/关/切换」,舵机就替手去按开关。
二、需求与约束(先想清楚)
动手前先定了几条:
- 控制方式:只做局域网,手机和设备在同一 WiFi 下,浏览器访问即可,不做公网、不搭服务器。
- 形态:DIY 小盒子,装在现有墙壁开关旁边,用舵机「按压」开关,不拆不改墙内线路。
- 供电:尽量简单——开关旁有插座就用充电器 USB 供电;没有插座就用电池(如 18650 电池盒),可 USB 充电。
- 成本:几十块钱能搞定最好,ESP8266 + 舵机 + 杜邦线 + 电源,百元内。
这样目标就很清楚:做一个只在内网用的「手机遥控按开关」装置。
三、方案与材料(买什么)
核心两件:
- ESP8266 NodeMCU:带 WiFi,能跑一个小 Web 服务,手机浏览器访问它的 IP 就能发「开/关」指令。
- SG90 舵机:收到指令后转动,机械臂去按墙壁开关。
供电怎么选(按自家情况选一种即可):
| 情况 | 推荐方案 | 说明 |
|---|---|---|
| 开关旁有插座 | USB 充电器直供 | 最省事,无电池,一根 USB 线接板子和舵机 |
| 开关旁无插座 | 18650 电池盒 + 电池 | 可 USB 充电,充满放回开关旁用 |
| 开关盒能接线 | 220V 转 5V 模块 | 从灯线取电,需一定电工基础或请人接 |
采购清单(以「USB 充电器供电」为例):
- ESP8266 NodeMCU(CH340,带排针):约 15~22 元
- SG90 舵机 9g:约 5~10 元
- 杜邦线 公对母:约 3~5 元
- 5V 充电器 / USB 线(若已有可省):0~15 元
- 外壳(亚克力/小塑料盒,可选):约 5~15 元
合计大约 30~80 元。若用电池方案,再加电池盒和 18650 即可,详见 02-采购清单。淘宝关键词可抄 04-淘宝搜索清单。
四、接线(舵机和板子怎么连)
一句话:电源同时给 ESP8266 和舵机供电(共地),舵机三根线——信号接板子 D1,电源接 5V,地接 GND。
文字接线示意:
- 舵机信号线(橙/黄)→ 板子 D1
- 舵机红线(VCC)→ 5V(板子 Vin/5V 或外接 5V)
- 舵机褐/黑(GND)→ 板子 GND
⚠️ 舵机必须接 5V,不能接 3.3V,否则只会抖、转不动。
外接 5V 时:外接 5V 正极接舵机红线,负极接舵机褐线(或与板子 GND 连在一起共地);舵机黄线仍接板子 D1;板子可单独用 USB 供电。接线细节、引脚位置、共地示意见 03-实施步骤(含接线示意与引脚速查)。若对「插哪根线插哪」不熟,可看 B 站视频 ESP8266 与舵机连接方式,讲得比较细。
五、烧录程序(让板子会连 WiFi 和控舵机)
设备要能工作,需要给 ESP8266 烧录固件:即把一段程序写进板子,这段程序负责:连上家里 WiFi、在 80 端口开一个网页、收到开/关请求时驱动舵机转动。
简要步骤:
- 电脑安装 Arduino IDE,并安装 ESP8266 开发板支持(在「开发板管理器」里搜 esp8266 安装)。
- 若电脑识别不到串口,安装 CH340 驱动(根据板子型号,WCH 官网可下)。
- 用 USB 线连接 ESP8266 和电脑,在 IDE 里选择开发板 NodeMCU 1.0 (ESP-12E Module) 和对应 COM 口。
- 打开项目里的
light_control/light_control.ino,在代码里改好 WiFi 名称和密码(当前示例为 TP-LINK_0A10 / 12345678)。 - 点击 上传,等待编译和烧录完成(约 10~30 秒)。
烧录时:若舵机已经接在板子上,建议先拔掉舵机再烧录,避免瞬间电流导致烧录失败。
上电顺序:先接好线,再供电;断电时先断 5V 再拔 USB。
详细步骤、截图级说明、常见报错处理见 05-烧录步骤。
六、使用方式(躺床关灯)
- 烧录完成后,给板子和舵机供电(USB 或电池)。
- 板子会连上你配置的 WiFi,并在串口监视器(波特率 115200)里打印 IP 地址(如 192.168.0.102)。
- 手机连同一 WiFi,浏览器输入该 IP(如
http://192.168.0.102),会打开一个简单页面,上面有 Toggle / ON / OFF。 - 点 Toggle 即可切换开关状态,点 ON 开灯、OFF 关灯——舵机会转动去「按」墙壁开关,实现躺床关灯。
无需 App、无需登录、无需云,只要在同一 WiFi 下即可。
七、过程中遇到的坑与解决
-
串口监视器乱码 / 网页点击没日志
程序里串口是 115200,监视器也要选 115200,否则中文和日志都会乱码,看起来像「点击没反应」。选对波特率后,再按 RST 看启动日志,点网页按钮时应能看到[调试] 开灯 -> 舵机 90°之类输出。 -
舵机不动 / 只抖
先确认舵机接的是 5V 不是 3.3V;再确认接线:信号→D1,VCC→5V,GND→GND。若供电不足(如 USB 电流小),舵机转动时可能发抖,可换 5V 1A 充电器或电池盒试。 -
摆动力度不够,按不下去开关
分两种:电源不足(空载就抖、转不动)→ 加强供电;舵机力矩不够(空转正常,压到开关才没力)→ 可换更大扭矩舵机,或用亚克力条加长力臂(一端固定舵机轴,另一端压开关)。亚克力即有机玻璃,淘宝搜「亚克力板」可裁成延长臂;注意力臂越长末端位移越大,但同一舵机下力矩会变小,若本来就按不下去,加长后可能更吃力,这时要换舵机或供电。详细区分与做法见 03-实施步骤 第 14 条。 -
烧录失败
若上传时报错,可尝试:上传时按住板子上的 FLASH 键再点上传;换一根 USB 线或换 USB 口;确认驱动已装、COM 口已选对。
八、利用 AI 从零完成的过程(实际经历)
我没有任何 Arduino、ESP 或硬件开发经验,是从 0 开始的。整个项目是边问 AI 边做下来的,这里按时间顺序记一下怎么用 AI 一步步做到能用。
第一步:把需求说清楚,让 AI 帮忙定方案
我跟 AI 说:家里总抱怨夜里关灯要下床不方便,想用手机控制、躺床就能关灯。AI 问我:要不要联网、要不要改墙内线、预算多少。我答:只要家里 WiFi、不改墙、几十块能搞定就行。AI 就帮我收敛成「局域网 + 不拆墙 + ESP8266 + 舵机」的方案,并说明:手机浏览器访问设备 IP,舵机去「按」现有墙壁开关。这部分沉淀成了 01-关灯设备说明。
第二步:采购——问 AI 要买啥、怎么选
我问:一共要买几种东西?USB 口干啥用?电源是同时给舵机和板子供电吗?舵机 90 度还是 180 度?Micro 口和 Type-C、CH340 都是啥?有没有不用锂电池、更安全的供电方式?AI 给了清单、品牌建议、各供电方案对比(USB 直供 / 18650 / 镍氢 / 开关盒取电),我整理成 02-采购清单。淘宝关键词不会搜,就让 AI 给「复制即搜」的关键词,整理成 04-淘宝搜索清单。
第三步:接线与实现——问 AI 插哪、怎么连
板子到手后我发现只有 USB 口,不知道杜邦线插哪。问 AI:ESP8266 没有杜邦线插口?PWM 信号从哪接?舵机三根线应该插哪里?AI 说两侧有排针、并给了接线表、引脚示意、舵机 Signal/VCC/GND 对应 D1/5V/GND。我还问:电源怎么同时给舵机和 ESP8266 供电?外接 5V 时怎么共地?AI 都答了,并推荐了 B 站接线视频。后来遇到「摆动力度不够」,我问是电源不足还是舵机力量不够,AI 区分了两种原因,并说了用亚克力延长力臂的做法。这些问答都整理进了 03-实施步骤(含接线示意、引脚速查、摆动力度与亚克力)。
第四步:烧录——问 AI 怎么把程序写进板子
我不知道「烧录」是啥,就问 AI。AI 解释:相当于给板子装系统,把程序从电脑通过 USB 写进去;并给了步骤:装 Arduino IDE、装 ESP8266 支持、装 CH340 驱动、选板子和端口、改 WiFi 和密码、点上传。我按步骤做,整理成 05-烧录步骤。烧录后串口监视器全是乱码,网页点开关也没看到日志,我问 AI,AI 说程序是 115200 波特率、监视器也要选 115200,改完果然就正常了。
第五步:文档与分享——让 AI 把过程写成文章
东西能用了之后,我想把整个过程写成一篇可分享的记录。我就把需求起因、方案、采购、接线、烧录、使用、踩坑都告诉 AI,让 AI 写成一篇连贯文章,并补充「利用 AI 从零完成」的经历——就是你现在看到的这篇。
小结:从 0 到躺床关灯,我没买书、没系统学 Arduino,就是对着 AI 问「要买啥」「怎么连」「怎么烧」「为啥不转」「为啥没日志」,一步步做下来的。如果你也是零基础,可以按同样方式:先跟 AI 说清需求,再让 AI 给清单和步骤,遇到不懂的随时问,把答案整理成自己的文档,就能复现一遍。
九、小结与资料索引
从「家人抱怨夜里下地关灯」到「躺床用手机关灯」,整体就是:定需求(局域网、不拆墙)→ 选方案(ESP8266 + 舵机)→ 采购 → 接线 → 烧录固件 → 手机浏览器控灯。成本几十块、不用云、不用改墙内线,适合愿意自己接几根线、烧录一次固件的 DIY。我本人是零基础、靠 AI 一步步问出来的,若你也是,可以直接用同样方式让 AI 带着做一遍。
同目录下可查:
- 01-关灯设备说明:需求与方案概要
- 02-采购清单:各供电方案与品牌推荐
- 03-实施步骤:供电选择、疑问解答、接线示意、引脚速查、摆动力度与亚克力延长臂
- 04-淘宝搜索清单:采购关键词
- 05-烧录步骤:环境、烧录、常见问题、烧录与上电注意
light_control/light_control.ino:示例固件(改 WiFi 名和密码后烧录即可)
若你也是「夜里不想下床关灯」党,希望这篇记录对你有帮助;若有更好的改法或更稳的供电方案,欢迎一起补充。