ECE497 Project: Local Air Traffic Radio
Team members: Adam Bretsch
RTL-SDR radios can monitor local air traffic via ADS-B signals. These signals include much information about the flight, including latitude, longitude, height and other flight charactertics.
Currently the utility dump1090 can output plane data to a html page. This page shows the direction and location of each plane in sensor range, but is only accessible in the local network.
The goal of this project is to create a device that will track the local air traffic and alert the user whenever a plane comes close enough to look out the window and see
This tool will have many different applications. The overall goal is to be able to set up the BeagleBone with the 2 SDRs and have it give alerts whenever a plane is close enough to see. These planes will be found using the dump1090 utility and the system will alert the user via both a buzzer and by tweeting the plane's information
Components used are listed below:
BeagleBone Blue: https://beagleboard.org/blue
Software Defined Radio: https://www.rtl-sdr.com/buy-rtl-sdr-dvb-t-dongles/
Electronic Buzzer: https://www.adafruit.com/product/1536
https://github.com/AdamBretsch/SDRFlights See README.md in github directory.
- Be sure your README.md is includes an up-to-date and clear description of your project so that someone who comes across you git repository can quickly learn what you did and how they can reproduce it.
- Include a Makefile for you code.
- Include any additional packages installed via apt.
- Include kernel mods.
- If there is extra hardware needed, include links to where it can be obtained.)
(Once everything is installed, how do you use the program? Give details here, so if you have a long user manual, link to it here.)
(Here is where you brag about what your project can do. Include a YouTube demo.)
Theory of Operation
The utility dump1090 calibrates and begins the SDR's collection of data. The script begindump.sh starts this process and starts dump1090 with the option to deposit all data gathered into a .json file ./dump1090/public_html/data/aircraft.json. Using the script ./HTMLserver.sh, a basic python html server is started on port 8090 that views that data in an html form.
For my project, the same aircraft.json file that serves the html page is queried and used to compile data on the local flights. The program ./listPlanes.py gathers this data and filters out the planes that don't have a strong enough signal to give specific aircraft information such as flight number or speed. If this information is present, each plane and its values are recorded, and the distance to each plane from the local position (currently assume to be Rose-Hulman in Terre Haute, IN) is calculated using geopy's vincety distance between two points in the form (latitude, longitude). This program was the first step in processing the information used in the project, and can currently be used to check the distance to each fully visible plane.
In ./tweetPlanes.py, ./listPlanes.py has been expanded to include the functionality to tweet and activate a buzzer to inform the user whenever a plane is close enough to be locally seen. The distance is set to 20 miles by default, and whenever a plane is detected within this distance, a tweet including its flight number, distance, speed, altitude, and a link to a third party flight-tracker is included in the tweet. The twitter feed operates through use of the utility tweepy, which integrates with a custom-made application on apps.twitter.com, communicating via public and private keys to the twitter account.
Done: Installed dump1090 - 10/22/17 Tested dump1090 -10/22/17 Installed dump978 - 10/29/17 Tested dump978 - 10/29/17
To be done: Analyze dump1090 source - 11/2/17 Analyze dump978 source - 11/2/17 Combine code dump 1090 and dump978 - 11/7/17 Combine display outputs - 11/3/17
Could add twitter interface to send alerts over the Internet.
0 = Missing, 5=OK, 10=Wow!
00 Executive Summary 00 Installation Instructions 00 User Instructions 00 Highlights 00 Theory of Operation 00 Work Breakdown 00 Future Work 00 Conclusions 00 Demo 00 Late Comments: Score: /100