Pi Towers було досить тихо в Maker Monday, оскільки ми всі насолоджувалися святом у Великій Британії… тому ми вирішили святкувати у вівторок. Ознайомтеся з цим чудовим посібником Джеймса Мітчелла, який показує вам, як створити локальну панель керування польотом на Raspberry Pi з живими картами, історією та повторами.
Ви коли-небудь дивилися вгору і задавалися питанням, куди летів той літак, який ви бачили, або звідки він прилетів? Комерційні трекери польотів показують літаки по всьому світу, але залежно від того, скільки даних ви хочете або скільки ви готові заплатити, мати під рукою дані в реальному часі може бути рідкістю. За допомогою Raspberry Pi і приймача ADS-B 1090 МГц будівельники можуть декодувати ці відкриті радіопередачі з найближчих літаків і стежити за тим, що відбувається нагорі.

Який літак доставляє і як ми це отримуємо
ADS-B означає Automatic Dependent Control Broadcast. Більшість сучасних літаків передають ADS-B на частоті 1090 МГц короткими пакетами, кілька разів на секунду, що містить шістнадцяткову адресу ICAO (унікальний номер, призначений конкретному літаку), позивний (ідентифікатор управління повітряним рухом літака – наприклад, RYR3EM), позицію GPS, висоту, швидкість, траєкторію, вертикальну швидкість і ключові коди. Однак у трансляції не повідомляється, який це літак, звідки прибув рейс, куди він прямує, коли вилетів або прибув.
Як правило, коли ви використовуєте такий додаток, як FlightAware або Flightradar24, дані про рейси, які ви бачите, збираються з мережі приймачів 1090 МГц з усього світу, а також дані від постачальників рейсів. Важко назвати відсоток, але отримувачами можуть бути вболівальники, управління повітряним рухом, сусідні агентства та навіть уряди.

Будь-який приймач у діапазоні приблизно від 100 до 250 км може приймати радіомовлення 1090 МГц з літака; це залежить від висоти польоту, типу використовуваної антени (кімнатна чи зовнішня) і навколишньої місцевості.
Створіть свій власний прийом
Загалом, будь-який сучасний комп’ютер Raspberry Pi з USB та мережею можна використовувати як основу для створення власного приймача. Але ви можете розмістити свій приймач на відкритому повітрі, де враховуються потужність і розмір.
Вам потрібен сумісний USB-приймач, налаштований на 1090 МГц; Наприклад, FlightAware Stick, FlightAware Pro Stick, Airspy Mini або RTL-SDR Blog V3 або V4. Зазвичай ці приймачі надають утиліту дешифрування: dump1090, яка виводить JSON на локальну URL-адресу, наприклад /data/aircraft.json. Існують деякі загальні інструменти RTL-SDR, але якщо вони сумісні з програмним забезпеченням dump1090, вони повинні працювати на ОС Raspberry Pi.

Коли ви дізнаєтеся, які USB-накопичувачі ви хочете використовувати, слід звернути увагу на те, чи мають вони вбудовані фільтри чи підключені до антен із фільтрами. Фільтри важливі для блокування небажаного радіошуму, і на додаток до розміщення антени (чим вище, тим краще), це може покращити відстань, на якій можна виявити літак.
Рекомендовано використовувати FlightAware Pro Stick Plus. Пакети Raspberry Pi від FlightAware є зрілими, регулярно оновлюються та детально задокументовані. Зокрема, Pro Stick Plus поєднує в собі приймач і фільтр. Існує можливість завантажити свої дані в мережу FlightAware, що означає, що ви стаєте корпоративним клієнтом і можете користуватися програмою FlightAware без реклами.
Представляємо Pi-Sky
Pi-Sky — це єдина програма Python і веб-сервер, який зчитує дані dump1090, збагачує ці дані через загальнодоступні API та передає JSON у підключений браузер. Усе працює локально, тому ви контролюєте дані.

Особливості Pi-Sky
Ось деякі функції Pi-Sky:
Список рейсів: список маршрутів, визначених акцептором вашої картки, з деталями маршруту та логотипом авіакомпанії. Додатковий знімний дисплей показує останній рейс у стилі польоту аеропорту.
Карта польотів: локальна оперативна карта виявлених літаків у вигляді значків літаків. Натисніть на рейс, щоб дізнатися більше, і відстежте його на карті.
історія: отримані дані про польоти зберігаються в SQLite (тривалість можна налаштувати – за замовчуванням сім днів). На сторінці історії ви можете відтворювати польоти на карті, переглядати окремі рейси з міні-картами та фотографіями літака, а також фільтрувати за датою, маршрутом, типом і моделлю літака.
збагачення: ADS-B надає лише знімок кожного літака. Pi-Sky використовує безкоштовні API для заповнення (розширеної) інформації про маршрут, тип літака, реєстрацію та деталі аеропорту, якщо вони доступні.
Електронна підтримка Pimoroni Inky: відображення міні-карти та карти польоту на підключеному дисплеї Inky.
Інформація про збагачення та звідки вона надходить
Використовує Pi-Sky adsb.lol Для заповнення деталей, які не включають трансляції ADS-B. Adsb.lol був створений авіаційними ентузіастами та іншими учасниками, які обмінюються інформацією про приймач у центральній службі, яка підтримує базу даних маршрутів польотів. Він пропонує безкоштовний доступ до API, включаючи історичні дані маршрутизації, з відкритими умовами обслуговування. Якщо ви хочете підтримати проект, ви можете передати особисту інформацію одержувача на adsb.lol окремо або зробити пожертву через його веб-сайт.

