Post on 25-Dec-2015
Idea
Track signal variances throughout the day
Get a feel for the “usability” of a WiFi access point (or location)
Present this as a map to easily spot “lagging” areas
Implementation
Create a client program to collect WiFi/GPS data and submit to a server
Server catalogues data into a database while waiting to serve map requests
Clients can request a map from the server showing WiFi data for GPS points
Client View (Data Collection)
GPS_Parser
COM_Access
WLAN_Access
GPS Serial Data
WiFi Signal Data
WiFiGPSDataUnit cURL Internet
Client View (Data Service)
Internet
Your favorite web browser!http://shyguy2.mine.nu
Or Google Earth…http://shyguy2.mine.nu/kml.kml
Data Collection
Flag a GPS fix if at least 3 satellites in view
Utilize fix data to time 5 second intervals If fix, poll WiFi interface for access points Tag SSID and signal strength to GPS fix If internet available, submit data, else
store for later! Runs in background, works even when
using any access point or the Internet
cURL Library
Created a URL to pass data to PHP script http://shyguy2.mine.nu/postdata.php?
datetime=1234&lon=-84.5675&lat=23.4326&ssid=UCF&sig=23...
cURL library allows easy usage of GET If GET fails then we leave data in buffer
and try again later
Data Buffering
A cURL failed GET leaves data in a buffer Allows roaming off the network, across
town, local pub, etc Upon reconnecting with friendly access
point will push data to server
Displaying Mapped Data
Going to homepage, index.php, triggers creation of KML file, kml.kml through use of testdisp.php, with all collected data from MySQL database
Automatically loads map using this freshly created KML file
Mapped data shows signal strength of SSID tagged to a GPS point, marker colors reflect signal strength
Can also load KML into Google Earth for a much more interactive view
Problems
Laptop Died Created new database Recovery of project files Rebuilt for new target machines Recollection of data
Lack of data (due to stated death)
Improvements
Can easily add additional data in minutes Security algorithm (if used), for example
Better data transfer method Direct connection to SQL server for
instance DATA DATA DATA DATA DATA