DroneBridge for ESP32 是一个为 ESP32 模块设计的固件
🚁 DroneBridge for ESP32 详细部署教程
DroneBridge for ESP32 是一个为 ESP32 模块设计的固件,能将 ESP32 变成一个透明、双向、加密的串口转 Wi-Fi 或 ESP-NOW 数传链路。它是连接飞控与地面站(如 QGroundControl、Mission Planner)最经济实惠的方式之一。
这份教程将引导你完成从固件烧录到最终配置使用的全过程。
📋 部署前准备
在开始之前,你需要准备以下硬件和软件:
硬件清单
- ESP32 开发板:建议使用项目官方支持的型号(如 ESP32-C3、C6、S2、S3 等),以获得最佳兼容性。带有外部天线接口的模块能提供更远的距离。
- 飞控板:如 Pixhawk 系列或任何有 UART 接口的飞控。
- USB 数据线:用于连接 ESP32 和电脑,进行固件烧录。
- 杜邦线:用于连接 ESP32 和飞控。
- (可选)USB 转串口模块:在配置“GND-Unit”为特定长距离模式时可能需要。
软件准备
- USB 串口驱动:确保电脑能识别你的 ESP32 开发板。
- 浏览器:用于访问 ESP32 的 Web 配置界面。
- 地面站软件:如 QGroundControl (QGC) 或 Mission Planner,用于最终测试数据链路。
🔧 第一步:烧录固件
烧录固件是部署的核心步骤。官方强烈推荐使用在线烧录工具,这是最简单、最不容易出错的方式。
方式一:使用官方在线烧录工具(强烈推荐)
- 连接 ESP32:使用 USB 数据线将 ESP32 开发板连接到你的电脑。
- 打开烧录工具:在浏览器中访问 DroneBridge 官方提供的在线烧录页面(通常在项目官网可以找到链接)。
- 连接设备:在网页工具中,选择正确的串口号(例如 Windows 上的
COMx或 macOS/Linux 上的/dev/cu.usbserial-xxx),然后点击“连接”。 - 选择固件版本和类型:
- 版本:一般选择最新的稳定版(Stable)。
- 固件类型 (Firmware Flavor):这是关键的一步,根据你的硬件和用途选择:
- ESP32(-XX):通用固件。适用于大多数开发板,作为连接飞控的“AIR-Unit”(空中端),或通过外部 USB 转串口模块连接电脑的“GND-Unit”(地面端)。
- ESP32(-XX) Official HW:用于官方硬件的固件,UART 引脚已预先配置好。
- ESP32(-XX) USBSerial:用于 GND-Unit。让 ESP32 通过自身的 USB-JTAG 接口直接与电脑通信,无需外部 USB 转串口模块。
- ESP32(-XX) noUARTConsole:用于 GND-Unit。适用于那些带有板载 USB 转串口芯片,但该芯片连接到了调试 UART 的开发板。此固件会禁用调试控制台,释放该 UART 供 DroneBridge 使用。
- 开始烧录:点击“Flash Firmware to ESP32!”按钮,等待进度条完成。
方式二:使用 esptool.py 命令行烧录(进阶)
如果你更习惯命令行,可以使用 Espressif 官方工具 esptool.py。
下载固件:从项目的 GitHub Releases 页面 下载最新的预编译二进制文件(
.zip压缩包)。安装 esptool:
pip install esptool擦除 Flash 并烧录:在终端中导航到解压后的固件目录,运行类似以下的命令(注意替换
PORT为你的串口号):1
2esptool.py --chip esp32 --port PORT erase_flash
esptool.py --chip esp32 --port PORT --baud 460800 write_flash 0x1000 bootloader.bin 0x8000 partitions.bin 0x10000 firmware.bin提示:具体的烧录地址和文件名请参考下载的固件包中的
flashing_instructions.txt文件。在烧录新固件前,建议先执行擦除操作。
🔌 第二步:硬件连接
将 ESP32 与飞控连接起来,实现物理层通信。
- 找到飞控的 TELEM 端口:通常飞控有 1-2 个 6 针的
TELEM接口。 - 连接 UART:按照下面的对应关系连接飞控和 ESP32:
- 飞控 TELEM 的 TX → ESP32 的 RX(接收引脚)
- 飞控 TELEM 的 RX → ESP32 的 TX(发送引脚)
- 飞控 TELEM 的 GND → ESP32 的 GND
- 飞控 TELEM 的 5V/VCC → ESP32 的 VIN/VCC(注意:确认你的 ESP32 开发板支持 5V 输入,否则必须接 3.3V)。
- 选择引脚:大部分教程示例使用
GPIO17(TX) 和GPIO16(RX)。官方不推荐使用开发板上直接标有 TX/RX 的引脚,因为它们通常连接到了内部的 USB 转串口芯片,用于输出调试信息。你可以在 Web 配置界面中自由指定其他空闲 GPIO 作为 UART 引脚。 - 供电:连接稳定后,ESP32 应该会通过飞控的 TELEM 端口供电并启动。
🌐 第三步:初次配置(Web 界面)
首次启动的 ESP32 会默认创建一个 Wi-Fi 热点,你可以通过浏览器连接到它进行配置。
- 连接 Wi-Fi 热点:在你的电脑或手机上,找到名为
DroneBridge ESP32的 Wi-Fi 热点,密码是dronebridge。 - 访问配置页面:打开浏览器,在地址栏输入
http://dronebridge.local或http://192.168.2.1并访问。 - 进行基本配置:在 Web 界面中,你需要设置几个关键参数:
- 模式 (Mode):选择工作模式。对于第一次测试,保持默认的 WiFi Access Point Mode。
- UART 引脚 (UART TX/RX Pin):设置为你实际连接的 GPIO 号码(例如 TX=17, RX=16)。
- UART 波特率 (UART Baud Rate):必须与飞控对应串口的波特率一致。PX4 的 TELEM 端口默认通常是
115200。 - 协议 (Protocol):根据飞控的设定选择 MAVLink、MSP、LTM 或 Transparent(透传)。
- 保存并重启:点击页面底部的
Save按钮,ESP32 将应用新配置并重启。
📡 第四步:连接地面站 (GCS)
配置完成后,就可以连接地面站软件,验证数据链路是否畅通了。
- 对于 QGroundControl:一般情况下,QGC 会自动检测到来自 ESP32 的 UDP 广播(端口 14550)并建立连接。如果未自动连接,可以手动添加 UDP 连接,目标地址为 ESP32 的 IP(默认
192.168.2.1),端口14550。 - 对于 Mission Planner:需要选择 UDP 连接,并在设置中指定 ESP32 的 IP 地址和端口 14550。
🛠️ 高级配置:长距离模式
如果需要更远的通信距离(可达 1 公里以上),可以使用 ESP-NOW LR Mode 或 WiFi LR Mode。这需要两个 ESP32 模块:一个作为“AIR-Unit”连接飞控,另一个作为“GND-Unit”连接地面站电脑。
配置要点:
- AIR-Unit:模式设置为 ESP-NOW LR Mode AIR,设置一个安全密码和通信信道。配置好后,Web 界面将不可用,只能通过按键重置。
- GND-Unit:模式设置为 ESP-NOW LR Mode GND,必须与 AIR-Unit 使用相同的密码和信道。GND-Unit 通过 USB 转串口模块或特殊固件连接到电脑。
🐛 常见问题与排障
- 无法连接到
DroneBridge ESP32热点:确保 ESP32 已正确供电。如果之前修改过配置导致问题,可以长按 ESP32 上的 Boot 按钮(超过 1.5 秒)来恢复所有设置到出厂默认值。 - Web 界面无法打开:检查电脑是否真正连接到了 ESP32 的热点,可能需要暂时禁用电脑的蜂窝网络(手机热点),以防止流量被路由出去。
- 地面站收不到数据:
- 确认 ESP32 和飞控的波特率完全匹配。
- 确认 TX 与 RX 引脚交叉连接正确。
- 对于 UDP 连接,确保地面站向 ESP32 的端口(如 14550)发送了第一个数据包(如心跳包),以完成“注册”。在 QGC 中指定服务器地址可以解决此问题。
- 不同固件版本更新:从 v1.x 升级到 v2.x 时,必须先擦除 Flash,否则可能无法启动。从 v2.0 之后版本升级则通常无需此操作。
对于更详细的信息,建议查阅项目官方的 DroneBridge Docs 和 GitHub Wiki。



