AI 编程助手红绿灯状态提示器
使用 ESP32-C3 SuperMini 改造一个淘宝红绿灯玩具,让 Claude Code 或 Codex CLI 的状态通过红、黄、绿三颗灯显示。同一时间只需要启用其中一种助手的 hook。
| 助手状态 | 灯光效果 |
|---|
| 正在工作 | 绿灯慢闪 |
| 等待用户确认、授权或选择 | 红灯快闪 |
| 当前空闲 | 黄灯常亮 |
| 会话结束 | 全部熄灭 |
硬件
- ESP32-C3 SuperMini 开发板
- 淘宝红绿灯主体
- 220 欧电阻 3 个
- 细导线若干
- 焊接工具:电烙铁、焊锡丝、助焊松香、尖嘴钳、电风扇或其他排烟设备
不要同时安装纽扣电池并接入 ESP32 USB 供电。改造后由 ESP32 的 3V3 供电。
接线定义
红绿灯电路板上的灯位定义如下:
| 灯位 | 颜色 | ESP32-C3 SuperMini 引脚 | 串联电阻 |
|---|
| 公共阳极 | 三灯公共正极 | 3V3 | 不需要 |
L1 负极 | 绿灯 | GPIO4 | 220Ω |
L2 负极 | 黄灯 | GPIO3 | 220Ω |
L3 负极 | 红灯 | GPIO2 | 220Ω |
接线关系:
ESP32 3V3 -> 红绿灯公共阳极
绿灯 L1 负极 -> 220Ω -> ESP32 GPIO4
黄灯 L2 负极 -> 220Ω -> ESP32 GPIO3
红灯 L3 负极 -> 220Ω -> ESP32 GPIO2
固件使用共阳极控制方式:GPIO 输出 LOW 时点亮,输出 HIGH 时熄灭。
烧录固件
Arduino 程序位于:
arduino/traffic_light_test/traffic_light_test.ino
Arduino IDE 设置:
- Board:
ESP32C3 Dev Module
- USB CDC On Boot:
Enabled
- Port: 选择 ESP32 对应串口
- 波特率:
115200
烧录后,打开串口监视器,行结束符选择 Newline 或 Both NL & CR,可以发送以下命令测试:
| 串口命令 | 灯光效果 |
|---|
working | 绿灯慢闪 |
waiting | 红灯快闪 |
idle | 黄灯常亮 |
off | 全部熄灭 |
test | 红、黄、绿依次点亮 |
status | 输出当前状态 |
制作过程
1. 红绿灯主体
淘宝买来的红绿灯主体。
2. 面包板测试
先烧录程序,在面包板上测试 ESP32 能否通过串口命令监听助手状态,并正确控制红、黄、绿三颗灯。
查看高清 MP4
3. 准备焊接工具
准备电烙铁、焊锡丝、助焊松香、细导线、220 欧电阻、尖嘴钳,以及电风扇排烟。焊接烟雾有害,建议在通风环境下操作。
焊锡丝建议使用含锡量 >= 63% 的产品,比较容易上锡。
4. 处理较小的焊点
电路板上发光二极管负极焊点比较小,不方便直接焊接。可以用刀小心刮开一点绿油,露出下方铜箔,形成更大的焊接区域。
刮绿油前:
刮绿油后:
5. 焊接红绿灯电路板
分别焊接公共阳极、L1 负极、L2 负极、L3 负极:
L1 是绿灯。
L2 是黄灯。
L3 是红灯。
L1、L2、L3 负极出来的导线都需要串联 220Ω 电阻。
推荐每种灯使用对应颜色的导线,后续排查会更直观。图中 L1 绿灯用了红色线、L3 红灯用了绿色线,这是个人焊接失误
另外也可以考虑使用贴片电阻,但操作难度更高,这里使用的是普通直插电阻。
6. 剪掉开发板排针
排针太长,为了能够将开发板贴合在红绿灯外壳背后,需要剪掉 ESP32-C3 SuperMini 的排针。
7. 穿线并