(HW and SW architecture)
System architecture
System architecture
Hardware architecture
Computational nodes
- Web Server: hosted on the cloud, its main purpose is to:
- receive information from the hot-spot detectors about the antennas (presence and signal strength)
- store them in a database
- provide an API for the app running on the user’s wireless devices.
- Smartphone: TrackDown app continuously checks if antennas are in its range.
Devices
- Antennas: based on Bluetooth technology, each antenna transmits its UID in order to be recognized by Hot-Spots and user’ Smartphone. They’re put together with user items.
- Hot-Spot detectors: based on Bluetooth technology to recognize associated antennas, and TCP/IP connection to send data to the Web Server. They’re located in strategic points in the campus, known by the server.
- Smartphone: acts as a portable sensor to implement the “get away” function, and as actuator to alert the user.
User interface devices
- Mobile app: user can create his account and associate his antennas with it. Through a dedicated app-section the user can manage his antennas accessing to their last position. Another section let the user customize his profile, associated antennas and preferences.
Software architecture
Hot-spot
- BlueZ module: through this module, cross-platform supported, Bluetooth connection is possible.
- Python script: periodically execute a scanning collecting information about iBeacons currently connected (MAC and RSSI).
- TCP/IP: the aim is to send the data previously collected to the interface server calling the API provided.
- Provided API: None.
- Called API: BlueZ, interface server API and Requests.
- Deployment : rasperry pi or compatible platform.
Database and server
The core of TrackDown is the database, which contains information about the users, the antennas, the hot-spots and the recorded locations. The database can be accessed through the RESTful API that is being developed. No direct interaction should ever happen between the database and the apps/hot-spots.
Through the API, users are allowed to register on the platform and pair new antennas to their account, as well as editing and deleting any of the aforementioned information. The hot-spots can use the API to submit the information gathered on the nearby antennas. The administrators are granted the privileges to perform any kind of operation, including adding, editing and deleting hot-spots.
In order to successfully use the API, users need to log in, which is also performed by the API: upon success, the session returned can be used to call any of the allowed API. As far as hot-spots are concerned, no session system is available: hot-spots can send their data upon providing a secret key, only known to the database and the hot-spot itself.
The apps will provide the user with most of the functionalities described for TrackDown, including the features that require the user to directly interact with the antennas.
Mobile apps
- Welcome page: allows the user to log in (if already signed up) or create a new account If a valid user session starts, after log in, a main view appears on smartphone screen.
- Main view: offers the list of all the antennas associated to the logged user, signaling the status (in/out of range of the smartphone) and opens, if desired, the procedure to manage antennas.
- Antenna status: for each antenna shows a map containing a marker with the last position available on the database (calculated and updated by the server) and some other information about that specific antenna.
- Setup and Preferences: control panel to set up account preferences, function customization (range, update time, alert delay, enable/disable notifications, etc) as stated in functional requirements.
- Background functionalities: the app continuously checks whether the antennas go out of range (eventually notificating the user). A particular attention will be reserved to a smart use of the smartphone Bluetooth.
- Provided API: None.
- Called API: Estimote SDK, ones from TrackDown API server, iOS 7.0 SDK , Android SDK 4.0 .
- Deployment: users’ smartphones.
Selected components
Hardware components
Off-the-shelf
- iBeacon at least 2 (LADISPE)
- Raspberry Pi at least 2. (LADIPSE)
- Smartphones (could use our own).
- Modules for Raspberry connectivity: (LADIPSE or to buy?)
- Bluetooth 4.0 USB adapter.
- Wifi USB adapter (if Ethernet is not suitable for Hot Spot location)
Ad-hoc
None.
Software components
- Hot-Spot: BlueZ + TCP/IP module + Python script.
- API server: python + Flask + MySQLdb
- Database: MySQL
- Mobile app: estimote, api level 14 for Android 4.0 dev, Cocoa framework and others for iOS 7.0 dev .
Open issues
- How to connect Raspberries with iBeacon using Bluetooh 4.0 USB adapters - fixed with Python script (bluez).