Trace Me Now is an open-source framework which helps developers in building their own IoT-based indoor localization and tracking systems. Its aim is to let developers easily develop systems that need to localise, trace, and keep track of people in an indoor environment.
Unlike outdoor localization, where GLONASS but mostly GPS play a big role, indoor localization nowadays is still under study, and lately it acquired a lot of interest, particurarly in the IoT sector. The most recent literature proposes a large variety of techniques and technologies to achieve indoor localization, but a technology that stands out the most is BLE (Bluetooth Low Energy), alongside RSSI (Received Signal Strength Indicator) measurements technique.
Since the purpose was to let people build cheap systems — as much as possible —, and let end users use it with basically no costs, BLE has been the main choice as it is not a power- and cpu-intensive technology. Furthermore RSSI allows to easily localise a target — with more or less error, related to the environment —.
So, the idea is having users' smartphones as target devices, continuously sending BLE packets in broadcast, and place a certain number of Raspberry Pi boards within the indoor environment. In this way users do not need to be carrying some other device besides their own smartphones. Each Raspberry Pi will be listening for BLE packets, and based on the information in them, will be able to localise and keep track of devices, i.e. users.
Raspberry Pis, as well as smartphones, are able to communicate with a back-end. This framework gives the possibility to the developers to choose between building a serverless or an on-premise back-end.
- Raspberry Pis will have an internal status about all the devices seen so far. This status is local for each Raspberry Pi, that's why they periodically synchronise with a back-end, which keeps a global status of the whole system.
- Smartphones, besides being the target device for localising users, can be the end client themselves, so they are able to communicate with the back-end as well.
This process is handled through an events system, made up using the MQTT protocol. Events are generated by the Raspberry Pi boards, and the back-end is provided with a series of triggers so that it can react to events and provide a response (or notification) for each specific event. Plus, the back-end provides you with a series of APIs, which can be used by your smartphone client, a possible web client, or even by the Raspberry Pis themselves.
All of these events and APIs are provided by default and you will not have to manage anything, but the framework will manage everything for you.
If you want to know more about defaults events and APIs, smartphone and Raspberry Pi processes, take a look to each framework component's README file, everything is detailed in there.
You can take advantage of all this self-handled process and define your own custom events or APIs. For instance, you can make your Raspberry Pi generate a new event, when something happens, to be triggered by your back-end, and generate a custom notification based on it. This notification can be then consumed by your smartphone or your custom end client.
More information can be found in https://isislab-unisa.github.io/trace-me-now/#/README
More informations about TraceMeNow are avaible in the following article: M. Borrazzo, G. D'Ambrosio, V. Scarano, C. Spagnuolo, TraceMeNow: an open-source software frameworkfor indoor localization applications, 2021, CEUR Workshop Proceedings, http://ceur-ws.org/Vol-3097/paper25.pdf