Anda comigo ver os aviões… Com um Raspberry Pi

Não… não é sobre a música de “Os Azeitonas” que estamos a falar, mas como conseguir ver os aviões em nossa casa recorrendo a um Raspberry Pi e um dongle usb cuja utilização inicial seria para ver TV digital no computador.

_ne_r820t_1g

Aparentemente, estes dispositivos possuem um sintonizador, que usando drivers ligeiramente alterados permitem transformá-lo num rádio definido por software (em inglês: Software Defined Radio ou SDR) e com o qual podemos “espreitar” as ondas do éter compreendidas entre os 24 e os 1766MHz (chipset RTL2832U + sintonizador Rafael Micro R820T), o que nos permite por menos de 20€ ter um rádio definido por software a um preço bem acessivel.

“Então e a cena dos aviões, pah!?!”, ok, ok… Então como é que vamos conseguir ver os aviões? Os aviões transmitem na frequência 1090MHz a sua identificação, altitude, velocidade, direção, latitude, longitude, o que nos permite colocá-lo no mapa e vermos a sua progressão.

Depois de finalizarmos a instalação inicial do Raspbian no nosso Raspberry Pi (expansão do espaço no cartão sd e alteração da password que vem por defeito para o utlizador pi) devemos actualizar o nosso sistema operativo com as ultimas actualizações através dos seguintes comandos:

sudo apt-get update
sudo apt-get upgrade

Tendo o nosso Raspberry Pi com o software fresquinho, vamos adicionar mais uns pózinhos:

sudo apt-get install git cmake libusb-1.0-0-dev build-essential

Terminada a instalação, já nos vai ser possível clonar o repositório onde se encontram os drivers e aplicações que nos irão permitir aceder a todas as frequências que o sintonizador consegue “ouvir”.

sudo git clone git://git.osmocom.org/rtl-sdr.git

Tchanan! Agora vamos passar à instalação;

cd rtl-sdr/
mkdir build
cd build
cmake ../ -DINSTALL_UDEV_RULES=ON
make
sudo make install
sudo ldconfig
cd ~
sudo cp ./rtl-sdr/rtl-sdr.rules /etc/udev/rules.d/

Agora vamos criar um ficheiro novo com

sudo nano /etc/modprobe.d/raspi-blacklist.conf

e adicionam as linhas seguintes:

blacklist dvb_usb_rtl28xxu
blacklist rtl2832
blacklist rtl2830

Para gravar e sair Ctrl+X e depois

sudo reboot

Se tudo correu como era suposto correr… bem… então quando executarmos o próximo comando o dongle será detectado

rtl_test

Pois bem, se o Raspberry Pi já detecta o nosso dongle DVB-T, vamos então descodificar os sinais que andam pelos 1090MHz e para isso vamos instalar o dump1090 que nos vai permitir descodificar o sinal bem como visualizarmos em qualquer browser os aviões num mapa. Então vamos lá…

cd ~ (goes to your home directory)
git clone git://github.com/mutability/dump1090.git

cd dump1090
make

Portanto, quando a compilação do programa terminar já o podemos executar usando
./dump1090 --interactive
Se a antena do dongle estiver perto de uma janela e não houver muitos obstáculos à volta devem começar a aparecer no ecran alguns aviões, mas ainda vamos afinar mais um bocadinho o nosso setup.
Antes de continuarmos à procura dos aviões, vamos verificar qual a margem de erro do nosso sintonizador, e para isso vamos fazer mais uns testes e vamos executar o próximo comando e deixá-lo correr durante uns 5 minutos
rtl_test -p
Passados os 5 minutos façam Ctrl+C e anotem o valor de erro acumulado (no meu caso é de 55ppm) e agora sim, vamos executar o dump1090 com tudo e mais um par de botas (mais ou menos)

cd ~/dump1090/
./dump1090 --enable-agc --net --aggressive --fix --metric --ppm 55

Agora sim, em principio devemos “ver” mais aviões (desde que eles estejam lá), embora a antena stock não esteja optimizada para a frequência em causa e seja bastante fácil fazer uma.
Agora é só abrir um browser e colocar o endereço de ip do Raspberry Pi e a porta 8080

http://endereco.ip.do.raspberry.pi:8080

2015-02-22-184115_1024x744_scrot
Et voilá! O vosso próprio Flightradar24 ou Flight Aware, projectos para os quais podem participar, como podem ver aqui e aqui.

Leave a Reply

Your email address will not be published. Required fields are marked *