ZenithBoard
Русский

ZenithBoard

Табло из точек или перекидное табло аэропорта на старом планшете, веб-консоль, публикации в Bluesky. Бесплатно, открыто, одно меню для установки всего.

В одном предложении

ZenithBoard превращает Raspberry Pi и USB-радиобрелок в приёмник ADS-B, который передаёт данные в четыре сети и показывает самолёты прямо над вашим домом на старом планшете — в виде светящегося точечного табло или перекидного табло, как в аэропорту. Это свободное программное обеспечение под лицензией GPL, и оно каждый день работает на собственном Pi 3B автора, на улице, по Wi-Fi, в Мозеле.

Точечное табло янтарного цвета: Tunisair Airbus A320 с двумя флагами, самолёт, нарисованный точками рядом с текстом, затем следующий рейс

Табло

Табло — это веб-страница, которую 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, сторожевые таймеры, обновления. По одному разделу за раз, боковая панель на компьютере, вкладки на телефоне. Каждое изменение выполняет ту же команду, что и меню, и показывает, что она напечатала. Консоль доступна на двадцати одном языке; этот сайт использует тот же список и те же флаги.

Airbus Beluga на перекидном табло

Bluesky

Необязательно, по умолчанию выключено. Если включить, Pi публикует в Bluesky самолёты, достойные поста: военный заправщик, Beluga, тип, которого не было видно месяц, самый дальний за месяц. Каждый пост — это картинка табло рядом с картой трека самолёта, обе нарисованы самим Pi, с коротким текстом: рейс, тип, маршрут, высота и название вашего города, никогда — ваше положение. Ваш пароль приложения Bluesky остаётся на Pi, в файле, который может прочитать только служба; он никогда не появляется ни в журнале, ни на табло.

Сделано так, чтобы не ломаться

ZenithBoard работает от root, слушает вашу сеть и устанавливает чужое программное обеспечение, поэтому он построен так, чтобы ограничить то, что может пойти не так. Табло отвечает только вашей домашней сети, а всем остальным отдаёт 403, проброшен порт или нет; чтобы видеть его снаружи, меню объясняет VPN, а не открытый порт. Каждая служба работает в песочнице systemd только с тем, что нужно для её задачи. Подписи пакетов никогда не отключаются. Исправления безопасности Debian могут устанавливаться сами, ежедневно. Два сторожевых таймера перезапускают то, что зависло, а команда health на одном экране говорит, всё ли в порядке.

Что для этого нужно

Raspberry Pi 3B или новее с 1 ГБ памяти, измерено: на Pi 3B автора, с ADS-B Exchange и его MLAT, FlightAware, Flightradar24, табло, статистикой и публикациями в Bluesky, 656 МБ памяти оставались свободными. Pi Zero 2 W тянет приёмник и табло, без дополнительных фидеров. Raspberry Pi OS Lite, 64-бит. Час в первый раз; потом — sudo zenithboard update, когда выйдет новая версия.

Следующий шагУстановите: github.com/regis57/ZenithBoard