当前位置: 首页 > article >正文

(1)(1.4) ESP32 wifi telemetry

文章目录

前言

1 用于ESP32的DroneBridge

2 推荐的硬件

3 下载和烧录固件

4 为ESP32配置DroneBridge


前言

ESP32 是现成的 Wi-Fi 模块,具有完整的 TCP/IP 协议栈和微控制器功能。它们提供专用的 UARTSPII2C 接口。它们可与任何 ArduPilot 自动驾驶控制器配合使用。


1 用于ESP32的DroneBridge

适用于 ESP32DroneBridge 提供透明、双向的串行至 WiFi 桥接器。

使用 WiFi 协议无法提供与其他 DroneBridge 实现相同的范围。典型的 WiFi 范围约为 50m 200m,具体取决于天线。高增益定向天线可提供更大的范围。

2 推荐的硬件

几乎所有 ESP32 开发板都能运行 ESP32DroneBridge。建议使用带有外部天线连接器的电路板和模块,因为这些电路板和模块可以提供更远的距离。

Warning

大多数模块仅支持 3.3V 输入,而某些自动驾驶仪串行端口仅提供 5V。你需要检查兼容性,必要时降低电压。一般不建议使用自动驾驶仪3.3V 电源,除非你确定它能为你使用的 ESP32 板提供足够的电流。

接受 3.3V 电源的模块和 DevKits 的一些示例:

  • AZDelivery DevKit C
  • TinyPICO - ESP32 Development Board - V2
  • Adafruit HUZZAH32 – ESP32 Feather Board
  • Adafruit AirLift – ESP32 WiFi Co-Processor Breakout Board (需要 FTDI 适配器来烧录固件)
  • Adafruit HUZZAH32 (需要 FTDI 适配器来烧录固件)
  • ESP32-WROOM-32UE (仅模块 - 需要定制 PCB)
  • ESP32-WROOM-32E (仅模块 - 需要定制 PCB)

Note

带有 IPEX 外置天线端口的 NodeMCUDevKit 板通常也提供默认激活的板载天线。你可能需要重新焊接一个电阻器来激活外部天线端口。

3 下载和烧录固件

GitHub 存储库下载固件(Download the firmware from the GitHub repository),并按照其中的烧录说明进行操作(follow the flashing instructions there)。它们始终是最新的。

Note

请按照 GitHub 存储库中的闪存说明进行操作(Follow the flashing instructions inside the GitHub Repository)。不同版本的 ESP32 DroneBridge 可能会有不同的确切参数。

为方便起见,在此给出一些简短说明:

  • 下载预编译固件二进制文件(Download the pre-compiled firmware binaries);
  • 通过 USB/Serial 桥接器将 DEVKit 与电脑连接(大多数 DEVKit 已提供 USB 端口,用于闪存和调试);
  • 擦除闪存并将 DroneBridge for ESP32 固件烧录到 ESP32 上;
  • 使用 Espressif Flash 下载工具(Espressif Flash Download Tool)(仅限 Windows);
  • 使用 esp-idf/esptool(所有平台)。
  • ESP32 进行电源循环;
  • 连接到"DroneBridge for ESP32WiFi 网络并为你的应用配置固件。

4 为ESP32配置DroneBridge

你可以通过 Web 界面更改默认配置。通过 WiFi 连接到 ESP32,然后在浏览器地址栏中输入 dronebridge.localhttp://dronebridge.local192.168.2.1

默认配置

  • SSID: DroneBridge for ESP32
  • Password: dronebridge
  • Transparent/MAVLink
  • UART baud rate 115200
  • UART TX pin 17
  • UART RX pin 16
  • Gateway IP: 192.168.2.1

自定义设置和网络界面

你可以通过网络界面更改默认配置。

通过 WiFi 连接到 ESP32,并在浏览器地址栏中输入 dronebridge.localhttp://dronebridge.local192.168.2.1

Note

某些设置需要重新启动 ESP32 才能生效。

布线

接线非常简单,对于连接到自动驾驶仪任何串行端口(如 TELEM1TELEM2)的所有设备而言,接线方式基本相同。本指南在此不作详细介绍,但提供了以下接线大纲。

1.ESP32UART 连接到自动驾驶仪UART(例如 TELEM 1TELEM 2 端口)。确保电压水平匹配!大多数 ESP32 DevKits 只能使用 3.3V

  • TX to RX;
  • RX to TX;
  • GND to GND;
  • ESP32 提供稳定的 3.3V5V 电源(取决于 DevKit 的可用输入和自动驾驶仪的功能)。

