Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

FlareLink - 远程点火装置

基于ESP32-C3的无线点火控制系统,通过UART触发信号控制高压发生器的开关。 产品图

🎯 系统概述

FlareLink是一个双ESP32-C3系统:

  • 发送端(ESPHome):通过GPIO9物理按钮或Web界面触发,发送控制信号
  • 接收端(PlatformIO/Arduino):接收UART信号,驱动GPIO12控制MOSFET开关

工作原理

[发送端] GPIO9按钮 → UART TX(GPIO0)
           ↓ (无线传输,如LoRa)
[接收端] UART RX(GPIO1) → 检测5x0xFF → GPIO12高电平(2秒) → MOSFET → 高压发生器

📋 硬件需求

接收端(点火控制器)

  • ESP32-C3开发板(AirM2M CORE ESP32C3)
  • 开关模块(二选一):
    • MOSFET模块(N沟道,推荐≥10A)
    • 继电器模块(更简单,推荐5V触发的继电器)
  • 高压发生器
  • LoRa模块(可选,用于无线通信)

发送端(遥控器)

  • ESP32-C3开发板
  • 按钮(连接到GPIO9和GND)
  • LoRa模块(可选)

🔌 接线说明

接收端 - 方案1:MOSFET(推荐)

ESP32-C3          连接
━━━━━━━━━━━━━━━━━━━━━━━━━━━━
GPIO0  (TX)   →   LoRa模块 RX
GPIO1  (RX)   ←   LoRa模块 TX
GPIO12        →   MOSFET栅极(G)

MOSFET接线:
  S (源极)    →   见说明
  D (漏极)    →   见说明
  G (栅极)    ←   GPIO12


说明: 高压发生器上通常有一个4脚开关,将MOSFET的S-D连接到
      开关的对角线上(如1-3或2-4),MOSFET导通时相当于短路
      这两个对角接线柱,从而触发高压发生器工作。

⚠️ 重要:
   1. 高压发生器电源负极必须与ESP32-C3的GND连接(共地)
   2. MOSFET源极(S)接ESP32 GND
   3. MOSFET漏极(D)接高压发生器开关的一个对角接线柱
   4. 开关的另一个对角接线柱也接ESP32 GND
   
⚠️ 已知问题:
   使用MOSFET方案时可能出现ESP32死机/重启,疑似高压发生器的
   电流倒灌导致。建议添加光耦隔离或改用继电器方案(更可靠)。

接收端 - 方案2:继电器(更简单)

ESP32-C3          连接
━━━━━━━━━━━━━━━━━━━━━━━━━━━━
GPIO0  (TX)   →   LoRa模块 RX
GPIO1  (RX)   ←   LoRa模块 TX
GPIO12        →   继电器模块 IN

继电器模块接线:
  VCC         →   5V (或3.3V,取决于继电器型号)
  GND         →   ESP32-C3 GND
  IN          ←   GPIO12
  COM         →   高压发生器开关的一个对角接线柱
  NO (常开)   →   高压发生器开关的另一个对角接线柱

优点: 
  - 接线更简单,无需考虑共地问题
  - 继电器内部光耦隔离,更安全
  - 不需要理解MOSFET工作原理
  
注意:
  - 使用低电平触发的继电器时,代码需要反转输出逻辑
  - 继电器有机械寿命限制(通常10万次以上)

发送端

ESP32-C3          连接
━━━━━━━━━━━━━━━━━━━━━━━━━━━━
GPIO0  (TX)   →   LoRa模块 TX
GPIO1  (RX)   ←   LoRa模块 RX
GPIO9         →   按钮一端
GND           →   按钮另一端

🚀 软件功能

