在balena 上運行的ADS-B 飛行追蹤器,支援FlightAware、Flightradar24、Plane Finder、OpenSky Network、AirNav RadarBox、ADSB Exchange、Wingbits、adsb.fi、ADSB.lol、ADS-B One、airplanes.live、Planespotters. net、 TheAirTraffic、AvDelphi、HP Radar、RadarPlane 和 Fly Italy ADSB。
為航班追蹤社區做出貢獻!將本地ADS-B 資料從RTL-SDR USB 加密狗(或各種其他無線電類型)和運行balenaOS 的支援設備(請參閱下文)饋送到追蹤服務FlightAware、Flightradar24、Plane Finder、OpenSky Network、AirNav RadarBox、ADSB Exchange 、Wingbits、adsb.fi、ADSB.lol、ADS-B Oneplanes.live、Planespotters.net、TheAirTraffic、AvDelphi、HP Radar、RadarPlane 和 Fly Italy ADSB。作為回報,您每年可以獲得價值數百美元的免費高級帳戶(或加密貨幣代幣)!
?訂閱我們的電子報?隨時了解 balena ADS-B 飛行追蹤器的最新發展。
在我們的討論區提問
✏️ 在我們的 balena 論壇帖子中創建帖子
在 GitHub 上提出問題
觀看 2021 年 3 月 balena IoT 歡樂時光和 2021 年 10 月 balena 黑客馬拉鬆的視頻
?直接伸出手
?閱讀過去的新聞通訊
裝置 | |
---|---|
英特爾NUC | |
Nvidia Jetson Nano SD 卡 | |
橙色圓周率零 | |
樹莓派 3 型號 B+ | |
樹莓派3(使用64位元作業系統) | |
樹莓派4(使用64位元作業系統) | |
樹莓派 400 | |
樹莓派5 |
如果您在此處未列出的硬體平台上成功運行 balena-ads-b,請告訴我們!
該軟體預設使用 RTL-SDR 無線電設備。不過,它也與 S 模式 Beast、bladeRF、HackRF、LimeSDR 和 SoapySDR 相容。您可以在下面的使用不同無線電設備類型部分找到有關配置這些設備類型的更多資訊。
balena-ads-b 專案由 Ketil Moland Olsen 創建。現在它由 Ketil、Aaron Shaw (shawaj) 和 Teko012 團隊共同維護。
該專案受到以下儲存庫和論壇主題的啟發並借用了程式碼:
感謝 compujuckel、Glenn Stewart、wercsy、mikenye、abcd567a 和 marcelstoer 的分享!
感謝 garethhowell 實施了最初的 ADSB Exchange 支持,並感謝 wiedehopf 對其進行了改進。
感謝 rmorillo24 驗證 balenaFin 相容性、adaptive 確認 Raspberry Pi 400 相容性,以及 eagleDiego 確認 Orange Pi Zero 相容性。
感謝 schubydoo 協助保持儲存庫最新。
感謝 Teko012 對儲存庫進行現代化改造、保持最新狀態並提出了多項改進建議。
感謝 schubydoo、JPGMC 和 alanb128 對 UAT 支援進行 Beta 測試。
感謝 Aaron Shaw (shawaj) 實現了 Wingbits 和 S 模式 Beast 支援、修復了錯誤並改進了程式碼。
你們都是明星! ?
CREDITS.md 中公開了由 balena-ads-b 腳本下載、安裝和設定的軟體包。
我們將使用 Flightradar24、FlightAware 和 RadarBox 網站上概述的部件來建立接收器:
這些網站建議將 Raspberry Pi 3 Model B+ 作為首選裝置。儘管如此,該項目仍然可以在上述所有設備上運行。假設您專門為此項目購買一台新設備。在這種情況下,我們建議使用具有盡可能多記憶體的Raspberry Pi 4 Model B。這是物超所值的。
除了該裝置之外,您還需要一個與 RTL-SDR 相容的 USB 加密狗。這些加密狗基於數位電視調諧器,並且可以使用多種類型 - 通用電視棒和專用 ADS-B 棒(由 FlightAware 生產)。雖然這兩種選擇都有效,但 ADS-B 棒的性能似乎更好一些。
如果您居住在美國,並且除了 ADS-B 流量之外還想追蹤 UAT 流量,則可以並行使用兩個加密狗。請注意,藍色 FlightAware USB 裝置只能用於 ADS-B 流量,因為它們具有專門針對 1090 MHz 頻率最佳化的整合濾波器。橘色的 FlightAware USB 裝置非常適合追蹤 UAT 流量。有關更多詳細信息,請參閱第 10 部分 – 配置 UAT(可選,僅限美國)。
或者
wifi-connect
容器將建立一個帶有強制門戶的網絡,以連接到本地 WiFi 網路。建立的熱點的 SSID 為balenaWiFi
,密碼為balenaWiFi
。連接後,在網絡瀏覽器中造訪http://192.168.42.1:8181/
以設定連線。LAT
(接收器緯度) ,例如值60.12345
和LON
(接收器經度) ,例如值4.12345
。ALT
新變數中輸入接收器的海拔高度(以公尺為單位) 。如果您需要尋找海拔高度,可以使用多種線上服務之一來尋找。如果您的天線安裝在地面以上,請記住添加相應米的大約數量。balena login
。然後按照螢幕上的指示進行操作。git clone [email protected]:ketilmo/balena-ads-b.git
。如果您想對儲存庫進行更改,也可以分叉它。cd balena-ads-b
進入新克隆的儲存庫的資料夾。balena push YOUR–FLEET–NAME–HERE
將應用程式推送到 balena 的伺服器。\ \ >/7 _.-(6' (=___._/` ) | //| // j < _ _.-':``。 r=._`. <`\_ .`-. r-7`-。 ._'。 ` `, `-.`7 7) ) /| ' / `-._ || .' \( > > ,.-'>.' <.'_.'' <'
如果您之前已經設定了獨立的 FlightAware 接收器並希望將其移植到 balena,則只需執行以下步驟:
FLIGHTAWARE_FEEDER_ID
,然後貼上您的唯一識別碼金鑰,例如134cdg7d-7533-5gd4-d31d-r31r52g63v12
。該 ID 可以在 FlightAware 網站的「我的 ADS-B」部分找到。如果您之前沒有設定要重複使用的 FlightAware 接收器,請執行下列步驟:
/getid.sh
(含前導斜線),然後按下回車鍵。FLIGHTAWARE_FEEDER_ID
的變數並貼上一步中的值,例如134cdg7d-7533-5gd4-d31d-r31r52g63v12
。FLIGHTAWARE_FEEDER_ID
。)ALT
變數中輸入的數字相符。如果您之前已經設定了 Flightradar24 接收器並希望將其移植到 balena,您只需執行以下步驟:
FR24_KEY
的變數並貼上現有 Flightradar24 金鑰的值,例如dv4rrt2g122g7233
。金鑰位於 Flightradar24 設定檔中,通常可以在這裡找到: /etc/fr24feed.ini
。 (如果您找不到舊密鑰,請按照備選方案 B 中的步驟檢索或建立新密鑰。)如果您之前沒有設定過要重複使用的 Flightradar24 接收器,請執行下列步驟:
fr24feed --signup
。yes
。如果您的頻寬有限,請考慮輸入no
將其關閉。LAT
變數中輸入的值相同。LON
變數中輸入的值相同。ALT
變數中輸入的值乘以 3.28 來計算。yes
繼續。4
。1
作為網路連線。dump1090-fa
。30005
。no
以停用連接埠 30334 上的 RAW 資料饋送。no
以停用連接埠 30003 上的基地台資料饋送。0
以停用日誌檔案寫入。cat /etc/fr24feed.ini
。將顯示您的 Flightradar24 設定。fr24key=
開頭的行,然後複製引號之間的字串。它看起來像這樣: dv4rrt2g122g7233
。FR24_KEY
的變數並貼上一步中的值,例如dv4rrt2g122g7233
。如果您之前已經設定了 Plane Finder 接收器並希望將其移植到 balena,則只需執行以下步驟:
PLANEFINDER_SHARECODE
的變數並貼上現有 Plane Finder 鍵的值,例如7e3q8n45wq369
。您可以在 Plane Finder 的「您的接收者」頁面找到您的金鑰。如果您之前沒有設定過要重複使用的 Plane Finder 接收器,請執行下列步驟:
pfclient
,然後按下回車鍵。192.168.2.35
- 如果有多個 IP 位址,則其中任何一個都應該有效。按一下 IP 位址旁的按鈕將其複製到剪貼簿。LON
中LAT
變數的值。最後,點擊“建立新共享代碼”按鈕。共享代碼應該會在幾秒鐘內出現。它應該類似於6g34asr1gvvx7
。將其複製到剪貼簿。忽略表格的其餘部分 - 您不必填寫此部分。PLANEFINDER_SHARECODE
的變數並貼上您剛剛建立的 Plane Finder 鍵的值,例如7e3q8n45wq369
。如果您之前已經設定了 OpenSky 網路接收器並希望將其移植到 balena,則只需執行以下步驟:
OPENSKY_USERNAME
的變數並貼上您的 OpenSky Network 使用者名,例如JohnDoe123
。您可以在 OpenSky 網路儀表板頁面上找到您的使用者名稱。OPENSKY_SERIAL
的變數並貼上現有 OpenSky 網路序號的值,例如1663421823
。您可以在 OpenSky Network Dashboard頁面上找到您的序號。如果您之前沒有設定要重複使用的 OpenSky 網路接收器,請執行下列步驟:
OPENSKY_USERNAME
的變量,並用您新創建的 OpenSky 用戶名填充它,例如JohnDoe123
。/getserial.sh
(含前導斜線),然後按下回車鍵。OPENSKY_SERIAL
的變數並貼上一步中的值,例如1267385439
。如果您之前已經設定了RadarBox接收器並想將其移植到Balena,您只需執行以下步驟:
RADARBOX_KEY
的變數並貼上現有 RadarBox 金鑰的值,例如546b69e69b4671a742b82b10c674cdc1
。若要取得金鑰,請在目前的 RadarBox 裝置上發出下列指令: sudo rbfeeder --showkey --no-start
。如果您之前尚未設定要重複使用的 RadarBox 接收器,請執行下列步驟:
/showkey.sh
。您的 RadarBox 金鑰將顯示出來,看起來類似於: 546b69e69b4671a742b82b10c674cdc1
。RADARBOX_KEY
的變數並貼上步驟 5 中的值,例如546b69e69b4671a742b82b10c674cdc1
。546b69e69b4671a742b82b10c674cdc1
。LAT
和LON
變數中輸入的相同值。當詢問天線的高度時,請以離地面米(或英尺)為單位指定,而不是像之前那樣指定為海平面以上。如果系統沒有要求您輸入此訊息,您可以透過點擊螢幕左側接收者 ID 下方的「編輯」連結來手動輸入。/usr/local/share/adsbexchange-stats/create-uuid.sh
然後按下回車鍵。將顯示您的 ADSB-Exchange UUID。記下來。/create-sitename.sh
然後按回車鍵。按照螢幕上的指示為您的餵食器輸入一個友善的名稱(例如您的位置)。按下回車鍵並記下結果。ADSB_EXCHANGE_UUID
的變數。ADSB_EXCHANGE_SITENAME
的變數。此專案支援 ADSB Exchange 出售後出現的許多 ADSB Exchange 複製。目前支援 adsb.fi、ADSB.lol、ADS-B One、airplanes.live、Planespotters.net、TheAirTraffic、AvDelphi、HP Radar、RadarPlane 和 Fly Italy ADSB。如果您想新增任何新服務,請建立 PR 新增服務,或者如果您不知道如何新增,請針對您的要求提出問題。
對於這些服務,您目前不需要任何登入或 API 憑證,因此無需在它們上建立帳戶(儘管其中一些確實提供此服務),也無需在 balenaCloud 中新增憑證。但是,您必須選擇性地啟用每項服務(或者您可以啟用所有服務,或啟用除 ADSB Exchange 之外的所有服務)。
若要啟用所有服務或除 ADSB Exchange 之外的所有服務,您可以使用下列裝置變數之一:
ADSB_EXCHANGE_ENABLE_ALL=true
ADSB_EXCHANGE_ENABLE_ALL_BUT_ADSBX=true
請注意,您可以使用true
、 enable
、 enabled
、 1
、 y
、 yes
或on
作為值,大小寫並不重要。如果您使用ADSB_EXCHANGE_ENABLE_ALL
這將啟用 ADSB Exchange,然後您需要新增ADSB_EXCHANGE_UUID
和ADSB_EXCHANGE_SITENAME
如上一節所述。
若要啟用單一服務,您需要新增具有下列值之一的裝置變數(如果要啟用多個服務,則需要新增多個值):
ADSB_EXCHANGE_ENABLE=true
(您還需要新增ADSB_EXCHANGE_UUID
和ADSB_EXCHANGE_SITENAME
,如上一節所述。ADSB_FI_ENABLE=true
ADSB_LOL_ENABLE=true
ADSB_ONE_ENABLE=true
AIRPLANES_LIVE_ENABLE=true
PLANESPOTTERS_ENABLE=true
THE_AIR_TRAFFIC_ENABLE=true
AV_DELPHI_ENABLE=true
HPRADAR_ENABLE=true
RADARPLANE_ENABLE=true
FLY_ITALY_ADSB_ENABLE=true
最後,這些服務都需要傳遞 UUID 來識別系統中的裝置。如果您設定了ADSB_EXCHANGE_UUID
則所有服務將使用相同的 UUID。如果您未啟用 ADSB Exchange 且未設定ADSB_EXCHANGE_UUID
變量,系統會自動為您產生一個。但是,如果您願意,您也可以使用名為UUID
裝置變數並將 UUID 作為值(例如 2ddf6698-ea34-4c39-bbce-a8c3ddaf9bbd)手動設定 UUID。如果您願意,可以使用線上 UUID 產生器來產生一個。
如果您之前已經設定了 Wingbits 接收器並希望將其移植到 Balena,則只需執行以下步驟:
WINGBITS_DEVICE_ID
的變數並貼上現有 Wingbits ID 的值,例如small-coral-spider
。若要取得您的 ID,請造訪 Wingbits 儀表板,確保您位於「天線」標籤並查看 ID 欄位。如果您之前尚未設定要重複使用的 Wingbits 接收器,請執行下列步驟:
small-coral-spider
。WINGBITS_DEVICE_ID
的變數並貼上步驟 4 中的值,例如small-coral-spider
。Online
。如果您將滑鼠懸停在此處,您應該會看到一個工具提示文字彈出窗口,其中顯示上次接收資料的時間,例如Last message: 22/11/2023, 03:17:40
。請注意:以下說明涉及對 RTL-SDR USB 記憶棒進行低階更改,例如更改序號。只有當您對所涉及的步驟感到滿意時,才能謹慎操作。所做的所有變更均由您自行承擔風險。
在美國,飛機可以使用 ADS-B 標準(以 1090 MHz 的頻率傳輸)或 UAT 協定(以 978 MHz 的頻率傳輸)。如果您居住在美國並擁有額外的 RTL-SDR 加密狗,則可以追蹤 UAT 和 ADS-B 流量。請注意,藍色 FlightAware USB 裝置只能用於 ADS-B 流量,因為它們具有專門針對 1090 MHz 頻率最佳化的整合濾波器。橘色的 FlightAware USB 裝置非常適合追蹤 UAT 流量。
DISABLED_SERVICES
的變數並使用值dump1090-fa,dump978-fa
填入它。/add-serial-1090.sh
,然後按下回車鍵。YES
,然後按下回車鍵,以變更加密狗的序號。驗證該過程是否成功完成。DUMP1090_DEVICE
的新變數並將其值設為00001090
。/add-serial-978.sh
,然後按下回車鍵。YES
,然後按下回車鍵,以變更加密狗的序號。驗證該過程是否成功完成。DUMP978_DEVICE
的新變數並將其值設為00000978
。DISABLED_SERVICES
變數。UAT_ENABLED
的新變數並為其指派值true
。 balena 還開發了一個項目,可以輕鬆配置為在名為 balenaDash 的數位顯示器上以 kiosk 模式顯示網頁。透過將該項目放入此項目中,我們可以直接從 Pi 自動顯示饋送頁面。然後,我們可以設定一個LAUNCH_URL
設備變量,配置為連接到http://{{YOURIP or YOURSERVICENAME}}:YOURSERVICEPORT
(其中服務/連接埠是上面的前端之一,例如http://planefinder:30053
),這將自動顯示在連接的顯示器上。 balenaDash 服務可以透過存取連接埠 8081 上的網路伺服器進行本機設定。
如果設定順利,您應該將航班流量資料提供給多個線上服務。作為您努力的回報,您將獲得提供者的優質服務。但除此之外,您還可以直接從您的裝置探索原始且未經編輯的資料。這就是魔法的一部分,對吧?
當您可以透過本機網路存取接收器時,您可以直接從來源探索資料。首先在 balena 控制台中開啟您的裝置頁面並找到IP ADDRESS
字段,例如10.0.0.10
。然後,新增下面進一步指定的所需連接埠號碼。
遠離您的本地網絡,但仍然渴望知道哪些飛機在您家上空巡航?在這裡,balena 內建的公共裝置 URL就派上用場了。在 balena 控制台中開啟您的裝置頁面,找到PUBLIC DEVICE URL
標頭,然後翻轉下面的開關以啟用它。最後,點擊按鈕旁邊的箭頭圖標,添加下面指定的所需 URL 後綴,然後瞧 – 您應該會看到您所在區域正在發生的情況。
Dump1090 的雷達視圖此視圖視覺化接收器所看到的所有內容,包括多邊平面位置。當您在本機網路中時,請前往YOURIP:8080
進行檢查。遠端時,開啟 balena 的公共裝置 URL並將/skyaware/
新增至 URL 的末尾,例如https://6g31f15653bwt4y251b18c1daf4qw164.balena-devices.com/skyaware/
Plane Finder 的雷達視圖它與 Dump1090 類似,但 Plane Finder 添加了 3D 視覺化和其他出色的檢視選項。前往YOURIP:30053
進行查看。遠端時,開啟 balena 的公共裝置 URL並將/planefinder/
新增至 URL 的末尾,例如https://6g31f15653bwt4y251b18c1daf4qw164.balena-devices.com/planefinder/
Flightradar24 狀態頁面與其他兩個選項相比,Flightradar24 的狀態頁面不太直觀,它為您提供有關饋線效能的進階統計資料和指標。前往YOURIP:8754
進行查看。遠端時,開啟 balena 的公共裝置 URL並將/fr24feed/
新增至 URL 的末尾,例如https://6g31f15653bwt4y251b18c1daf4qw164.balena-devices.com/fr24feed/
Dump978 的雷達視圖(可選,僅限美國)如果您居住在美國並配置了 UAT 饋送,則可以使用此視圖探索資料。當您在本機網路中時,請前往YOURIP:8978
進行檢查。遠端時,開啟 balena 的公共裝置 URL並將/skyaware978/
新增至 URL 的末尾,例如https://6g31f15653bwt4y251b18c1daf4qw164.balena-devices.com/skyaware978/
。但是,請記住,UAT 流量很少。您可能需要幾天才能看到任何流量,具體取決於您所在的美國位置。
您可以透過建立名為DISABLED_SERVICES
的裝置變數來停用任何 balena-ads-b 服務,並將要停用的服務作為逗號分隔值。例如,如果要停用 dump1090fa 服務,請將DISABLED_SERVICES
變數設定為dump1090fa
。如果要停用 dump1090fa 和 piaware 服務,請將DISABLED_SERVICES
變數設定為dump1090fa, piaware
。
透過 balena-ads-b,您可以使用各種 SDR(軟體定義無線電)和其他設備,例如基於 FPGA 的 S 模式 Beast。預設操作模式是透過 USB 使用 RTL-SDR,此設定無需額外配置。
如果您使用的是 S 模式 Beast、bladeRF、HackRF、LimeSDR 或 SoapySDR,那麼您需要對此進行配置,以使裝置按預期工作。
為了配置您正在使用的特定設備類型,您需要建立一個名為RADIO_DEVICE_TYPE
設備變數。可能的值如下:
例如,如果您有 S 模式 Beast,則將RADIO_DEVICE_TYPE
變數設為modesbeast
。請記得在更新後儲存設備變數設定。配置完成後,您的設備應該會自動重新啟動,並且無線電現在應該可以工作。
dump1090-fa 服務可以配置為自動調整調諧器增益以適應不斷變化的條件。您可以在 FlightAware 網站上了解有關其工作原理的更多資訊。
來自 FlightAware 的文件:動態範圍自適應增益模式嘗試設定接收器增益以維持給定的動態範圍 - 也就是說,它嘗試設定增益以使一般雜訊處於或低於給定水平。
該模式預設啟用。如果您手動指定天線增益(請參閱下文),它將停用。您可以透過將名為DUMP1090_ADAPTIVE_DYNAMIC_RANGE
的裝置變數設定為false
來手動停用此模式。
來自 FlightAware 的文件: 「突發」自適應增益模式偵聽未成功解碼為 ADS-B 訊息的大聲突發訊號,但這些訊號的定時大致正確,可能是由於接收器過載而遺失的訊息。當短時間內聽到足夠多的過大訊號時,dump1090將降低接收器增益以嘗試讓它們被接收到。
預設情況下禁用此模式。您可以透過將名為DUMP1090_ADAPTIVE_BURST
裝置變數設為true
來啟用它。
為了使此模式發揮最佳效果,您應該調整響亮和安靜的範圍。您可以透過建立兩個名為DUMP1090_ADAPTIVE_BURST_LOUD_RATE
和DUMP1090_ADAPTIVE_BURST_QUIET_RATE
的裝置變數來實現此目的,並將所需的大聲和安靜目標作為其值。
來自 FlightAware 的文件:如果您事先知道增益設定應該是什麼,因此您希望允許自適應增益僅在特定範圍內更改增益,則可以以 dB 為單位設定最小和最大增益設定。自適應增益只會調整該範圍內的增益。
您可以透過建立兩個名為DUMP1090_ADAPTIVE_MIN_GAIN
和DUMP1090_ADAPTIVE_MAX_GAIN
的裝置變數來指定目標最大和最小增益,並將所需的最大和最小增益作為其值。
來自 FlightAware 的文件:調整增益所需的測量會產生 CPU 成本,並且在速度較慢的設備上,減少自適應增益所做的工作量可能很有用。這可以透過調整自適應增益佔空比來完成。這是控制自適應增益檢查傳入資料的比例的百分比。 100%意味著每個樣品都經過檢驗。較低的值會減少 CPU 使用,但代價是自適應增益對 RF 環境的了解較不準確。 「快」CPU 上的預設佔空比為 50%,而「慢」CPU 上的預設佔空比為 10%(目前「慢」表示“armv6 架構”,例如 Pi Zero 或 Pi 1)。
您可以透過建立名為DUMP1090_SLOW_CPU
裝置變數來進一步降低佔空比,並將所需的佔空比百分比設為值 (1-100)。
預設情況下,dump1090 將在動態範圍模式下以自適應增益運行。您可以透過使用您喜歡的值設定名為DUMP1090_GAIN
的裝置變數來覆寫此設定。您可以在 adsb-wiki 上閱讀有關手動增益優化的更多資訊。
如果發生錯誤,dump978 和 dump1090 可以重新啟動裝置。您可以將名為REBOOT_DEVICE_ON_SERVICE_EXIT
的設備變數設為true
來啟用此功能。
自動讓您的 balenaOS 主機版本保持最新。若要啟用此服務,請建立名為ENABLED_SERVICES
且值為autohupr
的裝置變數。
HUP_CHECK_INTERVAL
:檢查可用更新之間的時間間隔。預設值為 1d。HUP_TARGET_VERSION
:您希望 balenaHUP 自動更新您的裝置的作業系統版本。這是必須指定的變量,否則預設不會執行更新。將變數設定為“最新”/“建議”,以便您的裝置始終更新至最新作業系統版本或將其設定為特定版本(例如“2.107.10”)。更新到最新版本很簡單。如果您使用藍色的「Deploy with balena-button」安裝了 balena-ads-b,則可以再次按一下它並覆蓋目前的應用程式。選擇“部署到現有佇列”選項,然後選擇要更新的佇列。所有設定都將被保留。為了方便起見,按鈕位於此處:
如果您使用手動balena push
方法,請從 master 分支拉取更改並使用 balena CLI 將更新推送到您的應用程式。有關完整說明,請參閱第 2 部分 – 設定balena 並設定裝置。
享受!