2.自动驾驶仪端口设置为 MAVLINK 12 协议。

有些 ESP32 DevKits 制造商在其产品上标注了错误的引脚。如果遇到问题,请确保电路板上的引脚标签正确无误。

确保在布线时始终遵循 ESP32 板制造商的说明。尤其是电源。

ArduPilot配置

配置与 ESP32 连接的自动驾驶仪UARTDroneBridge 的默认配置为:

  • Protocol: MAVLink (v1 or v2);
  • Baudrate: 115200 baud。

如果连接到串行接口 2,则应在自动驾驶仪上设置这些参数(如果使用其他串行接口,请将参数名称中的"2"替换为串行接口的编号):

  • SERIAL2_PROTOCOL = 2 (MAVLink2) or 1 (MAVLink1);
  • SERIAL2_BAUD = 115 (115200 baud)。

如果出现连接问题,可将 BRD_SER2_RTSCTS = 0 设置为禁用流量控制,但通常没有必要这样做。

连接到地面站

提供以下连接选项:

  • 通过 14550 端口向所有连接设备发送 UDP 单播;
  • 5760 端口的 TCP

DroneBridge for ESP32 将自动通过 UDP 将所有数据转发至所有连接的 WiFi 设备的 14550 端口。QGroundControlMission Planner 将自动检测连接,无需采取进一步行动。

故障排除

在刷新新版本/固件之前,请务必擦除 ESP32 的闪存。

检查 ESP 板上的引脚是否标注正确。

在浏览器地址栏中输入 IP 地址 http://192.168.2.1。不支持 https!使用手机时,可能需要断开蜂窝网络连接才能访问网络界面。

如果你的网络与 ESP32 DBIP 范围相同,则需要将 Webinterface 中的网关 IP 地址更改为 192.168.5.1

API

ESP32DroneBridge 提供 REST:API,允许你读写配置选项。你不必局限于 Web 界面提供的选项(如波特率)。你可以使用 API 设置自定义波特率或将系统集成到自己的设置中。

申请设置

http://dronebridge.local/api/settings/request

申请统计资料

http://dronebridge.local/api/system/stats

触发重启

http://dronebridge.local/api/system/reboot

触发设置更改:发送有效的 JSON

{

  "wifi_ssid": "DroneBridge ESP32",

  "wifi_pass": "dronebridge",

  "ap_channel": 6,

  "tx_pin": 17,

  "rx_pin": 16,

  "telem_proto": 4,

  "baud": 115200,

  "msp_ltm_port": 0,

  "ltm_pp": 2,

  "trans_pack_size": 64,

  "ap_ip": "192.168.2.1"

}

to

http://dronebridge.local/api/settings/change


http://www.kler.cn/a/162392.html

相关文章:

  • [CKS] K8S NetworkPolicy Set Up
  • 微擎框架php7.4使用phpexcel导出数据报错修复
  • ML 系列: 第 23 节 — 离散概率分布 (多项式分布)
  • 第74期 | GPTSecurity周报
  • GISBox VS ArcGIS:分别适用于大型和小型项目的两款GIS软件
  • 链游系统定制化开发:引领游戏产业的新时代
  • Unity 性能优化的手段【更新中】
  • 前端组件库开发
  • 【开题报告】基于SpringBoot的影视作品网站的设计与实现
  • 利用异或、取反、自增bypass_webshell_waf
  • 电脑出现错误代码0xc000000f怎么办,有效解决0xc000000f问题
  • [wp]“古剑山”第一届全国大学生网络攻防大赛 Web部分wp
  • Python-滑雪大冒险【附源码】
  • uni-app解决video组件全屏时页面横竖错乱问题
  • Fiddler的配置、原理和使用
  • 爬虫-BeautifulSoup之XML篇
  • synxflow 安装环境
  • es6 相关面试总结
  • k8s引用环境变量
  • js数组删除某个元素
  • JS如何实现竖屏轮播图
  • 机器学习应用 | 使用 MATLAB 进行异常检测(上)
  • 贪吃的猴子 - 华为OD统一考试(C卷)
  • 【ArcGIS微课1000例】0078:创建点、线、面数据的最小几何边界
  • 贝蒂的捣蛋小游戏~(C语言)
  • 解决Ubuntu16.04没声音