从零开始的飞机追踪之旅

简介

ADS-B系统即广播式自动相关监视系统,由多地面站和机载站构成,以网状、多点对多点方式完成数据双向通信。它主要实施空对空监视。

一般情况下,只需机载电子设备(GPS接收机、数据链收发机及其天线、驾驶舱冲突信息显示器CDTI),不需要任何地面辅助设备即可完成相关功能,装备了ADS-B的飞机可通过数据链广播其自身的精确位置和其它数据(如速度、高度及飞机是否转弯、爬升或下降等)。ADS-B接收机与空管系统、其它飞机的机载ADS-B结合起来,在空地都能提供精确、实时的冲突信息。

国内民航ADS-B无线电频率处于1090MHz,想要接收到民航飞机的广播信号并看到飞机的轨迹,首先需要搭建一个的ADS-B

环境

CPU:Intel Celeron J1900
RAM:2G DDR3
OS:CentOS Stream release 8
RTL-SDR电视棒一个,芯片为RTL2832U (
电视棒白嫖至@zrm

自动草稿

安装LibUSB

如果未安装LibUSB,编译RTL-SDR驱动会出现如下错误

-- Checking for module 'libusb-1.0'
--   Package 'libusb-1.0', required by 'virtual:world', not found
CMake Error at CMakeLists.txt:88 (message):
  LibUSB 1.0 required to compile rtl-sdr

对于Ubuntu与Debian等系统可以尝试使用如下命令进行安装

sudo apt-get install libusb-1.0-0.dev

对于和我一样在CentOS Stream 8的同学可以使用如下方式安装

# 首先下载该RPM包
https://centos.pkgs.org/8-stream/centos-baseos-x86_64/libusbx-devel-1.0.23-4.el8.x86_64.rpm.html
# 安装RPM包
yum install libusbx-devel-1.0.23-4.el8.x86_64.rpm -y

编译RTL-SDR驱动

git clone git://git.osmocom.org/rtl-sdr.git
cd rtl-sdr
mkdir build && cd build
cmake ../ -DINSTALL_UDEV_RULES=ON
make
sudo make install
sudo ldconfig
sudo cp ../rtl-sdr.rules /etc/udev/rules.d/

新建blacklist-rtl.conf文件

vim /etc/modprobe.d/blacklist-rtl.conf
# 加入如下内容
blacklist dvb_usb_rtl28xxu

测试RTL-SD

如果一切正常,你应该见到如下输出

[[email protected] ~]# rtl_test -t
Found 1 device(s):
  0:  Realtek, RTL2838UHIDIR, SN: 00000001

Using device 0: Generic RTL2832U OEM
Found Rafael Micro R820T tuner
Supported gain values (29): 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 
[R82XX] PLL not locked!
Sampling at 2048000 S/s.
No E4000 tuner found, aborting.

如果出现如下错误

rtl_test: error while loading shared libraries: librtlsdr.so.0: cannot open shared object file: No such file or directory 

请尝试按以下方式解决

echo "/usr/local/lib/" > /etc/ld.so.conf

部署dump1090

拉取代码并编译dump1090

git clone https://github.com/antirez/dump1090.git
export PKG_CONFIG_PATH=~/rtl-sdr/build
make

启动dump1090

# 无Web服务
./dump1090 --interactive
# 带Web启动,默认端口8080
./dump1090 --interactive --net

安装Mono

1.首先导入存储库的GPG密钥

sudo rpm --import 'http://pool.sks-keyservers.net/pks/lookup?op=get&search=0x3fa7e0328081bff6a14da29aa6a19b38d3d831ef'

2.添加Mono存储库

yum config-manager --add-repo https://download.mono-project.com/repo/centos8-stable.repo

3.安装Mono

sudo yum install mono-complete

4.安装完成后检查Mono版本

mono --version

安装VirtualRadarServer

首先下载并解压VRS

mkdir vrs
cd vrs
wget http://www.virtualradarserver.co.uk/Files/VirtualRadar.tar.gz
tar -zxvf VirtualRadar.tar.gz

下载WebAdminPlugin并解压到vrs目录下

wget http://www.virtualradarserver.co.uk/Files/VirtualRadar.WebAdminPlugin.tar.gz
tar -zxvf VirtualRadar.WebAdminPlugin.tar.gz

创建VirtualRadar.exe.config文件并写入如下xml配置

vim VirtualRadar.exe.config
<?xml version="1.0"?>
<configuration>
    <configSections>
    </configSections>
    <startup>
        <supportedRuntime version="v2.0.50727"/>
    </startup>
    <runtime>
        <assemblyBinding  xmlns="urn:schemas-microsoft-com:asm.v1">
            <dependentAssembly>
                <assemblyIdentity name="Mono.Data.Sqlite"
                                  publicKeyToken="0738eb9f132ed756"
                                  culture="neutral" />
                <bindingRedirect oldVersion="2.0.0.0"
                                 newVersion="4.0.0.0" />
            </dependentAssembly>
        </assemblyBinding>
    </runtime>
</configuration>

修改web端口防止与dump1090冲突

vim ~/.local/share/VirtualRadar/InstallerConfiguration.xml

<?xml version="1.0" encoding="utf-8" ?>
<InstallerSettings xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    <WebServerPort>8081</WebServerPort>
</InstallerSettings>

创建用户并启动VRS

mono VirtualRadar.exe -nogui -createAdmin:admin -password:password

安装screen

yum install epel-release
yum install screen -y

启动vrs

# 创建一个screen
screen -S vrs
# 启动vrs
mono VirtualRadar.exe -nogui
# 退出当前screen
Ctrl + A + D

同理,启动dump1090

# 创建一个screen
screen -S dump1090
# 启动dump1090
./dump1090 --interactive --net
# 退出当前screen
Ctrl + A + D

其它命令

# 列出所有screen
screen ls
# 回到某个screen
screen -r vrs

如果顺利启动的话,将会看到如下信息输出

自动草稿

浏览器访问

VRS
http://192.168.1.100:8081/VirtualRadar/desktop.html
Web管理插件地址
http://192.168.1.100:8081/VirtualRadar/WebAdmin/Settings.html

自动草稿

VRS部分配置修改

如果有从公网访问管理界面的需求,请将此处修改为无限制,否则将会403

自动草稿

设置接收机地理位置(经纬度),可以使用百度地图的坐标拾取系统,设置完成后请拉到底部点击Save
http://api.map.baidu.com/lbsapi/getpoint/index.html

自动草稿

VRS可选插件部署

数据库插件
可以将飞行记录(以及可选的飞机详细信息)保存到BaseStation.sqb数据库文件中

# 下载插件并解压至vrs目录,并重启vrs
cd /root/vrs
wget http://www.virtualradarserver.co.uk/Files/VirtualRadar.DatabaseWriterPlugin.tar.gz
tar -zxvf VirtualRadar.DatabaseWriterPlugin.tar.gz

如下图所示,请将Enable勾选以启动数据库插件,并且设置数据库文件存放路径,也可选择Use Default File Name,并且勾选底下两个复选框,作用分别为将在线查询保存在数据库中以及覆盖现有飞机的详细信息,配置完成后请点击Save按钮进行保存

提示

如果yum安装Mono的时候特别慢,可以为yum添加代理

# 编辑yum配置文件
vim /etc/yum.conf
# 设置代理
proxy=http://192.168.1.101:1080/

未经允许不得转载:91天空 科技 生活 快乐 » 从零开始的飞机追踪之旅

赞 (1) 打赏

评论 0

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址