Device Finder

Finding HP Printers in a corporate environment 
== Background ==
Problem Statement
In September 2016, HP posed a problem for us to solve: that in a large corporate setting, IT was having a hard time keeping track of all the printers that they had to manage on large campuses.
In large companies, sometimes printers get moved to different buildings, different offices, or they just die; and IT isn't made aware of any changes. This can pose problems when IT is tasked with finding
these printers. Our goal is to create a method of finding these printers, to reduce these problems.
== Design ==
===Initial Design===
We determined that the best course of action, in order to find printers successfully, was to design and attach a device to the printers, which uses some method of location-determining and reporting back
to a central server their location, at intervals. Even if printers go offline, this will allow users to be able to see the last known location of the printer. 
===Metrics===
Location Services
 	Accuracy Inside Buildings	Overall Accuracy	Implementation Cost	Ease of Implementation*
GPS 	Low 	3.5m 	$30 	3
Cellular Triangulation	Med-Low 	50m 	$30 	2
Network Topography 	Very Low 	N/A 	$0 	4
Wifi Triangulation 	High 	0.4 - 6m 	$0 	3
*Since the most promising devices have wifi, we left this as a $0 additional cost
Device Features
 	Cost/Device	Architecture	Wifi	Ethernet	Community Support
Raspberry Pi 3	$35.00 	ARM 	Yes 	Yes 	Broad Range Application
Orange Pi 	$20.00 	ARM 	Yes 	Yes 	None
Intel Edison 	$46.23 	x86 	Yes 	No 	Professional Applications and Growing Community
===Wifi Triangulation===
We will be using various methods to derive the distance of our device from each access point in its vicinity, and from that, we can use triangulation to narrow its location down.
 	This illustrates how triangulation can't work using a single access point. Since we know how far away our device is from the access point, and where the access point is, this will give us a radius to look on, but that can be a lot of places to look.
 	Two access points gives us much better results - only have to look in 2 places; but still not good enough.
 	Three Access points shows us exactly where our device is, if there's only 1 floor in the building.
Four access points tells us exactly where our device is, including the altitude, from which we can derive the floor the device is on.	Four access points tells us exactly where our device is, including the altitude, from which we can derive the floor the device is on.
===Final Design===
For our final design we decided to use WiFi triangulation with Raspberry Pi 3. Our algorithms (designed by Grant Wade) utilize the Raspberry Pi's integrated wireless to gather the AP information needed to triangulate the location of the missing printer, in relation to the visible APs.
===Server/Client Relation===
The client Raspberry Pis are mounted on the printers. These Pis then gather AP metadata, such as MAC address, signal strength, and signal quality, from visible APs. This metadata is then reported to a central server.
The server host a predefined map of all know APs that are manually input. Using the know location of the APs, our algorithms are the able to determine the latitude, longitude, and altitude of the missing printer.
===Web Interface===
All of this information can be accessed via a web interface. The web interface displays locations using the Google Earth API.
thumb|center|Device details can be input through this page.	thumb|center|Map (Using Google Earth API) showing the location of the missing devices.
thumb|center|Pre-mapped AP details. 	thumb|center|Map (Using Google Earth API) showing the location of the mapped APs.
thumb|center|Display of server statistics. 	thumb|center|Display of server statistics.
==Team Members==
Team "Ink Hunters"
400x300px|center	Team "Ink Hunters"
400x300px|center 	Team "Ink Hunters"
400x300px|center	Team "Ink Hunters"
400x300px|center	Team "Ink Hunters"
400x300px|center	Team "Ink Hunters"
400x300px|center
Member 	Biography 	Discipline 			
Grant Wade 	Senior in Computer Science. I like to do projects that involve cheap technologies, because they can be deployed to a lot more situations than the more costly ones. I've done several projects with Raspberry Pi devices as the centerpiece.	Computer Science 			
Jesse Frantzich	Senior in Computer Science with a minor in Military Science. I am always looking forward to my next challenge. I enjoy learning new things that I have never heard about, and Computer Science has been great in this regard. 	Computer Science 			
Michael Braun 	Senior in Computer Engineering with a minor in Mathematics. I have an interest in Philosophy and hope to integrate that interest with Computer Engineering. I specialize in the adaptation and reapplication of pre-existing works. 	Computer Engineering			
==Document Archive==
GitHub Repository