This zone provides information regarding how you go about using Beacons

Beacon Technology Logos

Beacon Technologies

Beacons work by periodically broadcasting a small piece of data over Bluetooth Low Energy, usually a unique identifier or web address. This broadcast can be picked up by smartphones and tablets within range and used by apps to perform actions, such as displaying resources, identifying current location on a floor plan or suggesting a webpage to view.

There are two competing beacon technologies, iBeacon and Eddystone. They both work using the method above, but differ in how the data is constructed. Apple’s iBeacon was introduced in 2014 and this type of beacon send out a very long ID code to uniquely identify the beacons, while Google’s Open Source Eddystone was released in 2015 and, in addition to unique ID codes, allows short web addresses to be sent to devices. Google call this ability to connect online resources with physical places and objects ‘The Physical Web‘. Much like lighthouses, the beacons transmit their signal to anything in the area, and do not receive any signal back, meaning that they themselves can’t be used for tracking people (though the apps that use the signal could do this).

By adjusting the broadcast power of the beacon, the distance at which the signals can be received can be altered, with typical ranges being anywhere between 1m and 70-100m. This, combined with the ability to work out roughly how far away the beacon is, allows for fairly fine grained control over interactions. For example, a small signal zone could be set up in a gallery that makes it less likely that the app user will be given information about the wrong artwork, while the range feature could be used to provide different information depending on how far away from the beacon the person is helping to guide them to a particular room or object within a space.

As the two different beacon technologies transmit ID codes in an easily accessible format it means that apps can be developed that make use of a mixture of both. It also means that once a beacon infrastructure is installed, third-parties can start building their own apps that make use of the infrastructure for alternative purposes without causing any interference with the original purpose. So, beacons installed around a university building to help people navigate between rooms could also be used by students to create a virtual art gallery with different works being displayed automatically as an app user moves around the building.

A recent trend for beacon devices has been the ability to transmit both a web address and an ID code at the same time. This could be used for sending unrelated information, but could also be used to send a URL that points people to a dedicated app that then makes use of the ID codes to offer a richer, personalised experience.

Configuring Beacons

estimote-2-beaconsAs the beacons work by transmitting Bluetooth signals, the most common method of configuring them is by using an app that connects to and updates them over Bluetooth as well. Different beacon manufacturers have different apps for doing this, from connecting directly to a beacon and updating it through to making the changes online and storing them in an app which will update the beacons automatically as the user moves into range.

Creating the #SHULT16 Demo Beacon-enabled App

The demo app was created using standard HTML and Javascript, just like a web page. To convert it into a mobile app, a Free, Open Source tool called Apache Cordova was used. Once set up, Cordova makes it quite easy to build mobile apps for Android, iOS and Windows phones and tablets for anyone comfortable with creating websites. The features to work with Eddystone signals are provided by a Cordova plugin from Evothings.

This simple app works by revealing or hiding sections of a page based on whether a known beacon is nearby. The plugin produces a list of the IDs of nearby beacons and the JavaScript code in the app checks the one that is nearest against a list of known beacons and displays the relevant section of the page if there is a match.

Creating Your Own Beacons

There are several ways to create your own beacons. You can use your smartphone or tablet as a beacon, or you can program other devices to act as beacons.

Turning your phone into a beacon

If you have an iPhone or iPad you can use the Estimote app to turn it into an iBeacon (this isn’t possible on Android devices because of licencing restrictions from Apple).

Android devices can use the Beacon Toy app to transmit both Eddystone ID codes and web addresses.

Creating the Arduino-type Beacon

adafruit_bluefruitThe Arduino-compatible beacon (specifically, an Adafruit Feather 32u4 Bluefruit LE) can be used for lots of different Bluetooth-based projects, but also works very well as an Eddystone beacon. The advantage of this device is that it can be programmed to transmit multiple pieces of data at the same time, so could be used to broadcast several web pages (such as the same resource in different languages), multiple ID codes or a combination of the two. There is a code library to simplify the process of programming the device and the code from the demo at the conference is available for download and modification.

Creating the Raspberry Pi Beacon

Version 3 of the palm-sized Raspberry Pi computer, released in 2016, introduced Bluetooth as standard on the device (though the feature can be added to older versions with a USB dongle).

raspberryPiThe easiest way to set up the Pi as a beacon is by using the Node-RED development tool that is installed by default on the Raspberry Pi. This enables the creation of complex interactions simply by dragging boxes onto a workspace, connecting them together and doing a little configuration. A plugin to assist in creating Eddystone URL beacons is  freely available, and can also be used to detect Eddystone beacons. This would make it quite simple to create a system that waits for the person carrying a particular beacon and then automatically performs an action when they are within a certain range, such as opening a lock or starting the projector and adjusting lights.