Śledzimy samoloty cz. 2 – ADS-B oraz MLAT – najtańszy odbiornik dla Flightaware oraz Flightradar 24

Śledzimy samoloty cz. 2 – ADS-B oraz MLAT – najtańszy odbiornik dla Flightaware oraz Flightradar 24

`[Aktualizacja 2017-06-07 – Dzielenie się danymi z zaprzyjaźnionymi radarami]
Wiele zmieniło się od ostatniego wpisu o śledzeniu samolotów przy użyciu wiadomości ADS-B. Pojawiły się nowe opcje dzielenia się danymi, znacznie uproszczona procedura instalacji oraz – opcjonalnie nowy sprzęt. Pozwala to na zbudowanie nowego odbiornika z naciskiem na prostotę, jeszcze niższe koszty zakupu i utrzymania oraz nową funkcję – MLAT. Co więcej oprócz samolotów możecie spotkać także inne statki powietrzne – np: balony meteo! Postęp!

===
04246759

Czego będziemy potrzebować?

Sprzęt:

  • Orange Pi Zero. Konkurencyjna dla Raspberry Pi płytka, która za cenę $10 oferuje cztery tzw. core a więc osobne CPU widziane w systemie, 256 lub 512MB RAM. Poza tym posiada port Ethernet oraz WiFi i jeden port USB. Istnieją dodatkowe płytki rozszerzające – tzw. HAT – w wersji z 2xUSB/IR/wyjściem CVSB lub USB2SATA
  • DVB-T USB Dongle. Szukamy ich w wersji w niebieskiej obudowie „DVB-T RTL2832U+R820T2” – ponieważ oferują lepszą czułość w interesującym nas zakresie – co przekłada się na większy zasięg. Bardzo ważny jest tuner R820T2 (wersja '2′) oraz oczywiście sama antena
  • Karta micro SD – może być tania karta 8G za $4, ale lepiej Sandisk Extreme/Ultra minimalnie 4GB
  • Zasilacz 1.5 lub 2A 5V z micro USB (np: ładowarka do komórki)
  • Małe radiatory (dwie sztuki) na CPU i kontroler w Orange Pi Zero
  • ALTERNATYWNIE: Raspberry Pi 2 lub 3 – posiadają odpowiednią moc CPU, chociaż są trzykrotnie droższe

Tak więc - koszty naszego sprzętu powinny oscylować w granicach 25-30$!
orange_pi-768x630

Software:

  • Armbian dla Orange Pi – obecnie polecaną wersją jest Server Xenial na jądrze legacy, można też próbować wersji developer/beta, z jądrem 4.9.x. Pobieramy z: z https://www.armbian.com/orange-pi-zero/.
  • piaware oraz fr24feed – oprogramowanie do odbierania, dekodowania i dzielenia się informacją o przelatujących samolotach.
  • Wolne porty 8080 i 3000-30010 na naszej maszynie (jeśli nie ma nic zainstalowanego to będą wolne)

Nowa funkcja – MLAT

MLAT to skrót od multilateration. Statki powietrzne, które nie są jeszcze wyposażone w transpondery ADS-B nie nadają swojego położenia, tak więc dzięki „multilateration” (triangulacji) otrzymywnych z transpondera w trybie S – można wyliczyć jego pozycję dzięki opóźnieniu w otrzymaniu wiadomości o ile mamy co najmniej trzy stacje bazowe odbierające (Mode S). Wymaga to więc dobrej synchronizacji zegarów i wspólnej pracy – tym bardziej warto zachęcić kolegów do uruchomienia własnych stacji odbiorczych.
fb1-768x665

Orange Pi Zero

Jak zauważyliście – wcześniej używaliśmy głównie Raspberry Pi. Niesamowity sukces spowodował powstanie podobnych projektów, niektóre droższe – natomiast Orange Pi Zero ma zaletę bycia bardzo tanią wraz z peryferiami – jednak nie jest to najlepiej oprogramowana płytka. No cóż – coś za coś!

Antena

Na dostarczonej antenie możesz osiągnąć niezłe rezultaty, jeśli umieścisz ją na dachu. Następnie – użyj google aby sprawdzić jaka powinna być jej długość dla częstotliwości 1090MHz. Potem możesz już zanurzyć się w świat profesjonalnych anten – masz znajomego krótkofalowca?
Pamiętaj, że antena na dachu często równa się Orange Pi Zero na strychu a tam bywa bardzo gorąco w lecie!

Instalacja

Przed pierwszym podłączeniem Orange Pi Zero – instalujemy na procesorze H2+ radiator, podobnie na chipe obok. Z radiatorami, bez obudowy temperatura CPU sięga 42-48 stopni Celsjusza. Jeśli ich nie zainstalujemy w gorący dzień temperatura może przekroczyć 60-65 stopni Celsjusza i znacznie skrócić żywot komputera i karty SD.

Instalujemy – zupełnie tak jak w pierwszym wpisie – system Armbian na jądrze 4.9 w wersji Xenial – używajac dd lub win32diskimager.
Przy pierwszym uruchomieniu Armbian pozwala na zalogowanie się na root z hasłem 1234, od razu przystąpimy do zmiany hasła root’a oraz stworzenia użytkownika do zwykłej pracy – może być to oczywiście 'pi’.

Zalogujmy się więc do Orange Pi za pomocą użytkownika pi i przejdźmy na root’a:

sudo su -

Od tej pory wszystkie komendy wykonujemy jako root – a więc – jak zawsze – ostrożnie!
Aktualizujemy go klasyczną komendą:

apt update && apt upgrade

Wyłączamy sterowniki do DVB-T – inaczej nie moglibyśmy użyć naszego dongle DVB-T w trybie surowym

nano /etc/modprobe.d/rtl-sdr-blacklist.conf

wklejamy:

blacklist dvb_usb_rtl28xxu
blacklist e4000
blacklist rtl2832
blacklist r820t
blacklist rtl2830
blacklist dvb_usb_rtl28xxu
blacklist dvb_usb_rtl2832u

a następnie przystępujemy do pobrania oprogramowania z Flightaware – Pi Aware – to pierwsza część naszego systemu:

wget http://flightaware.com/adsb/piaware/files/packages/pool/piaware/p/piaware-support/piaware-repository_3.1.0_all.deb

Instalujemy:

dpkg -i piaware-repository_3.1.0_all.deb
apt update
apt install piaware
apt install dump1090-fa

Dodajemy jeszcze automatyczną aktualizację:

piaware-config allow-auto-updates yes
piaware-config allow-auto-updates yes

Przechodzimy teraz do instalacji Flightradar 24:

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

Podobnie jak w pierwszym wpisie – zostaniemy poproszeni o nasze dane, klucz, pozycję anteny – przygotujmy to wcześniej.
Pozostaje połączyć FR24 z Pi Aware:

nano /etc/fr24feed.ini

Zawartość powinna wyglądać następująco

receiver="avr-tcp"
fr24key="TwojKluczFR24"
path="/usr/bin/dump1090-fa"
bs="yes"
raw="yes"
logmode="2"
mlat="yes"
mlat-without-gps="yes"

Upewniamy się jeszcze czy obie usługi są włączone:

systemctl enable piaware
systemctl enable fr24feed

I przeprowadzić reboot systemu:

reboot

Waszą mapę zobaczycie pod adresem

http://adres_ip_Waszego_orange_pi:8080/

Przykład:
flight-radar-screen-768x375
Polecam sprawdzić oznaczenie amerykańskiego samolotu… Przykład dlaczego MLAT się przydaje! Później pojawił się… AWACS

Status „fr24feed” i „piaware” obejrzymy dzięki:

tail -f /var/log/fr24feed.log /var/log/piaware.log

Albo

piaware-status

To wszystko!

Dzielenie się danymi z zaprzyjaźnionymi radarami

W kupie siła – jak mawia stare porzekadło. Wśród znajomych – znajdzie się ktoś, kto ma serwer i może przyjmować i prezentować dane z wielu radarów. Dostaniesz wtedy dostęp do wszystkich danych jakie odbierasz – oraz do tych jakie zostaną wyliczone na podstawie MLAT. Zasada jest prosta – od właściciela serwera dostajesz adres IP oraz port (a więc gniazdo) – na które przekierowujesz ruch ze swojego radaru. Wystarczy jedna linia, oraz mechanizm weryfikacji czy połączenie działa.
Samo przekazywanie zaczynamy od instalacji socat

apt-get install socat

Następnie testujemy połączenie:

/usr/bin/socat -d -T 90 TCP4:localhost:30005 TCP4:ADRES_IP_RADARU_ZNAJOMEGO:PORT_PODANY_PRZEZ_ZNAJOMEGO

Jeśli działa – przerywamy połączenie przez CRL+C i na stałe umieszczamy w crontab weryfikację działania:

crontab -e

dopisujemy linię:

*/20 * * * * /root/bin/share_flight_data.bash

Teraz tworzymy plik i edytujemy plik /root/bin/share_flight_data.bash:

mkdir -p /root/bin
touch /root/bin/share_flight_data.bash
chmod 755 /root/bin/share_flight_data.bash
pico /root/bin/share_flight_data.bash

W pliku umieszczamy:

#!/bin/bash
if [ `/usr/bin/pgrep -f "feed_do_znajomego_30005" | /usr/bin/tr '\n' ' '| /usr/bin/awk '{print $1}'` ]; then echo "feed_do_znajomego dziala"; else /usr/bin/screen -dmS feed_do_znajomego_30005 /usr/bin/socat -d -T 90 TCP4:localhost:30005 TCP4:ADRES_IP_RADARU_ZNAJOMEGO:PORT_PODANY_PRZEZ_ZNAJOMEGO; echo "Uruchamiam feed_do_znajomego_30005"; fi >> /tmp/share_data.log 2>&1

To wszystko – co 20 minut system sprawdzi czy połączenie działa!

Previous Post Next Post