899 字
4 分钟
树莓派搭建 ADS-B 接收站教程

请不要尝试将数据传给

Flightradar24、Flightaware、ADS-B Exchange、RadarBox

等境外飞机跟踪网站,否则叔叔会请你去喝茶的

一、安装准备#

  1. 本教程适用于 Raspberry Pi OS 等系统
  2. 请确保可以通过 SSH 连接到 Raspberry
  3. 请确保 Raspberry 可以连接到互联网
  4. 建议使用全新刷写的最新版系统进行安装
  5. 建议设置 APT 软件源为清华源、中科大源等国内源
  6. 本教程基于 Raspiberry 2B 和 RTL-SDR/DVB-T USB 接收器编写

二、readsb + tar1090#

仅安装 readsb#

Terminal window
curl -fsSL https://raw.giteeusercontent.com/self4m/adsb-scripts/raw/main/readsb-install.sh | sudo bash -s no-tar1090

安装 readsb + tar1090#

Terminal window
curl -fsSL https://raw.giteeusercontent.com/self4m/adsb-scripts/raw/main/readsb-install.sh | sudo bash
NOTE
  • readsb 编译安装可能耗时较长,请耐心的等待
  • 安装 tar1090 后可通过 http://设备IP/tar1090http://设备IP:8504 访问 Web 界面
  • 安装 tar1090 后,需要在 readsb 中配置设备的纬度和经度信息
    否则 tar1090 无法显示设备所在位置,并且信号接收范围会在每次重启后重新生成

卸载脚本#

Terminal window
sudo systemctl disable --now readsb
sudo /usr/local/share/tar1090/uninstall.sh

三、自动增益#

合理设置 SDR 增益可以提高有效接收量,也有助于降低 SDR 长期工作压力

自动增益脚本会根据强信号(>-3dB 的信号)占比自动进行调节:

  • 如果强信号的比例大于 7%,则增益降低
  • 如果强信号百分比低于 0.5%,则增加增益

可通过以下命令获取当前强信号占比:

Terminal window
grep -sh /run/readsb/stats.json -e '' | jq '.total.local | ((.accepted | add), .strong_signals, .signal, .noise)' | xargs -n4 echo | awk '{printf "\nPercentage of strong messages: %.3f\nSignal: %.1f\nNoise: %.1f\n", $(2) * 100 / $(1), $(3), $(4)}'

安装自动增益脚本#

Terminal window
curl -fsSL https://raw.giteeusercontent.com/self4m/adsb-scripts/raw/main/autogain-install.sh | sudo bash
NOTE
  • 该脚本会在每天凌晨 02:30 自动进行调节增益,实际可能延迟最多 30 分钟

如果安装后想尽快获取到合适的增益,建议在日间航班数量较多时运行以下命令进行调节:

Terminal window
# 在一小时内每两分钟调节一次增益
for i in {0..30}; do sudo autogain1090; sleep 120; done

手动设置增益#

如果已知合适的增益,可通过以下命令直接设置:

Terminal window
sudo readsb-gain 43.9

SDR 常用可用增益如下:

0.0 0.9 1.4 2.7 3.7 7.7 8.7 12.5 14.4 15.7 16.6 19.7 20.7 22.9 25.4
28.0 29.7 32.8 33.8 36.4 37.2 38.6 40.2 42.1 43.4 43.9 44.5 48.0 49.6 -10

卸载自动增益脚本#

如果已经找到合适的增益或不在使用自动增益脚本,可运行以下命令卸载:

Terminal window
curl -fsSL https://raw.giteeusercontent.com/self4m/adsb-scripts/raw/main/autogain-remove.sh | sudo bash

四、安装飞常准 ADS-B 数据上传脚本#

安装过程中会自动生成 UUID,并配置 SSH 登录欢迎信息

之后每次通过 SSH 登录设备时,终端都会自动显示 UUID 等相关信息,方便查看设备标识和进行管理

安装脚本#

Terminal window
curl -fsSL https://raw.giteeusercontent.com/self4m/variflight/raw/main/install.sh | sudo bash

卸载脚本#

Terminal window
curl -fsSL https://raw.giteeusercontent.com/self4m/variflight/raw/main/uninstall.sh | sudo bash

五、其他设置#

修改 RTL-SDR 接收器序号#

仅当使用飞常准 ADS-B 设备且未拆除板载 RTL-SDR 接收器时建议修改此项
一般情况下飞常准 ADS-B 设备原有 RTL-SDR 接收器序号为 0,通过 USB 连接的 RTL-SDR 接收器序号为 1

Terminal window
sudo sed -i 's/--device 0/--device 1/g' /etc/default/readsb
sudo systemctl restart readsb

加速 tar1090 数据显示#

可通过以下命令调整 GZIP_LVL 压缩级别:

Terminal window
sed -i 's/^GZIP_LVL=.*/GZIP_LVL=5/' /etc/default/tar1090
systemctl restart tar1090

GZIP_LVL 支持设置 1-9

  • 数值越低(如 1):压缩级别较低,CPU 占用更少,但需要传输更多数据
  • 数值越高(如 9):压缩级别更高,可减少网络传输量,但会增加 CPU 使用率
树莓派搭建 ADS-B 接收站教程
https://www.self4m.com/posts/raspberry-install-adsb-software/
✍️作者
Self4m
📅发布于
2024-08-31
©️许可协议
CC BY-NC-SA 4.0

商业用途必须事先获得作者授权;
非商业用途可以使用,但必须注明出处;
若有改编需采用相同许可协议发布。