Previously, we have written about using iBeacon technology in indoor location tracking. However, this technology can be used in other areas as well. For example: to mark public transport stops to get around new cities easier, to mark hospital rooms for faster navigation and as reminders about upcoming procedures, various quests, as well as information labels, you name it. Given the wide range of practical use cases, let’s take a closer look at the pros and cons of this technology as well as ways of implementation.
iBeacon: what it is and why it`s a breakthrough
The new Apple iBeacon technology may become one of the most interesting features and make a breakthrough in programs designed to determine the location and navigate within the buildings.
A ‘beacon’ is a tag that transmits three parameters via Bluetooth 4.0 LE: UUID, major and minor
- Proximity UUID is a unique 128 bit identificator.
- Major and minor values are 16 bit unsigned targets for beacons numbering within the same UUID.
iOS7 and higher allows to explore this new technology and use it.
The main features of the new API are:
- Tracking beacons
- Beacons region monitoring
Today there are a number of brands manufacturing beacons, like Kontakt, Estimote and others.
In this part of the post, we are going to configure iBeacon tags. First you need to connect the following frameworks:
You also need to add the following properties.
Initialize beaconRegion in the following way:
To turn on the transmitter , we need to :
Detection of iBeacon tags
To identify and track Beacons, we should create CLBeaconRegion and monitor it using CLLocationManager
To get information about entering or exiting the beacons, try implementing the CLLocationManagerDelegate protocol.
The first method is called when we enter a specific area of the beacon. Then we call the startRangingBeaconsInRegion method to track this beacon.
The second method is called when we leave the beacon zone. So, we call the stopRangingBeaconsInRegion method to stop tracking.
We can retrieve information about distance change in the beacon zone from this method:
What information can we get from object CLBeacon?
First of all, parameters like UUID, the major and minor values, which identify our beacon.
The proximity зarameter roughly describes the distance to the beacon:
- CLProximityImmediate. The beacon is in the user’s immediate vicinity.( 2 inches)
- CLProximityNear. The beacon is relatively close to the user.( 2-3 feet)
- CLProximityFar. The beacon is far away.( ~50 feet)
The accuracy parameter can be used for distinguishing beacons with the same proximity. Do not use it to identify a precise location for the beacon. Accuracy values may fluctuate due to RF interference.
Distance to a beacon can also be estimated using the rssi parameter:
rssi = - (10n log10d +A)
Where the n is signal propagation constant or exponent, d is the distance from the sender, and A is the received signal strength at 1 meter distance.
Be aware of these cons:
- Safety (once the User has approved the opening of a beacon group, they will open without restriction and filtering even if the program is closed)
- iBeacon can not be used to determine the exact location of the user (even if the tag is in the range of 3). This is due to the precision of measurement of distance, because distance measurement is associated with the transmission of signals, which may be affected by different factors. For power conservation, bluetooth doesn’t connect immediately and also the signal might be not accurate.
- iBeacon technology behavior can be unpredictable when the client is located on same distance between two marks. Then priority will be transmitted from one to the other tag by measuring distance error that will lead to sequential processing of these tags and thus to information blinking.
The Pros that make iBeacon look especially good:
- Availability notifications whenever the client leaves or enters the zone of specific tags
- Fairly easy to implement
- Possibility to purchase ready tags
- The ability to use a phone as a tag
- Low energy consumption
- Information on entering the label zone is transmitted even if the program was not running (which means that the program will automatically run and process information from the beacon when entering the beacon zone)
- Wide set of application options
We have drawn our own conclusions about iBeacon technology and have even experimented with indoor navigation using iBeacons for Google Glass already. Now it's your turn: what are your ideas on this technology and how it can be used? Please share in the comments section below.
Also, if you are interested in latest IoT gadgets, visit our experience section Apps for Connected Devices.