ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

开源ESP32-Plane-Radar是什么?3大亮点让1.28寸圆屏秒变实时飞机雷达

开源ESP32-Plane-Radar是什么?3大亮点让1.28寸圆屏秒变实时飞机雷达

【免费下载链接】ESP32-Plane-Radar

Open-source ESP32 firmware for a 1.28″ round display that shows live ADS-B aircraft around your location as a sonar-style plane radar.

项目地址:https://gitcode.com/gh_mirrors/es/ESP32-Plane-Radar
点击查看免费下载

ESP32-Plane-Radar是一款开源的 ESP32 飞机雷达固件,专为ESP32-C3 Super Mini + 1.28 寸 GC9A01 圆形显示屏(240×240)打造。刷入固件后,圆屏会变成一个声呐风格的ADS-B 实时飞机雷达:以你设定的位置为中心,实时显示周围航线的飞机航向、呼号和海拔,还会叠加机场跑道,堪称极客书桌上的"航班雷达小摆件" ✈️。

一、ESP32-Plane-Radar 是什么?

简单说,它是三样东西的组合:

组成说明
🧠 主控ESP32-C3 Super Mini(4MB Flash,Arduino 框架)
🖥️ 屏幕1.28 寸 GC9A01 圆屏,SPI 接口,240×240 像素
📡 数据adsb.fi 免费开放数据 API

上电连接 WiFi 后,设备会以约 3 秒的间隔拉取附近的飞机数据(刷新间隔可在 include/config.h 中调整),把航向三角形、速度矢量和标签画在深蓝色雷达网格上,整体效果非常接近专业雷达界面。

二、3大核心亮点

亮点1:真正的实时ADS-B数据,飞机"活"在屏幕上 🛫

  • 圈内飞机显示红色航向三角形 + 品红色速度矢量,并附带呼号 / 机型 / 海拔标签
  • 超出量程的飞机会在屏幕边缘显示红点,指示方向,不会"丢目标"
  • 飞机接近时目标会从边缘红点平滑变为完整符号,动态感十足

数据源逻辑位于 src/services/adsb_client.cpp,最多可同时跟踪 64 架飞机。

亮点2:零代码上手,WiFi 配置门户一键设置 📶

新手最头疼的联网问题被WiFiManager配置门户解决:

  1. 首次上电,设备自动发射热点PlaneRadar-Setup
  2. 手机连接后访问http://plane-radar.local(或http://192.168.4.1)
  3. 在网页里填好家里 WiFi、雷达中心坐标,保存即可

之后想改配置也不用拆机器——设备连上局域网后,随时通过http://plane-radar.local重新进入门户,可修改 WiFi、中心经纬度、公英制切换和跑道开关(门户实现见 src/services/wifi_setup.cpp)。

亮点3:机场跑道叠加 + 4档量程切换 🎯

  • 跑道叠加:固件内嵌全球大型机场数据(来自 OurAirports),范围内自动绘制青色跑道线并标注 ICAO 代码(如KJFK),数据文件见 include/data/large_airports.h,可用 scripts/build_large_airports.py 更新
  • 4 档量程预设:按 BOOT 按钮即可在 5 / 10 / 15 / 25 km 之间循环切换,设置自动保存到 Flash(预设定义在 include/ui/radar_range.h)
  • 公英制切换:门户里勾选 miles,距离环自动切换为英里刻度

三、硬件接线:GC9A01 ↔ ESP32-C3 引脚对照

接对线是成功的一半,官方接线表如下:

显示屏ESP32-C3 引脚
VCC3V3
GNDGND
RSTGPIO0
CSGPIO1
DCGPIO10
SDA (MOSI)GPIO3
SCL (SCLK)GPIO4
BOOT(用户按键)GPIO9

💡 引脚定义集中在 include/config.h,若换板子改这里即可。

四、上手指南:最快配置方法与烧录步骤

1. 编译并烧录固件

项目基于PlatformIO,环境为supermini(配置见 platformio.ini):

pio run -t upload # 编译并上传 pio device monitor # 打开串口监视器(115200)

如果你不想自己编译,也可以执行 scripts/merge-firmware.sh 生成单文件镜像plane-radar-merged.bin,配合浏览器烧录工具(如 esptool-js)以0x0地址刷入,全程无需电脑端 SDK。

2. 首次配置 WiFi

按上文"亮点2"完成配置后,设备会保存凭据并自动重连,WiFi 掉线也会后台静默重连,不会反复弹出配置页。

3. 日常操作速查

操作效果
短按 BOOT切换量程(5 → 10 → 15 → 25 km),断电保存
长按 BOOT 3 秒清除 WiFi / 坐标 / 单位设置,重启进入配置门户

五、项目结构一览

代码按"硬件 / 服务 / UI"三层组织,结构清晰,适合学习小型 ESP32 固件的工程划分:

  • src/main.cpp — 主循环:WiFi 状态机 + 定时拉取 ADS-B + 刷新雷达画面
  • include/ui/radar_theme.h — 雷达配色与像素布局,想换主题从这里下手
  • src/ui/radar_display.cpp — 雷达网格、飞机符号与标签绘制
  • include/services/adsb_client.h — 飞机数据结构与拉取接口
  • partitions/plane_radar.csv — 4MB Flash 分区表(单 App + SPIFFS 存放跑道数据)

六、常见问题 FAQ

Q1:需要硬件天线或接收器吗?不需要。本项目不接收 ADS-B 无线电信号,而是通过网络拉取 adsb.fi 的公共数据,只要有 WiFi 就能显示真实航班的实时位置。

Q2:为什么雷达中心不是我的位置?默认坐标在 include/config.h 的kDefaultRadarLat/Lon中,首次进入配置门户后改为你的经纬度即可,设置会永久保存。

Q3:能看到地面飞机吗?默认隐藏地面状态(taxiing/停场)的飞机,想全部显示可在kAdsbShowGroundAircraft处改为true重新编译。

Q4:如何获取仓库源码?

git clone https://gitcode.com/gh_mirrors/es/ESP32-Plane-Radar

🚀 总结:ESP32-Plane-Radar用几十块钱的硬件成本,把一块 1.28 寸圆屏变成了真实时的航班雷达,对新手友好(网页配网 + 单键操作)、对开发者友好(分层清晰的 C++ 工程 + 完整 PlatformIO 配置),无论是做成桌面摆件还是学习嵌入式显示项目的入门案例,都非常值得一试!

【免费下载链接】ESP32-Plane-Radar

Open-source ESP32 firmware for a 1.28″ round display that shows live ADS-B aircraft around your location as a sonar-style plane radar.

项目地址:https://gitcode.com/gh_mirrors/es/ESP32-Plane-Radar
点击查看免费下载

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进