Следим за самолётами. Flightradar24 и SDR приёмник

Описание использования SDR приёмника RTL2832U + R820T в составе микрокомпьютера Raspberry Pi или Windows компьютера, в качестве приёмника ADS-B сигнала для сервиса Flightradar24.

Когда происходило какое-либо авиационное происшествие, возможно вы слышали упоминание в новостях о Flightradar24.

Flightradar24 это бесплатный сервис, по отслеживанию и отображению на карте, перемещения самолётов в реальном времени по всему миру. Отслеживается более 150.000 рейсов ежедневно.

Для определения характеристик полёта самолётов (позывной, координаты, высота, скорость и др.) используется технология ADS-B и специальный приёмник (FR24-приёмник), который мы и будем собирать в этой статье.

Как работает приёмник Flightradar24?

Приёмники ADS-B сигналов Flightradar24 устанавливают энтузиасты (которыми можете стать и вы). Чем больше приёмников, тем выше точность отслеживания самолётов. Особенно ценны для Flightradar24 (и конечно пользователей Flightradar24, т.е. нас) приёмники установленные в труднодоступных и малонаселенных районах. Обычно в таких местах приёмников очень мало, а часто их там нет вообще и в этих районах на картах Flightradar24 «белые пятна».

Оригинальный Flightradar24 ADS-B приёмник
Оригинальный Flightradar24 ADS-B приёмник

Если у вас одно из таких мест, то Flightradar24 может вам бесплатно выслать приёмник (заполняете анкету и Flightradar24 решает, интересно им это место или там уже достаточно приёмников).

У вас есть большие шансы стать первым в вашем районе, кто отправляет данные о самолётах на сервис FR24 и видеть свой радар на картах FR24, что не может не радовать.

Статья: How the Flightradar24 Receiver Application Process Works

Но в данной статье мы рассматриваем настройку своего приёмника ADS-B.

Сервис Flightradar24 был организован в 2006 году как хобби-проект двумя Шведскими любителями авиации. Изначально была построена сеть из ADS-B приёмников в Северной и Центральной Европе, а в 2009 году, сервис открыли для возможности добавления приемников по всему миру, что позволило создать глобальную сеть по отслеживанию перемещений самолётов.

Использовать сервис можно не только через веб браузер, но и используя мобильные приложения на Android и iOS (iPhone/iPad).

Вступление закончил, теперь слегка разберёмся в терминологии…

Терминология

Разберемся в терминах которые будут использоваться в процессе настройки приёмника и слегка затронем принцип работы технологий и стандартов.

ADS-B

Ранее уже упоминалась данная аббревиатура. Расшифровывается она как — «Automatic dependent surveillance-broadcast» или по русски — «автоматическое зависимое наблюдение-вещание» . ADS-B это основная технология которая используется Flightradar24 для определения характеристик полёта самолёта.

Принцип работы следующий:

Принцип работы ADS-B и Flightradar24
Принцип работы ADS-B и Flightradar24
  1. Самолёт определяет своё
  2. местоположение с помощью GPS.
  3. ADS-B передатчик на самолёте передаёт сигнал о своём местоположении (а также множество другой информации).
  4. ADS-B сигнал принимает приёмник подключенный к Flightradar24.
  5. Приёмник передаёт полученные данные на Flightradar24.
  6. Далее, эти данные отображаются на карте Flightradar24.

Не 100% самолётов оборудованы передатчиками ADS-B. Это достаточно новая технология и она ещё находится в стадии разработки, что означает, что она редко используется Управлением Воздушного Движения (eng: ATC, рус: УВД).

По статистике Flightradar24, примерно 70% коммерческой авиации использует ADS-B передатчики. Количество самолётов с ADS-B передатчиками постоянно растёт, т.к. они станут обязательными для всех самолётов к 2020 году. При необходимости ADS-B может заменить радар в качестве основного способа наблюдения за самолётами, используемого в Управлении Воздушного Движения.