接收端(src/main.cpp

  • 触发条件:连续接收5个0xFF字节
  • 输出行为:GPIO12输出2秒高电平信号
  • 安全特性
    • 触发期间忽略后续UART数据,防止误触发
    • 2秒后自动关闭,防止过热
    • 串口日志监控所有事件
  • 波特率:9600 bps

发送端(lora-esp32c3.yaml

  • 手动触发:按下GPIO9物理按钮发送5x0xFF
  • 自动模式:每秒发送测试包(可通过Web界面开关)
  • Web控制:通过浏览器访问设备IP控制
  • 按钮功能
    • "Send High Signal (FF)":发送5x0xFF触发信号
    • "Send Pattern (AABB)":发送测试数据包

📦 编译与上传

接收端(PlatformIO)

# 编译
pio run

# 上传固件
pio run -t upload

# 查看日志
pio device monitor -b 115200

发送端(ESPHome)

  1. 编辑secrets.yaml,填写Wi-Fi凭据:
wifi_ssid: "你的WiFi名称"
wifi_password: "你的WiFi密码"
  1. 编译并上传:
esphome run lora-esp32c3.yaml

📊 日志示例

正常触发流程

=== ESP32-C3 UART Trigger Started ===
GPIO12 initialized as OUTPUT (LOW)
UART initialized: TX=GPIO0, RX=GPIO1, Baud=9600
Waiting for 5x 0xFF trigger...

[RX] 0xFF (count: 1/5)
[RX] 0xFF (count: 2/5)
[RX] 0xFF (count: 3/5)
[RX] 0xFF (count: 4/5)
[RX] 0xFF (count: 5/5)
[TRIGGER] 5x 0xFF detected! GPIO12 -> HIGH for 2000ms

[STATUS] GPIO12=HIGH, elapsed=500ms/2000ms
[STATUS] GPIO12=HIGH, elapsed=1000ms/2000ms
[STATUS] GPIO12=HIGH, elapsed=1500ms/2000ms
[OUTPUT] GPIO12 -> LOW (elapsed=2000ms, ready for next trigger)

⚙️ 配置参数

可调整参数(src/main.cpp

constexpr int UART_TX_PIN = 0;              // UART发送引脚
constexpr int UART_RX_PIN = 1;              // UART接收引脚
constexpr int OUTPUT_PIN  = 12;             // 输出控制引脚
constexpr uint32_t UART_BAUD = 9600;        // 波特率
const unsigned long OUTPUT_DURATION = 2000;  // 高电平持续时间(ms)

⚠️ 安全须知

  1. 电气安全

    • 共地连接:高压发生器电源负极必须与ESP32-C3的GND连接,否则MOSFET无法正常导通
    • MOSFET保护:MOSFET方案存在电流倒灌风险,可能导致ESP32死机
      • 推荐方案:使用光耦隔离MOSFET驱动信号
      • 简易方案:改用继电器模块(内置光耦隔离)
    • 高压发生器必须正确接地
    • 使用适当额定的MOSFET(建议≥10A,≥60V)
    • 添加续流二极管保护MOSFET
    • 确保所有高压连接绝缘良好
  2. 操作安全

    • 首次测试时不连接高压发生器,使用LED验证功能
    • 使用前检查所有接线
    • 保持安全距离进行远程操作
    • 不要在易燃环境中使用
  3. 软件安全

    • 2秒自动断开防止过载
    • 建议根据实际负载调整OUTPUT_DURATION
    • 测试时可将持续时间改为更短(如500ms)

🔧 故障排查

问题 可能原因 解决方案
GPIO12持续高电平 代码崩溃/看门狗重启 检查串口日志,确认固件正常运行
无法触发 UART接线错误 检查TX/RX交叉连接
触发后立即关闭 UART缓冲区干扰 已在代码中修复(清空缓冲区)
ESP32频繁重启 电源不足 使用独立5V电源供电

📁 项目结构

FlareLink/
├── src/
│   └── main.cpp              # 接收端主程序
├── lora-esp32c3.yaml         # 发送端ESPHome配置
├── secrets.yaml              # Wi-Fi凭据(需手动创建)
├── platformio.ini            # PlatformIO配置
└── README.md                 # 本文档

📝 技术规格

  • MCU:ESP32-C3 (RISC-V 160MHz)
  • RAM:320KB
  • Flash:4MB
  • UART波特率:9600 bps
  • 触发信号:5个连续0xFF字节
  • 输出时长:2秒(可配置)
  • 输出电平:3.3V(驱动MOSFET栅极)

🔄 版本历史

  • v1.0 - 初始版本
    • UART触发检测
    • 2秒定时输出
    • 完整日志支持
    • ESPHome发送端集成

📄 许可证

本项目仅供学习和研究使用。使用者需自行承担使用本设备的所有风险和责任。

⚡ 免责声明

本设备涉及高压电路,操作不当可能造成人身伤害或财产损失。使用前请:

  • 充分了解电气安全知识
  • 遵守当地法律法规
  • 在专业人员指导下使用
  • 严禁用于非法用途

使用本项目即表示您已知晓并接受上述风险。

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages