← 返回全部文章

一块 ESP32,给飞控加上无线遥测

DroneBridge for ESP32 能把常见开发板变成双向串口无线桥。本文从选板、刷写、接线到地面站配置走一遍,并把距离、安全和飞行边界讲清楚。

给飞控加一条无线遥测链路,未必非要先买成套数传电台。开源项目 DroneBridge for ESP32 可以把常见的 ESP32 开发板变成双向串口无线桥:飞控从 UART 输出 MAVLink,ESP32 再通过 Wi-Fi、Wi-Fi LR 或 ESP-NOW 把数据送到手机、电脑或另一块 ESP32。

它适合看姿态、电量、GPS、任务状态,也能把地面站命令送回飞控。成本低,网页配置也省事。不过先把定位说清楚:这是低数据率遥测方案,不能传航拍视频,也不该未经地面测试就承担唯一的关键控制链路。

DroneBridge 的典型连接结构。图片来源:项目官方仓库。

先看它适不适合你的设备

项目当前支持 ESP32 Classic、S2、S3、C3 和 C6。新装可以优先看 ESP32-C6;手里已有 C3、S3 或普通 ESP32,也可先核对 Release 里有没有对应固件。ESP32-C5、5 GHz 和 OTA 属于项目另一个版本的能力,不要与这里的标准开源固件混在一起。

协议方面,它支持 MAVLink、MSP、LTM,也能用透明模式转发其他串口负载。常见用途包括:

  • PX4、ArduPilot 飞控连接 QGroundControl 或 Mission Planner;
  • Betaflight/MSP 数据透传;
  • 地面车、机器人和自制传感器的 UART 无线桥;
  • 用两块 ESP32 组成 ESP-NOW 或 Wi-Fi LR 低速远距离链路。

项目资料给出的参考距离是普通 Wi-Fi 最远约 150 米,ESP-NOW 或 Wi-Fi LR 最远约 1 公里。这些数字受开发板、天线、遮挡、2.4 GHz 干扰和发射功率影响,不能当成实际工作半径,更不代表在当地可以合法飞到这个距离。

最省事的刷写方法

普通用户直接用项目的 Web Flasher:

https://dronebridge.github.io/ESP32/install.html

准备一根支持数据传输的 USB 线,用 Chrome、Edge 等支持 Web Serial 的浏览器打开页面,然后按下面的顺序操作:

  1. 点击 Connect,选择 ESP32 对应的串口;
  2. 选择芯片型号和 v2.2.1 stable
  3. 不确定固件口味时先选标准 UART 版;
  4. 点击 Flash,完成后拔插一次 USB;
  5. 搜索名为 DroneBridge for ESP32 的 Wi-Fi。

Web Flasher 示意图。界面可能随版本调整,以在线页面为准。图片来源:项目官方仓库。

当前稳定版是 v2.2.1,发布于 2026 年 5 月 16 日。习惯自己下载固件的读者,可以先核对压缩包哈希:

curl -L --fail \
  -o DroneBridge_ESP32_v2_2_1_stable.zip \
  https://github.com/DroneBridge/ESP32/releases/download/v2.2.1/DroneBridge_ESP32_v2_2_1_stable.zip

sha256sum DroneBridge_ESP32_v2_2_1_stable.zip

预期 SHA-256:

39a61f685fb4bb503d1ac2e10e59a972336e324f72055e1f4e8773dda3f32590

从 v1.5 升级时,Release 说明要求先擦除 Flash。命令行刷写还要特别留意一个文档差异:v2.2.1 下载包把 www.bin 写到 0x190000,旧安装页示例仍可能出现 0x110000。以下载包里的 flashing_instructions.txtflash_args.txt 为准,别从网页片段拼刷写参数。

接线只记四件事

接线前先拆桨或锁定动力。ESP32 UART 使用 3.3V 逻辑电平,最基本的连接是:

ESP32 TX  → 飞控 RX
ESP32 RX  → 飞控 TX
ESP32 GND → 飞控 GND
供电       → 按开发板说明书确认

TX 与 RX 要交叉,GND 必须共地。不要把 5V 直接送进 ESP32 GPIO;某些开发板也不允许外部 5V 和 USB 同时供电。板上印着 TX/RX 的默认串口可能被调试日志占用,实际引脚应根据开发板原理图和固件口味选择。

官方 ESP32-C6 板的预设是 TX GPIO 21、RX GPIO 2、RTS GPIO 22、CTS GPIO 23。RTS/CTS 没接时,在配置页里都填 0。普通开发板不要照搬这组数字,先查启动配置脚、Flash 占用脚和板载 USB 的接法。

Pixhawk 接线示意。不同飞控接口定义可能不同,通电前再核对一次。图片来源:项目官方仓库。

第一次配置:先跑通普通 Wi-Fi

刷写完成后,默认参数通常是:

SSID: DroneBridge for ESP32
密码: dronebridge
管理地址: http://192.168.2.1/
UART 波特率: 57600
协议: MAVLink
模式: Wi-Fi AP
UDP 端口: 14550
TCP 端口: 5760

连接这个 Wi-Fi 后,打开 http://dronebridge.local/;解析失败就用 http://192.168.2.1/。手机若自动切回蜂窝网络,可暂时关闭“智能切换网络”。

Web 配置界面。图片来源:项目官方仓库。

先改默认密码,再配置 UART 引脚、波特率和协议。飞控端串口与 DroneBridge 的波特率必须一致。QGroundControl 通常会监听 UDP 14550;TCP 连接则填 ESP32 的 IP 和 5760 端口。

推荐先在 Wi-Fi AP 模式完成这条最短验证链:

飞控上电
→ 地面站出现心跳
→ 姿态与电量持续更新
→ 断开 Wi-Fi 后飞控按预设 failsafe 工作
→ 重连后数据恢复

完成普通 Wi-Fi 测试,再切 ESP-NOW 或 Wi-Fi LR。这样遇到问题时,能先排除 UART、波特率和地面站配置错误。

想拉远距离,需要两块 ESP32

ESP-NOW 和 Wi-Fi LR 的实用形态通常是双端:飞行端 ESP32 接飞控,地面端 ESP32 通过 USB 或 UART 接电脑。两端芯片、信道、模式和密码要匹配。

ESP-NOW 双端结构。图片来源:项目官方仓库。

ESP-NOW 模式下 Web UI 不可用,所以每次改模式前先把密码、UART 和信道检查好。链路单包有效负载和吞吐也有限,适合遥测,不适合大文件。项目当前还有关于长 MAVLink 数据包传递的开放问题,大包、MAVFTP 或持续高流量场景应单独压测。

天线位置往往比参数更影响结果。尽量远离碳纤维机架、电池、图传发射机和高电流线,先做近距离桌面测试,再逐步增加距离并记录丢包、RSSI、重连时间和飞控 failsafe 行为。

默认配置并不等于安全配置

项目在 Wi-Fi AP 模式使用 WPA2-PSK,ESP-NOW 负载使用 AES-256-GCM。加密算法听起来很强,但系统安全仍取决于密码、管理网络和飞控协议本身。

第一轮配置至少做这几项:

  • 立即更换公开的默认密码,使用不重复的随机长口令;
  • 不接入公共 Wi-Fi,不把管理地址或 TCP/UDP 端口映射到互联网;
  • 只让可信设备加入 DroneBridge 的无线网络;
  • 飞控支持时启用 MAVLink signing 和必要的命令限制;
  • 不公开包含调试信息的完整启动日志;
  • 设置飞控独立的 RTL、Land 或其他失控保护。

管理页走 HTTP,REST 接口也没有单独登录层。只要设备进入这个 Wi-Fi,理论上就接近了管理信任区。双向遥测链路还能把命令送回飞控,不能只把它当作“看看数据”的只读屏幕。

上机前做一轮地面验收

我会把首次验收拆成四组,而不是接上线就飞:

  1. 串口:静置 20 分钟,观察心跳、姿态和 GPS 是否连续,有没有乱码和周期性断流;
  2. 网络:主动断开地面站、重启 ESP32、切换手机 Wi-Fi,记录恢复所需时间;
  3. 安全:确认默认密码已改,公共网络无法访问管理页,地面站只连接预期端口;
  4. 失效:拆桨状态下模拟遥测断链,确认飞控不会因为这块板重启或串口异常而进入危险状态。

如果只是桌面机器人或传感器桥,ESP32 方案便宜而灵活。放到无人机上,电源噪声、天线布局、无线干扰和固件问题都会被放大。正式飞行前还要遵守实名登记、远程识别、空域和无线电管理要求;自制遥测模块不会替代这些义务。

DroneBridge for ESP32 最有价值的地方,是让串口遥测的试错成本降了下来。先用一块板跑通 Wi-Fi AP,再决定是否增加第二块板和远距离模式,这条路线省钱,也更容易定位故障。

你更想把它用在飞控遥测、地面车,还是普通单片机无线透传?

来源链接:

来源:https://github.com/DroneBridge/ESP32