Flightradar24 имеет сеть более чем из 10.000 (и постоянно растёт) ADS-B приёмников по всему миру, которые получают информацию с самолётов и отправляют их на сервера Flightradar24.

ADS-B использует частоту 1090 МГц. Расстояние от приёмника до самолёта ограничено 250-600 км во всех направлениях в зависимости от рельефа местности (лес, горы, строения и т.д.).

Ограничение расстояния, делает очень сложной организацию покрытия ADS-B над океаном. Хотя задача эта сложная, но не невыполнимая. В 2016 году,  Flightradar24 запустили автономную лодку Wave Glider с ADS-B приёмником (подробнее: Setting Sail for Global Coverage—Flightradar24 ADS-B Receivers On-board a Surface Ocean Robot). Лодка находится в Атлантическом океане.

Wave Glider
Wave Glider

Flightradar24 также успешно протестировали работу с ADS-B сигналами через спутник (подробнее: Successfully Testing Satellite-based ADS-B Tracking).

MLAT

Как было сказано выше, не все самолёты оборудованы ADS-B передатчиками. Технология MLAT (англ. Multilateration, русский аналог: наземный многопозиционный) позволяет определять местоположение самолётов оборудованных старыми ModeS передатчиками (1, 2).

Не меньше четырех FR24-приёмников должны видеть один и тот же самолёт, передать данные о нём на сервера Flightradar24, а далее используя метод TDOA, рассчитывается местоположение самолета. Для правильной работы данной технологии, во время настройки приёмника необходимо правильно указать координаты расположение FR24-приёмника.

  • Подробнее про MLAT можно почитать на Википедии. Более подробно на английской: «Multilateration (MLAT)» и менее подробно на русской: «MLAT» .
  • Информация по MLAT в блоге Flightradar24: «How We Track Flights with MLAT» 
  • Статья на сайте adsbradar.ru: «Multilateration — MLAT» (рус)

Для наших целей терминов достаточно, за подробностями можно отправиться сюда: Flightradar24. How it works

Если вас не интересует настройка приёмника, вы можете перейти к части посещенной обзору работы с порталом Flightradar24 (Работа с порталом flightradar24.com). Для использования портала, приёмник не нужен (хотя функционал может быть ограничен).

Настройка FR24-приёмника

SDR приёмник
Про SDR приёмник я ни чего писать не буду. На нашем сайте, про него уже есть статья : Немного о приемнике RTL-SDR USB 100khz-1,7 GHz

В данной статье будет рассмотрено два варианта настройки приёмника:

  1. с использованием микрокомпьютера Raspberry Pi и ОС Linux,
  2. используя обычный компьютер с Windows.

Для неподготовленного пользователя, наверно, будет удобен Windows вариант, но если у вас в планах использовать данный приёмник на постоянной основе, то лучше использовать Raspberry Pi. Это компактное устройство, которое потребляет мало электроэнергии и не занимает много места.

Raspberry Pi

Настройка приемника на Raspberry Pi рассчитана на более опытных пользователей. Описывать настройку Raspberry Pi с Linux буду поверхностно, т.к. предполагается, что вы с ней знакомы.

Используя USB интерфейс, подключаем SDR приемник к Raspberry Pi, к разъему UV на SDR, подключаем антенну и только потом подключаем питание к Raspberry Pi.

Для приёмника используется антенна на 1090 МГц, например такая: Радиал A10-1090 (но цена на неё не гуманная, 6000 руб) или можно посмотреть на ebay, там антенны от 200 руб, а можно изготовить антенну самостоятельно (1, 2, 3, 4, 5 и 6).

Демостенд Flightradar24 приёмника на базе SDR приёмника RTL2832U+R820T и Raspberry Pi
Демостенд FR24-приёмника на базе SDR приёмника RTL2832U+R820T и Raspberry Pi

На всякий случай проверяем, корректно ли определился SDR приёмник в Linux.

