在 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 地址旁边的按钮将其复制到剪贴板。LAT
变量的值。对于接收器 Lon ,使用LON
变量的值。最后,单击“创建新共享代码”按钮。共享代码应该会在几秒钟内出现。它应该类似于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的数字显示器上以信息亭模式显示网页。通过将该项目放入该项目,我们可以直接从PI显示馈线页面。然后,我们可以设置一个配置为连接到http://{{YOURIP or YOURSERVICENAME}}:YOURSERVICEPORT
LAUNCH_URL
设备变量:您的服务/端口是上面的前端之一,例如http://planefinder:30053
)自动显示在附件显示屏上。可以通过访问端口8081上的Web服务器来在本地配置Balenadash服务。
如果设置顺利进行,则应将飞行流量数据馈送到几个在线服务。您将收到访问提供商的保费服务,以换取您的努力。但是,除此之外,您还可以直接从设备上探索数据,即原始和未经编辑。那是魔术的一部分,对吗?
当您将本地网络访问接收器时,您可以直接从源头探索数据。首先在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/
平面查找器的雷达视图与Dump1090相似,但是平面查找器添加了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 ,并在URL的尾端添加/skyaware978/
,例如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的Mode-S Beast。默认操作模式是在USB上使用RTL-SDR,并且此设置不需要其他配置。
如果您使用Mode-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将减少接收器的增益以尝试接收。
默认情况下禁用此模式。您可以通过设置具有true
设备变量,名为DUMP1090_ADAPTIVE_BURST
来启用它。
为了使此模式最佳地工作,您应该调整大声且安静的范围。您可以通过创建两个名为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(当前“慢”表示“ ARMV6架构”,例如PI零或PI 1)。
您可以通过创建名为DUMP1090_SLOW_CPU
设备变量来进一步降低占空比,并将所需的占空比百分比作为值(1-100)。
默认情况下,Dump1090将在动态范围模式下以自适应增益运行。您可以通过设置名为DUMP1090_GAIN
的设备变量,并具有您喜欢的值来覆盖此问题。您可以在ADSB-Wiki上阅读有关手动增益优化的更多信息。
Dump978和Dump1090如果遇到错误,则可以重新启动该设备。您可以通过设置名为REBOOT_DEVICE_ON_SERVICE_EXIT
的设备变量true
启用此功能。
自动使您的Balenaos主机发布最新。要启用此服务,请创建一个具有autohupr
值的名为ENABLED_SERVICES
的设备变量。
HUP_CHECK_INTERVAL
:检查可用更新之间的间隔。默认值为1D。HUP_TARGET_VERSION
:您希望Balenahup自动更新设备的OS版本。这是要指定所需的变量,否则,默认情况下不会执行更新。将变量设置为“最新”/“推荐”,以始终更新到最新的OS版本或将其设置为特定版本(例如'2.107.10')。更新到最新版本是微不足道的。如果使用Balena-button使用蓝色部署安装了Balena-Ads-B,则可以再次单击它并覆盖当前的应用程序。选择“部署到现有车队”选项,然后选择要更新的车队。所有设置将被保留。为方便起见,按钮就在这里:
如果您使用了手动balena push
方法,请从主分支中提取更改,然后使用Balena CLI将更新推到您的应用程序中。有关完整的说明,请查看第2部分 - 设置Balena并配置设备。
享受!