An end-to-end Internet of Things (IoT) software package for Micro-Location, Proximity Aware services and Geofencing using Apple's iBeacons, mobile app (Android and iOS) and a set of Cloud services. The project is a collaboration effort across multiple institutions advised by Dr. Ioannis Papapanagiotou - firstname.lastname@example.org.
- Purdue University, West Lafayette IN, USA
- NC State University, Raleigh NC, USA
- University of New Mexico, Albuquerque NM, USA
The Microlocation system utilizes Bluetooth Low Energy (BLE) technology of iBeacons to locate a user. Multiple beacons are placed in a room and based on trilateration algorithms the user's mobile device can be located. The iBeacon packets broadcasted have the essential data of each beacon such as UUID, Proximity, RSSI, Major and Minor numbers embedded into the payload of each packet. The iPhone receives this data and through HTTP POSTs the mobile device puts this data into a JSON object and sends it to a server whether it be local (Apache Tomcat) or in the cloud (Bluemix). The server is where the power house is where it processes the data coming through and based on RSSI values from multiple beacons coming in it will trilaterate the user's position and then run a particle filtering algorithm to make it more accurate. Once the user is located the server will reply back in the form of a JSON Response Object and the iPhone will do a iBeacon packet inspection to find the x and y coordinates that the server has calculated for the user's location. The iPhone plots this onto the map of the room and the user therefore will know where they are located. Now knowing the location of the user, the server simultaneously sends a signal to a MySQL database indicating that the user is nearby a device. The Raspberry Pi polls the MySQL Database for the things that it knows about constantly until something changes in the database. Once a change has been made (i.e. a user is near or far from a device) the device state changes and turns on or off.
The Wiki contains further information about additional components that can be added to the project.
Examples and Demos
A couple of research papers of how iBeacons can be used for MicroLocation or proximity utilizing the software of this repository:
F. Zafari, I. Papapanagiotou, M. Devetsikiotis, T.J. Hacker, "An iBeacon based Proximity and Indoor Localization System", arXiv:1703.07876 [cs.NI], Mar. 2017.
F. Zafari, I. Papapanagiotou, M. Devetsikiotis, T.J. Hacker, "Enhancing the Accuracy of iBeacons for Indoor Proximity-based Services", IEEE ICC 2017, Paris, France
F. Zafari, I. Papapanagiotou, "Enhancing iBeacon based Micro-Location with Particle Filtering", IEEE GLOBECOM 2015, San Diego CA.
A detailed survey about this area:
- F. Zafari, I. Papapanagiotou, K. Christidis, "Micro-location for Internet of Things equipped Smart Buildings", IEEE Internet of Things Journal, pp. 96-112, Feb. 2016 (publisher link)
A few other related papers by the team:
D. Sikeridis, M. Devetsikiotis, I. Papapanagiotou, "Occupant Tracking in Smart Facilities: An Experimental Study", IEEE GlobalSIP Symposium on Signal Processing for Smart Cities & Internet of Things, Nov. 2017, Montreal, Canada
D. Sikeridis, M. Devetsikiotis, I. Papapanagiotou, "A Cloud-Assisted Infrastructure for Occupancy Tracking in Smart Facilities", IBM Cloud Academy Conference (ICA CON) 2017, Wroclaw, Poland