Логи обнаружения SDR приёмника в Linux
pi@raspberrypi:~ $ dmesg | grep -i rtl28
[    3.372489] usb 1-1.2: Product: RTL2838UHIDIR
[   11.581330] usb 1-1.2: dvb_usb_v2: found a 'Realtek RTL2832U reference design' in warm state
[   11.941052] DVB: registering new adapter (Realtek RTL2832U reference design)
[   12.053420] rtl2832 3-0010: Realtek RTL2832 successfully attached
[   12.054263] usb 1-1.2: DVB: registering adapter 0 frontend 0 (Realtek RTL2832 (DVB-T))...
[   12.301585] input: Realtek RTL2832U reference design as /devices/platform/soc/20980000.usb/usb1/1-1/1-1.2/rc/rc0/input0
[   12.301641] rc rc0: Realtek RTL2832U reference design as /devices/platform/soc/20980000.usb/usb1/1-1/1-1.2/rc/rc0
[   12.381389] rc rc0: lirc_dev: driver ir-lirc-codec (dvb_usb_rtl28xxu) registered at minor = 0
[   12.383828] usb 1-1.2: dvb_usb_v2: 'Realtek RTL2832U reference design' successfully initialized and connected
[   12.384256] usbcore: registered new interface driver dvb_usb_rtl28xxu
[   28.277635] usbcore: deregistering interface driver dvb_usb_rtl28xxu
[   28.292304] dvb_usb_v2: 'Realtek RTL2832U reference design:1-1.2' successfully deinitialized and disconnected

pi@raspberrypi:~ $ lsusb
Bus 001 Device 004: ID 0bda:2838 Realtek Semiconductor Corp. RTL2838 DVB-T
Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp. SMSC9512/9514 Fast Ethernet Adapter
Bus 001 Device 002: ID 0424:9512 Standard Microsystems Corp. SMC9512/9514 USB Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

root@raspberrypi:/home/pi# lsusb -v -s 001:004

Bus 001 Device 004: ID 0bda:2838 Realtek Semiconductor Corp. RTL2838 DVB-T
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               2.00
  bDeviceClass            0 (Defined at Interface level)
  bDeviceSubClass         0
  bDeviceProtocol         0
  bMaxPacketSize0        64
  idVendor           0x0bda Realtek Semiconductor Corp.
  idProduct          0x2838 RTL2838 DVB-T
  bcdDevice            1.00
  iManufacturer           1 Realtek
  iProduct                2 RTL2838UHIDIR
  iSerial                 3 00000001
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength           34
    bNumInterfaces          2
    bConfigurationValue     1
    iConfiguration          4 USB2.0-Bulk&Iso
    bmAttributes         0x80
      (Bus Powered)
    MaxPower              500mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           1
      bInterfaceClass       255 Vendor Specific Class
      bInterfaceSubClass    255 Vendor Specific Subclass
      bInterfaceProtocol    255 Vendor Specific Protocol
      iInterface              5 Bulk-In, Interface
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0200  1x 512 bytes
        bInterval               0
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        1
      bAlternateSetting       0
      bNumEndpoints           0
      bInterfaceClass       255 Vendor Specific Class
      bInterfaceSubClass    255 Vendor Specific Subclass
      bInterfaceProtocol    255 Vendor Specific Protocol
      iInterface              5 Bulk-In, Interface
Device Qualifier (for other device speed):
  bLength                10
  bDescriptorType         6
  bcdUSB               2.00
  bDeviceClass            0 (Defined at Interface level)
  bDeviceSubClass         0
  bDeviceProtocol         0
  bMaxPacketSize0        64
  bNumConfigurations      2
Device Status:     0x0000
  (Bus Powered)

Нас интересует RTL2838 устройство. Всё хорошо, SDR приёмник определился и работает.

Подключаемся консолью к Raspberry Pi и начинаем установку и настройку программного обеспечения.