Коли ваш приймач виявляє літак, Pi-Sky зберігає позиції у своїй локальній базі даних SQLite (якщо ввімкнено). Якщо літак має позивний і GPS-позицію, Pi-Sky запитає adsb.lol, чи знає він інформацію про маршрут: відправлення та призначення. Це добре працює для регулярних рейсів авіакомпаній, які часто з’являються в історичній базі даних. Це ненадійно для одноразових рейсів, таких як приватний, військовий, рятувальний або поліцейський транспорт. Будь-яке збагачення Pi-Sky реєструється локально в журналі польотів.
Служба adsb.lol зазвичай повертає коди аеропортів, такі як BER, EDDB або STN. Потім Pi-Sky використовує базу даних аеропортів OpenFlights, щоб перетворити їх на читабельні назви: наприклад, EDDB (або BER) стає Берлін Бранденбург, а STN стає Лондон Станстед.

Щоб отримати інформацію про літак, Pi-Sky шукає шістнадцяткову адресу ICAO через adsb.lol, щоб знайти реєстрацію, тип і модель, якщо вони доступні. Існує також додаткова офлайн-база даних літаків Mectronics, яку можна завантажити в налаштуваннях Pi-Sky; він індексується за адресою ICAO і може заповнити відсутні поля виробника, типу, моделі та реєстрації.
На сторінці «Історія» Pi-Sky може показати фотографію літака, коли відома реєстрація. Він намагається PlaneSpotters.net спочатку повертається до API Wikimedia Commons.
Це безкоштовний загальнодоступний пакет, і він не ідеальний, але саме тому Pi-Sky може існувати без платної підписки.
А як щодо мережі OpenSky?
Шукаючи в Google API відстеження польотів, ви можете знайти OpenSky Network: opensky-network.org знаходиться у верхній частині списку. Подобається adsb.lolOpenSky створено на основі краудсорсингових даних ADS-B і надає API. В основному Pi-Sky може використовувати OpenSky для збагачення, але є важливі застереження.

На сайті зазначено: «Безкоштовний доступ до повного набору даних надається лише дослідницьким установам, авіаційним властям, урядам і некомерційним організаціям для неособистого використання». Відповідно до умов ліцензії на використання OpenSky дані знову призначені для некомерційних досліджень і освіти. Що ще важливіше, Pi-Sky як постійний трекер польотів вимагає письмової ліцензії навіть для некомерційного використання. Комерційне або комерційне використання також потребує окремої угоди.
Якщо ви використовуєте дані OpenSky в опублікованій роботі, її умови вимагають належного цитування. Доступ через API базується на маркерах (OAuth2), а кредитні обмеження на більшості кінцевих точок означають, що можливе погіршення якості обслуговування. Більше підходить для незалежного аматорського проекту adsb.lol: Pi‑Sky може вільно запитувати його під час збагачення рейсів.
Встановлення та налаштування
Збірка починається з нового образу ОС Raspberry Pi, написаного за допомогою Raspberry Pi Imager. Після завантаження Raspberry Pi відкрийте вікно терміналу.
Ви можете встановити Pi-Sky, клонувавши це сховище GitHub і дотримуючись його інструкцій README.md файл:
$ git clone
Крім того, Pi-Sky також можна встановити за допомогою єдиного інсталятора, який виконує всі вимоги: додає репозиторій FlightAware APT, встановлює dump1090-fa, клонує Pi-Sky. /home/pi/pi-skyстворює, записує віртуальне середовище Python config.json і реєструє служби systemd, щоб і dump1090, і Pi-Sky запускалися автоматично під час завантаження.

Підключіть USB-накопичувач ADS-B перед встановленням.
$ curl -fsSL | sudo bash
Коли скрипт завершує роботу, він зазвичай друкує URL-адресу локальної карти http://
Відкрийте цю адресу в браузері в тій же мережі, щоб переконатися, що вона працює. Якщо висхідного трафіку все ще немає, перевірте dump1090 за допомогою:
$ sudo systemctl status dump1090-fa
Крім того, перевірте канал JSON за допомогою curl:
$ curl
Точне налаштування на сторінці веб-конфігурації за адресою /config.html.
Важливо вказати місце розташування приймача в конфігурації (якщо у вас є Pi-Sky, ви можете приховати розташування на карті, а також заблокувати конфігурацію). Якщо у вас поблизу є аеропорт, ви можете ввести його там (це допомагає центрувати карту).
Наступний крок
Виняткова потужність Pi-Sky полягає в тому, що він зберігає всі дані польоту локально, і ви можете безкоштовно використовувати його для будь-яких завдань. Можливість відображати частину цієї інформації на електронному дисплеї Inky Pimoroni вже вбудована.
Знайдіть більше проектів тут Офіційний журнал Raspberry Pi
Однак ви не знайдете цієї збірки в останньому номері. Це вперше Офіційний журнал Raspberry Pi №168, який тепер ви можете читати онлайн безкоштовно.

Ви також можете підписатися на друковану версію нашого журналу. Ми не тільки доставляємо по всьому світу, але й ті, хто підпишеться на шість або дванадцять місяців підписки на друковану версію, отримають БЕЗКОШТОВНО Raspberry Pi Pico 2 W!
Ви можете знайти Офіційний журнал Raspberry Pi у Facebook, X, Threads, LinkedIn і Mastodon. Ви також можете зв’язатися з командою електронною поштою: [email protected]