广播式自动相关监视(英语:Automatic dependent surveillance – broadcast,缩写ADS–B)是一种飞机监视技术,飞机通过卫星导航系统确定其位置,并进行定期广播,使其可被追踪。空中交通管制地面站可以接收这些资讯并作为二次雷达的一个替代品,从而不需要从地面发送问询信号。其他飞机也可接收这些资讯以提供姿态感知和进行自主规避。
ADS–B是一种「自动」系统,它不需要机师或其他外部资讯输入,而是依赖飞机导航系统的数据。资料来源: wiki -广播式自动相关监视
绝大部分的民航机都会配备这个装置,并不断发送讯号告知其他飞机、塔台目前自身飞机的高度、经纬度、呼号、速度、航向等等讯息。由於这些讯息并不会加密,因此就可以透过天线来接收这些资料。蛮多能查看即时飞机的网站及App也都是透过这个原理来取得资料,像是 FlightRadar24、FlightAware。
首先你需要一个能够接收到 1090mhz
的设备,这边使用 RTL2832U + R820T
晶片组的电视棒就可以了,在露天虾皮等等平台搜寻 RTL2832U + R820T
可以找到很多厂牌及款式,价格大概400~600,买最便宜的就可以了。
如第一张图,我在四楼使用电视棒附的小天线就能收到近中国大陆的讯号,在遮蔽物少的地方是可以不用额外买天线来用。
由於电视棒只能接收不能发送,因此不用担心「干扰通信」以及「没有业余无线电执照」等会触法问题!
此外也可以将接收到的信号提供给 FlightRadar24 等网站,可以换取免费的高级会员资格
在网路上能找到许多能解码ADS-B
的软件,不过几乎都是要付费的,且功能也都蛮阳春的。
这边要使用的是 GitHub 上的开源专案 Dump1090,它不但是免费的还有内建 WebServer
让你能在本机上看到图形化的资料(如第一张图),如果觉得太丑的话还能自己写网页来接 Dump1090 吐出来的资料。
Linux 跟 Mac 会比较麻烦一点,首先先把专案 clone 下来:
git clone https://github.com/MalcolmRobb/dump1090.git
接着进资料夹下指令
cd ./dump1090
make
这时候会遇到问题,缺少了 rtl-sdr.h
。其实他就在资料夹 rtlsdr
里面,只要把资料夹内的两个东西复制到外面的目录就好了!
/bin/sh: pkg-config: command not found
出现这个问题就是电脑中没安装 pkg-config
套件。只要安装就好了。
# Linux
sudo apt-get install pkg-config
# Mac
brew install pkg-config
Package librtlsdr was not found in the pkg-config search path
这个问题是缺少 librtlsdr
套件,一样也是安装就好。
# Linux
sudo apt-get install librtlsdr
# Mac
brew install librtlsdr
透过 --help
可以看到有哪些可以使用的指令
./dump1090 --help
-----------------------------------------------------------------------------
| dump1090 ModeS Receiver Ver : 1.10.3010.14 |
-----------------------------------------------------------------------------
--device-index <index> Select RTL device (default: 0)
--gain <db> Set gain (default: max gain. Use -10 for auto-gain)
--enable-agc Enable the Automatic Gain Control (default: off)
--freq <hz> Set frequency (default: 1090 Mhz)
--ifile <filename> Read data from file (use '-' for stdin)
--interactive Interactive mode refreshing data on screen
--interactive-rows <num> Max number of rows in interactive mode (default: 15)
--interactive-ttl <sec> Remove from list if idle for <sec> (default: 60)
--interactive-rtl1090 Display flight table in RTL1090 format
--raw Show only messages hex values
--net Enable networking
--modeac Enable decoding of SSR Modes 3/A & 3/C
--net-beast TCP raw output in Beast binary format
--net-only Enable just networking, no RTL device or file used
--net-bind-address <ip> IP address to bind to (default: Any; Use 127.0.0.1 for private)
--net-http-port <port> HTTP server port (default: 8080)
--net-ri-port <port> TCP raw input listen port (default: 30001)
--net-ro-port <port> TCP raw output listen port (default: 30002)
--net-sbs-port <port> TCP BaseStation output listen port (default: 30003)
--net-bi-port <port> TCP Beast input listen port (default: 30004)
--net-bo-port <port> TCP Beast output listen port (default: 30005)
--net-ro-size <size> TCP raw output minimum size (default: 0)
--net-ro-rate <rate> TCP raw output memory flush rate (default: 0)
--net-heartbeat <rate> TCP heartbeat rate in seconds (default: 60 sec; 0 to disable)
--net-buffer <n> TCP buffer size 64Kb * (2^n) (default: n=0, 64Kb)
--lat <latitude> Reference/receiver latitude for surface posn (opt)
--lon <longitude> Reference/receiver longitude for surface posn (opt)
--fix Enable single-bits error correction using CRC
--no-fix Disable single-bits error correction using CRC
--no-crc-check Disable messages with broken CRC (discouraged)
--phase-enhance Enable phase enhancement
--aggressive More CPU for more messages (two bits fixes, ...)
--mlat display raw messages in Beast ascii mode
--stats With --ifile print stats at exit. No other output
--stats-every <seconds> Show and reset stats every <seconds> seconds
--onlyaddr Show only ICAO addresses (testing purposes)
--metric Use metric units (meters, km/h, ...)
--snip <level> Strip IQ file removing samples < level
--debug <flags> Debug mode (verbose), see README for details
--quiet Disable output to stdout. Use for daemon applications
--ppm <error> Set receiver error in parts per million (default 0)
--help Show this help
Debug mode flags: d = Log frames decoded with errors
D = Log frames decoded with zero errors
c = Log frames with bad CRC
C = Log frames with good CRC
p = Log frames with bad preamble
n = Log network debugging info
j = Log frames to frames.js, loadable by debug.html
如果要开成网页并显示在终端机则可以使用
./dump1090 --interactive --net
接着在终端就可以看到附近的飞机啦,这时打开浏览器进入 localhost:8080 就能看到网页上的资讯啦!
Windows下就省下安装的步骤,简单很多!直接下载後里面有一个 dump1090-win.1.10.3010.14.zip
解压缩後一样下指令就可以用了。
前言 「指月录」卷二十八有道: 「见山是山,见水是水;见山不是山,见水不是水;见山仍是山,见水仍是水...
今天介绍visibility的两个属性:visible和hidden visibility只控制物件...
今天的影片内容为介绍之後程序设计不可或缺的if else 以及for回圈,千万别错过呦~ 以下为影片...
本文同步刊於 Medium 目录 前言 铁人赛 系列文提到的项目 比赛结束之後 区块链 近期规划 未...
在今天的文章中,我们准备开始建立视觉化(Visualize)元件,来展现一下kibana强大的图形化...