Если вы используете Raspbian версии Lite, то перед дальнейшей работой необходимо установить пакет dirmngr:

sudo apt-get install dirmngr

В соответствии с инструкцией выполняем следующую команду:

sudo bash -c "$(wget -O - http://repo.feed.flightradar24.com/install_fr24_rpi.sh)"

Начинается процесс загрузки необходимого ПО:

pi@raspberrypi:~ $ sudo bash -c "$(wget -O - http://repo.feed.flightradar24.com/install_fr24_rpi.sh)"
--2017-09-24 14:20:28--  http://repo.feed.flightradar24.com/install_fr24_rpi.sh
Resolving repo.feed.flightradar24.com (repo.feed.flightradar24.com)... 52.216.64.131
Connecting to repo.feed.flightradar24.com (repo.feed.flightradar24.com)|52.216.64.131|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 921 [text/x-sh]
Saving to: ‘STDOUT’

 100%[=============================================================>]     921  --.-KB/s    in 0s      

2017-09-24 14:20:28 (10.2 MB/s) - written to stdout [921/921]

gpg: /root/.gnupg/trustdb.gpg: trustdb created
gpg: key C969F07840C430F5: public key "Flightradar24 <support@fr24.com>" imported
gpg: Total number processed: 1
gpg:               imported: 1
OK
Hit:1 http://mirrordirector.raspbian.org/raspbian stretch InRelease
Hit:2 http://archive.raspberrypi.org/debian stretch InRelease                                         
Get:3 http://repo.feed.flightradar24.com flightradar24 InRelease [10.5 kB]
Get:4 http://repo.feed.flightradar24.com flightradar24/raspberrypi-stable armhf Packages [632 B]
Fetched 11.1 kB in 5s (2,097 B/s)
Reading package lists... Done
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following NEW packages will be installed:
  fr24feed
