啥是飛常準(zhǔn)
- 飛常準(zhǔn)是家公司(廢話(huà)...)
- 他們做飛機(jī)相關(guān)的東西, 航班動(dòng)態(tài),各種預(yù)測(cè),軌跡記錄,訂機(jī)票酒店,都干
- 坐過(guò)飛機(jī)的,通常見(jiàn)過(guò)它, 分旅客版和業(yè)內(nèi)版, 看名字就知道區(qū)別了吧
旅客版, 面向普通消費(fèi)者, 通常叫做"飛友", 對(duì)應(yīng)飛常準(zhǔn)的英文名 variflight(原本叫feeyo)
業(yè)內(nèi)版,面向?qū)I(yè)用戶(hù),通常是機(jī)場(chǎng)/飛機(jī)相關(guān)的單位,功能更專(zhuān)業(yè)
官網(wǎng)地址: http://www.variflight.com/
啥是ADSB
廣播式自動(dòng)相關(guān)監(jiān)視(英語(yǔ):Automatic dependent surveillance – broadcast啥箭,縮寫(xiě)ADS–B)是一種飛機(jī)監(jiān)視技術(shù)睬澡,飛機(jī)通過(guò)衛(wèi)星導(dǎo)航系統(tǒng)確定其位置固该,并進(jìn)行定期廣播点楼,使其可被追蹤°财罚空中交通管制地面站可以接收這些信息并作為二次雷達(dá)的一個(gè)替代品禀综,從而不需要從地面發(fā)送問(wèn)詢(xún)信號(hào)。其他飛機(jī)也可接收這些信息以提供姿態(tài)感知和進(jìn)行自主規(guī)避苔严。
ADS–B是一種“自動(dòng)”系統(tǒng)定枷,它不需要飛行員或其他外部信息輸入,而是依賴(lài)飛機(jī)導(dǎo)航系統(tǒng)的數(shù)據(jù)届氢。
注意,ADS-B是自動(dòng)的,周期性的,非加密的,頻率和格式公開(kāi)的無(wú)線(xiàn)電報(bào)文. 這意味著, 只有合適的設(shè)備,你或其他任何人,都能接收并解碼其中的內(nèi)容.
啥是飛常準(zhǔn)ADSB
先看硬件
飛常準(zhǔn)官方, 提供一個(gè)硬件設(shè)備,叫飛常準(zhǔn)adsb, 這個(gè)樣子的:
圖片來(lái)源是這里: https://sudonull.com/post/10875-VariFlight-ADS-B-Flightradar-in-Chinese
用中文來(lái)說(shuō), 這是一個(gè) 樹(shù)莓派 + RTL2832U(軟件定義無(wú)線(xiàn)電)+天線(xiàn)
- 樹(shù)莓派, 用于運(yùn)行dump10090和上傳數(shù)據(jù)的腳本
- RTL2832U, 本來(lái)是做電視棒的, 后來(lái)變成一款被廣泛使用的廉價(jià)但效果不錯(cuò)的SDR(軟件定義無(wú)線(xiàn)電),用于解調(diào)指定頻率下的無(wú)線(xiàn)電信號(hào)
- 天線(xiàn), 安裝在室外或樓頂, 越高越能收到距離遙遠(yuǎn)的飛機(jī), 靠近機(jī)場(chǎng)安裝能收到更多地面飛機(jī)的數(shù)據(jù)
然后是軟件
- 操作系統(tǒng), 樹(shù)莓派官方系統(tǒng)是Linux, 飛常準(zhǔn)adsb也是在官方系統(tǒng)上定制的
- 解碼軟件, dump1090, 從RTL2832U讀取原始的無(wú)線(xiàn)電信號(hào), 然后解碼出adsb數(shù)據(jù). 重點(diǎn) 非linux系統(tǒng)也有移植
- 上傳腳本, 用于從dump1090讀取adsb數(shù)據(jù),上報(bào)到飛常準(zhǔn)的服務(wù)器
透過(guò)現(xiàn)象看本質(zhì)
一句話(huà)概括: 跑dump1090,把RTL2832U的數(shù)據(jù)解碼后,上傳到飛常準(zhǔn)服務(wù)器
樹(shù)莓派和操作系統(tǒng)
- 飛常準(zhǔn)adsb的硬件是樹(shù)莓派
- 已知樹(shù)莓派跑的是linux, 飛常準(zhǔn)稍微定制了一下(其實(shí)就改了root密碼)
- linux能跑在很多硬件
- dump1090在linux和windows都能跑
所以, 只要有一個(gè)硬件能跑linux或windows就滿(mǎn)足條件了,所以下面的組合都可以
- 樹(shù)莓派+Linux
- 香橙派+Linux
- 路由器+Linux(openwrt定制)
- PC+Linux
- PC+windows
dump1090
神器, 但原作者已經(jīng)停更, 國(guó)內(nèi)外的adsb服務(wù)商有繼承, 但核心一直沒(méi)變過(guò), 都能通用
- 原本dump1090, github上可以找到, 依賴(lài)rtl-sdr開(kāi)發(fā)包
- piaware分支, pa分支, 國(guó)外adsb服務(wù)商自行維護(hù)的版本
- apt官方包, 通過(guò)
apt install dump1090-mutability
就能安裝,后面會(huì)詳細(xì)描述 - windows版dump1090, 你沒(méi)看錯(cuò), windows也有的!! 百度/谷歌都能找到
上傳腳本
工作流程, 讀取dump1090的30003端口, gzip壓縮后, 通過(guò)http api發(fā)送到服務(wù)器, 來(lái)源:
- 官方腳本安裝包 https://flightadsb.variflight.com/
- golang版 https://github.com/dextercai/feeyo-adsb-golang
- wendal修改版feeyo安裝包 http://nutzam.com/feeyo.tgz 解壓到/root,執(zhí)行setup.sh即可.
RTL2832U
來(lái)源多樣
- 官方adsb設(shè)備有一塊定制的板子
-
淘寶/閑魚(yú)買(mǎi)一個(gè), 但注意不要買(mǎi)錯(cuò), 某些新款不支持1090Mhz,無(wú)法使用.
淘寶版RTL2832U
通常來(lái)說(shuō), 就上圖里面的裝備, 就含了RT2832U+天線(xiàn)了, 能做到一般的接收效果, 最求極致體驗(yàn)的話(huà), 需要玻璃鋼天線(xiàn),專(zhuān)門(mén)的濾波器,防雷器,傲視群雄的高度(追求總數(shù)量和距離)或近在咫尺的大型機(jī)場(chǎng)(1km以?xún)?nèi),追求地面飛機(jī)數(shù)),這里暫不討論了
到底往飛常準(zhǔn)服務(wù)器上傳了什么呢?
dump1090讀RT2832U硬件, 解碼出adsb數(shù)據(jù), 監(jiān)聽(tīng)8080/30001/30002/30003端口. 上傳腳本從30003讀取數(shù)據(jù), 打包發(fā)送到服務(wù)器
首先, 從dump1090的30003看看
30003端口, 輸出的是BaseStation格式的數(shù)據(jù), 格式說(shuō)明可以看看這個(gè)http://woodair.net/SBS/Article/Barebones42_Socket_Data.htm
下面是實(shí)際輸出, 一行一條
MSG,3,1,1,780D41,1,2020/04/09,17:19:47.258,2020/04/09,17:19:47.275,,14175,,,23.54314,113.39488,,,0,,0,0
MSG,8,1,1,780E65,1,2020/04/09,17:19:47.345,2020/04/09,17:19:47.382,,,,,,,,,,,,0
MSG,7,1,1,7812F1,1,2020/04/09,17:19:47.347,2020/04/09,17:19:47.383,,29100,,,,,,,,,,
MSG,3,1,1,7812F1,1,2020/04/09,17:19:47.347,2020/04/09,17:19:47.384,,29100,,,24.23305,113.98082,,,0,,0,0
MSG,4,1,1,7812F1,1,2020/04/09,17:19:47.357,2020/04/09,17:19:47.385,,,524,80,,,640,,,,,0
MSG,5,1,1,78127C,1,2020/04/09,17:19:47.366,2020/04/09,17:19:47.386,,23300,,,,,,,0,,0,
MSG,6,1,1,78127C,1,2020/04/09,17:19:47.373,2020/04/09,17:19:47.386,,,,,,,2016,3101,0,0,0,
數(shù)據(jù)的打包過(guò)程
完整的過(guò)程是這樣的:
- 讀取UUID值, 每個(gè)盒子都有自己的唯一id, 這個(gè)值在盒子第一次啟動(dòng)時(shí)生成, 存入變量mid
- 從30003端口讀取8192字節(jié)的數(shù)據(jù), 先用zlib壓縮,然后base64編碼, 存入變量source_data
- 合成表單數(shù)據(jù)
{'from':mid,'code':source_data}
- 發(fā)送到config.ini里面的url(具體值就不貼了,給飛常準(zhǔn)留一條底褲_)
未完待續(xù)
TODO
其他資料,備用
香橙派pi zero安裝飛常準(zhǔn)(樹(shù)莓派通用)
#
開(kāi)頭的行是注釋, 不需要輸出
強(qiáng)烈建議先修改鏡像地址, 請(qǐng)查閱 https://mirrors.tuna.tsinghua.edu.cn/help/raspbian/
# 更新庫(kù)數(shù)據(jù)庫(kù)
apt update
# 安裝dump1090-mutability
apt install dump1090-mutability wget vim socat
# 啟用lighttpd(可選,非必須,會(huì)占用80端口)
apt-get install lighttpd
lighty-enable-mod dump1090
# 安裝udev規(guī)則
cd /etc/udev/rules.d/
wget http://nutzam.com/rtl-sdr.rules
# 修改dump1090默認(rèn)規(guī)則
# 使用你熟悉的編輯器,例如vim, nano, 修改 /etc/default/dump1090-mutability
vim /etc/default/dump1090-mutability
# 找到 _USER="dump1090" 改成 _USER="root"
# 找到 "127.0.0.1" 改成 "0.0.0.0"
# 保存好, 重啟
reboot
# 啟動(dòng)完成后, 檢查dump1090是否啟動(dòng)好, 應(yīng)該監(jiān)聽(tīng)了30003端口
netstat -anp | grep dump1090
# 安裝飛常準(zhǔn)腳本,必須root用戶(hù)
cd /root/
wget https://nutzam.com/feeyo.tgz
tar xf feeyo.tgz
bash /root/setup.sh
# 期間提示選擇編輯器, 選nano后, 保存退出即可(ctrl+O, ctrl+X)
# 如果一切順利, 會(huì)看到UUID的值, 記下來(lái), 就可以到飛常準(zhǔn)的頁(yè)面登記設(shè)備了
#如果設(shè)備使用的是wifi連接, 修改 /root/get_message/get_ip.py
# 把里面的eth0 改成 wlan0
# 重啟后, 看 /root/get_message/UUID 文件, 獲取UUID值
# 如果安裝了Lighttpd, 假設(shè)樹(shù)莓派ip為192.168.1.100,那么訪(fǎng)問(wèn) http://192.168.1.100/dump1090/gmap.html
關(guān)于飛常準(zhǔn)官方鏡像的密碼(2020-03-01之前的鏡像)
具體密碼就不寫(xiě)了, 給點(diǎn)提示: 長(zhǎng)度8位, 均為數(shù)字或字母.
推薦用hashcat, 搭配rockyou.txt字典,. (該軟件為群里大佬推薦, 非常給力, GPU下幾分鐘出結(jié)果)
VirtualRadar 安裝并顯示輪廓
嗶哩嗶哩地址: https://www.bilibili.com/video/BV1tz411B7xv/
安裝 RPI Monitor
apt update
apt install librrds-perl libhttp-daemon-perl libjson-perl libipc-sharelite-perl libfile-which-perl libsnmp-extension-passpersist-perl
apt-get install dirmngr aptitude
wget https://nutzam.com/rpimonitor_2.12-r0_all.deb
dpkg -i rpimonitor_2.12-r0_all.deb
/etc/init.d/rpimonitor update
然后訪(fǎng)問(wèn)網(wǎng)址 http://樹(shù)莓派ip:8888