How to create a indoor tracking application using Beacons

How to create a indoor tracking application using Beacons

This tutorial is deprecated. There is a much simpler way to install a plug-and-play application that can be imported into your account and used as a template for full customization. You can find it here: Kickstarter.

In this article, we will learn how to set up a dashboard to track indoor sensors. In the example, we have BLE beacons that can be added in a floor plan image by the end-user. Then, a tracker (for example, based on LoRaWAN) will scan the beacons and send their IDs to TagoIO.


By following all the steps in this article you will end up with:

  • An automatic trigger to run an analysis that emulates data for your sensors
  • An analysis to emulate data for your devices
  • An analysis to handle the data coming from your emulated devices
  • A dashboard to visualize the sensors, set up beacons, and sensor.

Setting up the device

For this article, we will need one device to store our data.
To create a device you need to go to https://admin.tago.io/devices

  1. Click on the “Add device” button located at the right top corner.
  2. Then look for the “Custom HTTP” connector and click on it
  3. Give the device a name and create it.
  4. You will be redirected to the device page.

Setting up the dashboard

You can get the dashboard that we will use clicking here.

You will select the device that we created when it asks it.
After selecting the device you will be redirected to the dashboard.

Setting up the analysis

Data emulation analysis

To get this analysis you should go to: http://admin.tago.io/template/5f68f1e2dacc24001db6c3ce

The only thing we need to do here is to set up the Environment variable.

  1. Enter the following link: https://admin.tago.io/account/
  2. Select your Profile.
  3. Enter the Tokens tab.
  4. Generate a new Token setting Expires to Never.
  5. Press the Copy Button and place it at the Environment Variables tab of the analysis.

Data handler analysis

To get this analysis you should go to: http://admin.tago.io/template/5f68f25bdacc24001db6cf41

Here we will need three things:

  • The account (that we already have)
  • The config token
  • The dashboard id

Config token

The config token is a device token. This device is the one that we created at the beginning of this article.

To get it you just need to go to the device page and copy the token.

Dashboard id

The dashboard id is a unique identifier that each dashboard has.
To get this id:

  1. Go to the dashboard.
  2. Click on the pencil icon on the top right corner.
  3. Click on the gear icon.
  4. Click on the “More” tab.
  5. Copy the dashboard id.

Now we just need to go to the last analysis that we added to our account and add the needed info.

On the “Environment variables” tab, change the data according to the tokens and the id that you have, then click on the save button.

After this, our set up process is done.

How to use the dashboard

Basically there are three tabs on our dashboard.

Layers tab

This tab simply shows the trackers that you have and where they are on the map.

Beacons setup tab

In this tab, you have a form to create new beacons.
A table to remove a beacon.
And you have an “Image Marker” widget.

After you created a beacon, you can click on the pencil icon on the “Image Marker” widget to enable the editing mode.
To add a beacon to the image:

  1. Click where you want it to be
  2. Select the beacon on the dropdown
  3. Type a label
  4. Click on save

Trackers setup tab

In this tab, you can create, edit, and remove the trackers.

The data for each tracker is stored in a different device, so remember to create a device for each tracker.


To complete the configuration of this tab your need to click on the button with the pencial icon located at te top right corner to enable the edit mode.
After it, you need to click on the three dots icon button on the “Register/edit tracker”.
On this screen go to the user control section, and select the “Beacon Finder Handler” analysis on the “Run analysis when submitting the form” field.