Alex Lee

PROJECT

Indoor Tracking

Designing, creating and deploying an indoor positioning system using off-the-shelf products.

RoleStudent Researcher
Date2016
ToolsPython, NodeJS
ClientArup, BVN
Tiara, Annisa and I doing last minute preparations before deployment

My Year of Honours

During my honours year at university, I designed, developed & implemented an indoor tracking system using off-the-shelf products.

The infrastructure was built with Raspberry Pi's and hosted on AWS using Python and Javascript (NodeJS).

The team consisted of 3 students, my responsibility was to create the indoor positioning system.

Photograph of SIERRA agent in location

Research

We first started researching all the existing technologies and products available on the market, primarily focusing on different frequencies and their results.

After analysing the research, we decided to experiment with Bluetooth Low Energy (BLE) and identified it as the most affordable and popular option among indoor tracking systems.

Please check the links below for the details of our research with my final thesis and the technology architecture diagram.

The indoor positioning system's architecture consisted of two pieces of hardware: the beacons and the agents. Each beacon (carried by a person) will emit a Universally Unique Identifier (UUID) that is recorded by the Raspberry Pi devices (agent) that are continuously scanning for BLE frequencies.

Before and after comparisons of the steps required to check progress of the project.

The RPI will send the scanned information (UUID, current date & time, agent's identifier, signal strength) to a database where we can then run queries to estimate the users' proximity.

The location of each beacon can be found by querying the latest recorded signal data and again by signal strength.

Timelapse of days checking the wifi uptime of each RPI device

A Tough Year

Looking back, I was underprepared; I had no idea how difficult designing and maintaining numerous devices was going to be.

I learned a lot about developing and managing an IT system including troubleshooting & debugging, software update rollouts, database management, and most importantly JavaScript!

This was one of the most stressful and difficult learning experiences but I don't have any regrets about the project because it was the first step in starting my passion for software development.