1. 项目目标
利用 ESP8266 (3.3V) 无线控制 12V 汽车继电器 (JD1914) 的通断,进而控制 逆变器 的电源开启与关闭。
2. 硬件清单 (BOM)
| 元件名称 | 规格/型号 | 数量 | 作用 |
|---|---|---|---|
| 主控板 | ESP8266 (NodeMCU / D1 Mini) | 1 | 发出控制信号 |
| 继电器 | JD1914 (5脚 12V 40A) | 1 | 物理开关,隔离强弱电 |
| MOS管 | IRL8721 (N沟道 逻辑电平) | 1 | 信号放大,驱动继电器线圈 |
| 二极管 | SS34 (肖特基) | 1 | 续流保护,防止反向电压烧毁电路 |
| 电阻 | 10kΩ (1/4W) | 1 | 下拉电阻,防止上电误动作 |
| 电源 | 12V 直流电源 | 1 | 专门给继电器供电 |
| 被控设备 | 逆变器 | 1 | 负载 |
3. 元件引脚速查图
在接线前,请务必确认元件方向:
-
MOS管 (IRL8721):
- 字面朝自己,引脚朝下。
- 1脚 (左):G (Gate/栅极) -> 信号输入。
- 2脚 (中):D (Drain/漏极) -> 接继电器。
- 3脚 (右):S (Source/源极) -> 接 GND。
-
二极管 (SS34):
- 有横杠端:负极 (-)。
- 无横杠端:正极 (+)。
-
继电器 (JD1914):
- 85 & 86:控制线圈 (12V 输入)。
- 30:公共端 (开关入口)。
- 87:常开端 (常开比常闭承受更大电流)。
4. 详细接线步骤
第一阶段:控制回路 (让继电器听话)
这一步接错会导致 ESP8266 烧毁或继电器不动作。
-
共地处理 (核心步骤):
- 将 12V 电源的负极 (-) 和 ESP8266 的 GND 必须连在一起。
- 同时连接到 MOS管的 3脚 (右)。
-
MOS管与电阻:
- 将 10k 电阻 直接焊接在 MOS管的 1脚 (左) 和 3脚 (右) 之间。
- MOS 1脚 (左):连接 ESP8266 的 D1 (GPIO 5)。
- MOS 2脚 (中):连接继电器的 85脚。
-
继电器与保护二极管:
- 将 SS34 二极管 焊在继电器的 85脚 和 86脚 之间。
- 重要方向:SS34 的 横杠端 (负极) 对着 86脚;无横杠端对着 85脚。
- 继电器 86脚:连接 12V 电源的正极 (+)。
第二阶段:负载回路 (控制逆变器)
这一步决定了逆变器如何开关。
-
场景 A:直接切断逆变器正极线 (仅限功率 < 400W)
- 剪断逆变器的红色正极输入线。
- 电源侧线头 -> 接继电器 30脚。
- 逆变器侧线头 -> 接继电器 87a脚。
- (注:负极线直连,不经过继电器)
-
场景 B:控制逆变器自带的开关 (推荐,适用于大功率)
- 引出逆变器“船型开关”背后的两根线。
- 一根线接继电器 30脚,另一根接 87a脚。
- 将逆变器原开关打到“开”的位置。
5. 软件代码 (Arduino IDE)
此代码逻辑为:默认断开,ESP 输出高电平时吸合(逆变器启动)。
/*
* 项目:ESP8266 控制 JD1914 继电器 (逆变器开关)
* 硬件:NodeMCU/D1 Mini, IRL8721, SS34, JD1914
*
* 接线定义:
* ESP D1 (GPIO 5) -> MOS管 Gate
*/
const int relayPin = 5; // D1 对应 GPIO 5
void setup() {
Serial.begin(115200);
// 1. 初始化前先强制拉低,确保上电瞬间逆变器是关闭的 (安全第一)
digitalWrite(relayPin, LOW);
// 2. 设置引脚模式
pinMode(relayPin, OUTPUT);
Serial.println("--- 系统就绪 ---");
Serial.println("状态:逆变器已关闭 (Relay OFF)");
}
void loop() {
// 这里演示自动循环开关。
// 实际使用时,你可以接入 Blynk, MQTT 或 Home Assistant 来控制
// --- 开启逆变器 ---
Serial.println("操作:启动逆变器...");
digitalWrite(relayPin, HIGH); // MOS导通 -> 继电器吸合 -> 30接通87a
delay(5000); // 运行5秒
// --- 关闭逆变器 ---
Serial.println("操作:关闭逆变器...");
digitalWrite(relayPin, LOW); // MOS截止 -> 继电器断开 -> 逆变器断电
delay(5000); // 停止5秒
}
6. 工作原理解析 (面试/吹牛专用)
- 信号输出:ESP8266 的 D1 脚输出 3.3V 高电平。
- 信号放大:IRL8721 MOS管 感受到 3.3V 电压,内部通道完全打开 (导通),将继电器的 85脚 直接连通到 GND。
- 电磁吸合:12V 电流流过继电器线圈 (86 -> 85 -> GND),产生磁场,吸动衔铁,“咔哒”一声。
- 负载通电:继电器的 30脚 和 87a脚 物理接触,逆变器电路接通,开始工作。
- 关断保护:当 ESP 输出低电平,MOS 管关闭。继电器线圈断电瞬间产生反向高压,SS34 二极管 瞬间导通吸收这个高压,保护 MOS 管不被击穿。
7. 安全注意事项 (必读)
- 关于功率:JD1914 虽然标称电流大,但插脚接触电阻限制了其能力。如果你控制逆变器主线,建议功率不要超过 400W。超过此功率请使用“控制开关线”的方法。
- 关于发热:继电器吸合时线圈会发热,这是正常的。
- 关于默认状态:本教程使用 87a脚 (87脚常开, 87a脚常闭)。这意味着如果 ESP8266 死机、断电或线断了,逆变器会自动关机。这是最安全的配置,防止电瓶过放。
祝你的 DIY 项目运行稳定!这份文档可以保存下来,下次做类似项目时直接参考。
8. 故障排查与升级方案:从 87a 换成 87,并新增降压供电模块
8.1 问题复盘:为什么 87a 烧了两个继电器?
如果你和我一样,已经报销了两个 JD1914,先别急着骂继电器质量差——问题出在 87a 脚(常闭触点)的先天缺陷。
| 对比项 | 87a(常闭) | 87(常开) |
|---|---|---|
| 默认状态 | 通路 | 断路 |
| 触点电流设计 | 较小(偶尔断开用) | 最大额定电流(主力通路) |
| 长期通大电流 | 触点发热 → 氧化 → 烧毁 | 正常工作 |
| 适合场景 | 断电保护逻辑 | 驱动逆变器主回路 ✅ |
根本原因: 87a 脚是继电器的"副触点",长期流过逆变器的启动涌入电流(瞬间可达额定的 3~5 倍),触点根本扛不住。87 脚才是继电器厂家重点设计的主触点,载流能力比 87a 强得多。
8.2 升级方案全览
本次升级做两件事,缺一不可:
① 控制回路新增 DC-DC 降压模块(12V → 5V),给 ESP8266 独立供电
② 负载回路从 87a 脚改接 87 脚,逻辑取反
8.3 新增元件
| 元件 | 规格 | 数量 | 作用 |
|---|---|---|---|
| DC-DC 降压模块 | 输入 8~40V,输出 5V / 3A(如 MP1584LM2596) | 1 | 从 12V 电源直接给 ESP8266 稳定供电 |
⚠️ 为什么不直接用 ESP8266 的 VIN 脚接 12V?
NodeMCU / D1 Mini 板载的 AMS1117 稳压芯片压差大散热差,长期输入 12V 会过热损坏。降压模块效率高(>85%),是正确做法。
8.4 降压模块接线
12V 电源正极 (+) → 降压模块 IN+
12V 电源负极 (-) → 降压模块 IN-
降压模块 OUT+ → ESP8266 的 VIN 脚(或 5V 脚)
降压模块 OUT- → ESP8266 的 GND 脚
🔧 调压步骤(首次使用必做):
先不接 ESP8266,用万用表测量降压模块输出端,边量边旋转模块上的蓝色小电位器,直到输出电压稳定在 4.9V ~ 5.1V 之间,再连接 ESP8266。
8.5 负载回路改线:87a → 87
改线只需动继电器这一侧,MOS管/二极管/电阻部分完全不变。
旧接法(87a,常闭):
继电器 30 脚 → 电源侧 / 开关线
继电器 87a 脚 → 逆变器侧 / 开关线 ← 拔掉这根
新接法(87,常开):
继电器 30 脚 → 电源侧 / 开关线(不变)
继电器 87 脚 → 逆变器侧 / 开关线 ← 插到这里
改完之后,继电器的开关逻辑反转了:
| ESP 输出 | MOS 管状态 | 继电器状态 | 87 脚(新) | 逆变器 |
|---|---|---|---|---|
| LOW(低电平) | 截止 | 未吸合 | 断路 | 关闭 |
| HIGH(高电平) | 导通 | 吸合 | 通路 | 运行 ✅ |
逻辑和之前完全一致,代码无需修改,HIGH 开LOW 关,行为不变。
8.6 升级后的完整接线总览
【电源层】
12V 电源(+) ─┬─→ 降压模块 IN+ → OUT+ → ESP8266 VIN
├─→ 继电器 86 脚
└─→ 逆变器正极(经继电器 30→87 脚)
12V 电源(-) ─┬─→ 降压模块 IN- → OUT- → ESP8266 GND
├─→ MOS管 S 脚(3脚)
└─→ 逆变器负极(直连)
【控制层】
ESP8266 D1 (GPIO5) → 10kΩ下拉电阻(另一端接GND)
→ MOS管 G 脚(1脚)
MOS管 D 脚(2脚) → 继电器 85 脚
SS34二极管(横杠端)→ 继电器 86 脚
SS34二极管(无杠端)→ 继电器 85 脚
【负载层】
继电器 30 脚 → 逆变器开关线 A(或正极来线)
继电器 87 脚 → 逆变器开关线 B(或正极去线) ← 此处是新改动
8.7 升级后的安全逻辑变化(重要)
使用 87 脚之后,断电保护逻辑发生了变化,需要重新评估你的使用场景:
| 场景 | 87a 旧方案 | 87 新方案 |
|---|---|---|
| ESP8266 正常运行 | 高电平 → 逆变器开 | 高电平 → 逆变器开(相同) |
| ESP8266 死机/断电 | 继电器断开 → 逆变器自动关 | 继电器断开 → 逆变器自动关(相同) |
| 上电启动瞬间 | 有短暂闭合风险 | 天然断路,更安全 ✅ |
好消息:改用 87 脚之后,上电瞬间继电器默认断开,反而比 87a 更安全,彻底消除了上电误触发的隐患,代码里
setup()中提前digitalWrite(relayPin LOW)的那行保险代码依然保留即可。
8.8 小结
| 项目 | 旧方案 | 新方案 |
|---|---|---|
| ESP8266 供电 | USB / 板载 AMS1117 接 12V | 12V → 降压模块 → 5V 稳压供电 |
| 继电器触点 | 87a(常闭副触点) | 87(常开主触点) |
| 载流能力 | 弱,易烧 | 强,额定电流满载使用 ✅ |
| 逻辑代码 | 不变 | 完全不变 |
| 上电安全性 | 一般 | 更好 |
两个继电器的学费没白交——87a 适合低频切换的保护逻辑,87 才是跑主回路的正确姿势。 降压模块加进来之后,整个系统的供电稳定性也上了一个台阶,不再依赖电脑 USB 或者质量参差不齐的充电头。
评论区(0 条)
发表评论⏳ 加载编辑器…