Inspiration

Current research in using extra router information for location purposes inspired this project. Open source machine learning libraries make the implementation of this idea feasible if implemented correctly.

What it does

A k-means algorithm was trained on collected WiFi router RSS data. K-means is an unsupervised learning model, meaning that the data points don't require to be labeled -- the computer figures out the data trends on its own. By feeding it data collected at distinct locations, it has learned the relationships between unique routers and can distinguish your location based on these received signal levels.

How I built it

We used an open source library called NetworkManager to collect the RSS data from all nearby routers, printers, and other wireless devices. This data was stored as .csv files. The .csvs were loaded into a training program with pandas. The data was pre-processed by converting router MAC addresses to unique identifiers that are easier to feed into a learning model. The k-means algorithm provided by scikit-learn found trends in the data and provided predictions. Real-time measurements were then taken and fed into the predictor. The resulting approximate location was output.

Challenges I ran into

Creating a user interface for this application proved to be very difficult. We are all new to building apps and the learning curve was steep.

The accuracy of this program was also lacking. Many improvements can be made.

Accomplishments that I'm proud of

We have a program that almost works! That's always exciting, especially when completed in less than 24 hours.

What I learned

Making apps is difficult

What's next for Wayfinding with WiFi

We would like to clean up the app a bit. Mainly by making the GUI useable. Also, taking more measurements and experimenting with different learning methods may improve our accuracy.

Built With

Share this project:

Updates