ZenithBoard
旧平板上的点阵墙或机场翻页牌、网页控制台、Bluesky 上的帖子。免费、开源,一个菜单装好一切。
一句话概括
ZenithBoard 把一块 Raspberry Pi 和一个 USB 无线电接收棒变成一台向四个网络馈送数据的 ADS-B 接收器,并把正飞过你家上空的飞机显示在一块旧平板上,样子像一块发光的点阵标牌或机场翻页牌。它是 GPL 许可下的自由软件,每天都在作者自己的 Pi 3B 上运行:放在室外,用 Wi-Fi,在摩泽尔。

墙
“墙”是 Pi 在你家庭网络上提供的一个网页。在任何带浏览器的平板或屏幕上打开它,添加到主屏幕,它就一直亮着。它会轮流显示你所选半径内(1 到 50 公里,或英里)的每一架飞机:呼号、机型、高度、速度、航班从哪来到哪去、与你的距离和方向。两种外观:128 乘 80 个点的点阵,像旧式车站标牌;或者一块翻页牌,下一架飞机到来时字母翻滚切换。五种颜色:琥珀、绿、红、白、青绿;一次一种,因为重点是一块发光的标牌,而不是地图截图。


墙的角落有一个小齿轮,点开就是它的设置:单位、半径、每架飞机的秒数、颜色、样式和旗帜。这些设置只保存在那台平板上,所以每块屏幕都可以有自己的外观,而 zenithboard config 则为所有屏幕设定默认值。

文字旁边是用点阵画出的飞机剪影、两面小旗(飞机在哪里注册,在哪里制造),以及,如果你愿意,来自 Planespotters 的飞机照片,附摄影师姓名。没有航空公司标志,没有制造商标志:这些是受保护的商标,所以用国旗代替。航线和机型来自公开查询;“墙”只说它知道的,不知道时就把那一行留空。
你完全可以在没有任何硬件的情况下试试这面“墙”:代码仓库附带一个演示,有虚构的航空公司和各种例子,从 A380 到直升机,可在任何装有 Python 的电脑上运行。
接收器,以及四个网络
ZenithBoard 安装 readsb 作为解码器,连同它的地图 tar1090,以及你勾选的馈送程序:ADS-B Exchange 始终安装,FlightAware、Flightradar24 和 Plane Finder 按需安装。它恰好只保持一个 MLAT 客户端运行,并在 zenithboard status 中统计它们。一切默认关闭且可逆:每一个开都有一个能恢复原样的关,任何破坏性操作前都会先做备份,菜单总有退路。
接收器的增益可以从菜单或控制台调整,一次一档,并通过统计数据查看是否有效。可选的统计功能保存一个月的每小时消息数、每天的接收距离和飞机数;graphs1090 则可以把多年的数据画成图。
控制台
从 0.39 版起,http://<the Pi>:8080/console 以“墙”的外观显示设置:Pi 的概览(运行时间、温度、内存、各项服务)、墙、接收器、Bluesky、看门狗、更新。一次显示一个部分,电脑上是侧边栏,手机上是标签页。每次更改都运行菜单会运行的同一条命令,并把输出显示给你。控制台有二十一种语言;本站使用同一份语言列表和同样的旗帜。

Bluesky
可选,默认关闭。开启后,Pi 会把值得一发的飞机发布到 Bluesky:一架军用加油机、一架 Beluga、一个月没见过的机型、本月最远的一架。每条帖子是一张“墙”的图片,旁边是飞机航迹的地图,两者都由 Pi 自己绘制,配一段短文字:航班、机型、航线、高度,以及你所在城镇的名字,绝不包含你的位置。你的 Bluesky 应用密码保存在 Pi 上一个只有该服务能读取的文件里;它绝不会出现在日志或“墙”上。
为不出错而建
ZenithBoard 以 root 身份运行,监听你的网络,还安装别人的软件,所以它在设计上就要限制可能出错的范围。“墙”只响应你的家庭网络,对其他所有人返回 403,无论端口是否转发;要从外部查看,菜单会讲解 VPN 而不是开放端口。每项服务都在 systemd 沙箱中运行,只拥有其工作所需的权限。软件包签名从不被禁用。Debian 的安全修复可以每天自动安装。两个看门狗会重启冻结的东西,一条 health 命令在一屏之内告诉你是否一切正常。
它需要什么
一块 Raspberry Pi 3B 或更新的型号,1 GB 内存,实测:在作者的 Pi 3B 上,同时运行 ADS-B Exchange 及其 MLAT、FlightAware、Flightradar24、墙、统计和 Bluesky 帖子,仍有 656 MB 内存空闲。Pi Zero 2 W 能运行接收器和墙,但不含额外的馈送程序。Raspberry Pi OS Lite,64 位。第一次一小时;之后,新版本发布时运行 sudo zenithboard update 即可。