FreeBSD로 ADS-B

확실히 Aitendo가 아직 낡은 가게 무렵에 샀던, Realtek의 SDR인 모듈이 있어 방치하고 있었습니다만, 오늘(6/1)은 전파의 날이라고 하는 일이므로, 사용해 보는 일이었습니다.



조사해 보면 이것에 대응한 rtl-sdr이라는 라이브러리와 명령의 오픈 소스가 있는 것 같습니다. 우선 이것을 컴파일 해 보았습니다. 소스를 git로 타운로드하고 빌드하고 install했지만 ports에도있는 것 같습니다. FM을 수신하는 명령 등도 있는 것 같습니다만, 내 환경에는 사운드 출력이 없었기 때문에, 시도하고 있지 않습니다.

이 라이브러리를 사용한 ADS-B(항공기가 내고 있는 1090MHz의 충돌 방지용 무선 신호)를 처리해 주는 dump1090 라는 커맨드 라인 툴이 있습니다. 이것도 포트에 있습니다.



이전부터 집 근처에서 항공기가 날아가는 것이 보이고 어디로 가는지 흥미가 있었습니다.

dump1090은 fork한 것 쪽이, 고기능입니다만 우선 포트에 있는 오리지날을 컴파일 해 사용해 보았습니다.

dump1090 명령줄 UI와 브라우저에서 표시 기능이 있습니다.

dump1090에 --net 옵션을 지정해 기동해, 그 호스트의 8080 포트를 브라우저로 액세스 하면 이런 느낌입니다.



와 어울리지 않고 amd64로 확인을 해 동작했으므로 ZRouter의 profile에 추가해, mips인 타겟으로 시험해 보았습니다. 처음 RT3050에서 시도했지만 잘 움직이지 않고 Atheros의 AR9 모듈로 시도한 곳 제대로 움직였습니다. RT3050의 USB는 그다지 음색이 좋지 않습니다.

rtl-sdr은 git의 submodule에서 contrib에 넣었고 dump1090은 ports 형식으로 던져졌습니다.

제품에 부속된 안테나는 ADS-B용이 아니므로 여기 를 참고에 우선 서로 어울리는 부품으로 이런 것을 만들어 보았습니다.



이른바 수직 다이폴 안테나로 2분의 1 파장의 140 mm정도의 것입니다. 이런 치프한 안테나라도 자택의 목조 가옥의 1층에 있어서 두면 북측은 들어갑니다만, 남측은 1m정도의 흙 고정으로 담이 있으므로 들어가기가 나쁘습니다. 그렇다고는 해도 2층에서 시험하면 2배 정도 잘 들어갑니다. 역시 안테나가 중요합니다. 주파수가 높기 때문에 파장이 짧고 작은 안테나로 좋지만, 여러가지 궁리 방법으로 효율이 바뀌어 오는 것 같습니다.

안테나에 대한 자세한 설명 페이지

후일 추기: 콜리니어 안테나 도 만들어 보았습니다.

게씨의 SDR을 할 수 있는 USB 모듈은 또 하나 가지고 있었습니다만, 인식은 됩니다만, 칩의 구성이 다르기 때문인지, 전혀 데이터가 출력되지 않았습니다. 게씨니까 모두 사용할 수 있는 것은 아닌 것 같습니다. 사용할 수있는 분은 tuner가 R820T에서 사용할 수없는 분은 FC0012였습니다.

안테나선과의 접속은 사용할 수 없는 모듈에 부속되어 있던 F커넥터로의 변환을 사용하고 있습니다.

flightradar24 은 개인이 수집한 데이터를 함께 사용하는 것 같습니다. 이를 위해서 서버에 업하는 커멘드는 바이너리로 제공되고 있어 Linux판 밖에 없는 것 같습니다. 오픈 소스도 아니고, API의 공개도 없어 어쩐지 전시대적인 느낌입니다.

googlemap의 js로 액세스하는 데 API Key가 필수가 된 것 같습니다.



올바르게 표시하려면 gmap.html의 maps.googleapis.com에 액세스하는 부분에 key를 가져와서 설정해야 합니다.

2018/7에 google map javascript api는 key 결제 등록을하지 않으면 작동하지 않는 것 같습니다.

어쩔 수 없기 때문에, 국토지리원의 지도를 이용한 JS 를 써 보았습니다.

좋은 웹페이지 즐겨찾기