0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
Need to get 1,288 kB of archives.
After this operation, 563 kB of additional disk space will be used.
Get:1 http://repo.feed.flightradar24.com flightradar24/raspberrypi-stable armhf fr24feed armhf 1.0.18-9 [1,288 kB]
Fetched 1,288 kB in 1s (742 kB/s)   
Selecting previously unselected package fr24feed.
(Reading database ... 34386 files and directories currently installed.)
Preparing to unpack .../fr24feed_1.0.18-9_armhf.deb ...
Unpacking fr24feed (1.0.18-9) ...
Processing triggers for systemd (232-25+deb9u1) ...
Setting up fr24feed (1.0.18-9) ...
______  _  _         _      _                    _              _____    ___ 
|  ___|| |(_)       | |    | |                  | |            / __  \  /   |
| |_   | | _   __ _ | |__  | |_  _ __  __ _   __| |  __ _  _ __`' / /' / /| |
|  _|  | || | / _` || '_ \ | __|| '__|/ _` | / _` | / _` || '__| / /  / /_| |
| |    | || || (_| || | | || |_ | |  | (_| || (_| || (_| || |  ./ /___\___  |
\_|    |_||_| \__, ||_| |_| \__||_|   \__,_| \__,_| \__,_||_|  \_____/    |_/
               __/ |                                                         
              |___/                                                          
[main][i]FR24 Feeder/Decoder
[main][i]Version: 1.0.18-9/generic
[main][i]Built on Apr 20 2017 09:25:30 (T201704200925/Linux/static_arm)
[main][i]Copyright 2012-2017 Flightradar24 AB
[main][i]http://flightradar24.com
[main][i]DNS mode: PING

Welcome to the FR24 Decoder/Feeder sign up wizard!

Before you continue please make sure that:

 1 - Your ADS-B receiver is connected to this computer or is accessible over network
 2 - You know your antenna's latitude/longitude up to 4 decimal points and the altitude in feet
 3 - You have a working email address that will be used to contact you
 4 - fr24feed service is stopped. If not, please run: sudo service fr24feed stop

To terminate - press Ctrl+C at any point

Приступаем к пошаговой настройке параметров

Далее, в процессе настройки будут задаваться вопросы, на которые нужно ответить:

Step 1.1 - Enter your email address (username@domain.tld)
$:andrey.@4ham.ru

Укажите ваш email. В дальнейшем он будет использоваться для регистрации на сайте www.flightradar24.com

Step 1.2 - If you used to feed FR24 with ADS-B data before enter your sharing key.
If you don't remember your sharing key, pelase use the retrival form:
http://feed.flightradar24.com/forgotten_key.php

Otherwise leave this field empty and continue.
$:

Если вы ранее уже использовали FR24 и регистрировались на www.flightradar24.com, то вам выделяли специальный ключ (Sharring key), его необходимо тут указать. В нашем случае, мы регистрируемся первый раз, нам необходимо оставить данные поле пустым и нажать Enter.

Step 1.3 - Would you like to participate in MLAT calculations? (yes/no)$:yes

IMPORTANT: For MLAT calculations the antenna's location should be entered very precise!

Step 3.A - Enter antenna's latitude (DD.DDDD)
$:55.9739

Step 3.B - Enter antenna's longitude (DDD.DDDD)
$:37.4058

Step 3.C - Enter antenna's altitude above the sea level (in feet)
$:571

Using latitude: 55.8507, longitude: 37.4619, altitude: 571ft above sea level

Validating email/location information...OK

The closest airport found is ICAO:UUEE IATA:SVO near Moscow.

Latitude: 55.972641
Longitude: 37.414581
Country: Russia

Flightradar24 may, if needed, use your email address to contact you regarding your data feed.

Would you like to continue using these settings?

Enter your choice (yes/no)$:yes

Включаем поддержку MLAT (Step 1.3). Как я писал выше, для правильной работы MLAT необходимо корректно указать координаты расположения вашего FR24-приёмника (Step 3.A и Step 3.B) и высоту над уровнем моря в футах (Step 3.C).

Координаты можно узнать на Яндекс Картах (кликаете мышкой на нужную точку и появятся координаты), высоту над уровнем моря можно посмотреть на сайте: http://www.vhfdx.ru/karta-vyisot. Полученные метры умножаете на 3,28 и получаете футы.

После ввода всех параметров, будет найден ближайший аэропорт и нам нужно будет согласиться с ранее введенными параметрами (Enter your choice (yes/no)$:yes).

Step 4.1 - Receiver selection (in order to run MLAT please use DVB-T stick with dump1090 utility bundled with fr24feed):

 1 - DVBT Stick (USB)
 -----------------------------------------------------
 2 - SBS1/SBS1er (USB/Network)
 3 - SBS3 (USB/Network)
 4 - ModeS Beast (USB/Network)
 5 - AVR Compatible (DVBT over network, etc)
 6 - microADSB (USB/Network)
 7 - SBSx via Basestation (localhost:30006)


Enter your receiver type (1-7)$:1
Checking for dump1090...FOUND

Step 4.3 - Enter your additional dump1090 arguments or leave empty
$:

Step 5.1 - Would you like to enable RAW data feed on port 30002 (yes/no)$:no

Step 5.2 - Would you like to enable Basestation data feed on port 30003 (yes/no)$:no

Step 6A - Please select desired logfile mode:
 0 -  Disabled
 1 -  48 hour, 24h rotation
 2 -  72 hour, 24h rotation
Select logfile mode (0-2)$:1

Step 6B - Please enter desired logfile path (/var/log):
$:

Submitting form data...OK

Здесь необходимо выбрать тип приёмника и другие параметры. Настраивайте параметры как указано выше.

Congratulations! You are now registered and ready to share ADS-B data with Flightradar24.
+ Your sharing key (430e3fcbe09c411c) has been configured and emailed to you for backup purposes.
+ Your radar id is T-UUEE81, please include it in all email communication with us.
+ Please make sure to start sharing data within the next 3 days as otherwise your ID/KEY will be deleted.

Thank you for supporting Flightradar24! We hope that you will enjoy our Premium services that will be available to you when you become an active feeder.

To start sending data now please execute:
sudo service fr24feed start

Saving settings to /etc/fr24feed.ini...OK
Installation and configuration completed!

В финале вам выдадут ключ (sharing key) и ID вашего радара (в нашем случае T-UUEE81). Сохраните эти данные.

Настройки закончены… Теперь нам нужно убедиться что данные собираются и отправляются на сайт www.flightradar24.com.

Подключимся к Raspberry Pi через Web интерфейс и посмотрим на результаты проделанной выше работы

Порт для подключения 8754

Основная страница FR24-приёмника
Основная страница FR24-приёмника

Основная страница FR24-приёмника с информацией о статусе работы.

Следует обратить внимание на следующие параметры:

  • FR24 Link: Connected via UDP — наш приёмник подключен к flightradar24.com
  • Aircraft tracked (ModeS & ADS-B): число — сколько самолётов отслеживает приёмник (должно быть > 0)
  • Aircraft Uploaded: число — о каком количестве самолётов загружена информация на flightradar24.com (должно быть > 0)
Список отслеживаемых самолётов
Список отслеживаемых самолётов

На данной странице (Show tracked aircraft list) мы видим самолёты которые отслеживает наш FR24-приёмник.

Мы видим:

  • адрес ModeS или ICAO 24-bit address (уникальный адрес для каждого самолёта),
  • позывной (Callsign), 
  • координаты (Lat/Long — широта и долгота),
  • высота (Alt).

Далее пойдёт описание настройки FR24-приёмника под Windows. Если вас это не интересует, переходите к следующей главе посвященной регистрации и использованию портала flightradar24.com.

Настройка под Windows

С 7 мая 2019 года клиент под Windows больше не поддерживается: https://forum.flightradar24.com/forum/radar-forums/flightradar24-feeding-data-to-flightradar24/12155-windows-feeder-discontinued-7-may-19

Работа с порталом flightradar24.com

Мы настроили приёмник ADS-B сигналов, убедились, что он работает и теперь пришло время использовать портал Flightradar24.

Прежде чем начать работу с порталом, нам нужно на нём зарегистрироваться. После регистрации, нам дадут тарифный план Business. Его дают всем кто раздаёт с приёмника данные о самолётах, и этот план открывается дополнительный функционал сайта и убирает рекламу.

Регистрация

Заходим по адресу: https://www.flightradar24.com/premium/signup?account=free

Регистрация на flightradar24
Регистрация на flightradar24

Email указываемым тот, что ранее указывали в настройках FR24-приёмника.

Подтверждаем регистрацию на flightradar24.com
Подтверждаем регистрацию на flightradar24.com

После регистрации, для подтверждения указанного email’а, на почту придёт письмо со ссылкой, нажмите на неё.

Flightradar24 личный кабинет
Flightradar24 личный кабинет

В личном кабинете вы можете выбрать пункт меню «My data sharing».

Flightradar24 my sharing data
Flightradar24 my sharing data

На данной странице можно посмотреть состояние вашего FR24-приёмника. Подключен он или нет и когда последний раз передавал данные (время UTC!), а также его ID и Sharring key.

Видеообзор работы с порталом Flightradar24

Дальнейшее описание использования портала Flightradar24 будет в видео версии.

Статья «Собственный сервис по отслеживанию самолётов«.

Описание настройки приёмника и декодера ADS-B сигналов с самолётов и отслеживание самолётов на карте с помощью SDR приёмника RTL2832U + R820T и Raspberry Pi.

Ссылки

Андрей Торженов

В профессиональной сфере занимаюсь всем, что связанно с IT. Основная специализация - VoIP и сети передачи данных. Стараюсь не заниматься Windows серверами (но иногда приходится) и 1С.

Добавить комментарий