Friday 11 September 2015

iBeacon Overviews ( iBeacons:Let us track you for your benefit )

 1.What is  iBeacon:
"iBeacon is a protocol standardized by Apple and introduced at the Apple Worldwide Developers Conference in 2013.Various vendors have since made iBeacon-compatible hardware transmitters - typically called beacons- a class of Bluetooth low energy (LE) devices that broadcast their identifier to nearby portable electronic devices. The technology enables smartphones, tablets and other devices to perform actions when in close proximity to an iBeacon."--- Source Wikipedia
iBeacons are actually broadcaster,which broadcast few information(Programmable),packets of data stored inside them and mobile apps receiving those data take action accordingly.  They are generally small computers with 32-bit ARM® Cortex M0 CPU.Every iBeacon ID is 20 bytes long and is divided into three sections.Three main information they broadcast are UUID (universally unique identifier) ,major value,minor value.We will discuss about these later. 
 2.Where can we use iBeacon
 There are vast area where we can use iBeacon.For example we can use it as Automated museum Guide.If a user with a app capable of detecting iBecaon residing inside the museum and Receiving data from it then it can show information about the artifacts nearby the user on user app  .Similarly we can use it for Hospital or zoo or shopping Mall.It can be used for Indoor positioning system too as GPS does not perform well in short distance positioning.

3.UUID,Major value,Minor value
UUID:- A UUID is simply a 128-bit value,It may be in canonical format like :
de305d54-75b4-431b-adb2-eb6b9e546014
For Estimote iBeacon(Estiome is an iBeacon Production Company and as I am going to use Estimote beacons for my app,I mentioned its name)it is like:
B9407F30-F5F8-466E-AFF9-25556B57FE6D
For shopping mall Example we can use UUID to distinguish between stores.
Major:- Major value is a 2 byte  or 16 bit value.
For shopping mall example we can use it to identify section in a store with specific UUID and major value.
Minor:- Minor is also 2 byte value.
For shopping mall it can be used to identify subsection of a store with specific UUID,Major and Minor value.
These examples are just to explain how those values(UUID,Major,Minor) can be used.There are lots of other ways to combine those values to make the app to produce desired output.
4.What is Region  Ranging And monitoring
Mobile apps need to interact and receive values from iBeacons.And it can be done in two ways.One is Region Monitoring and another is Ranging.But before we start this topic,we need to know what is Region.Region is individual or group of beacons identified by UUID,or UUID with Major value or UUID with Major,Minor value.
      Monitoring:-It is the process where app keep Monitoring a specific region identified by UUID or UUID and other values.Actually it set a listener or Observer so that it can detect that user has entered into the region or user has left the region and notify the app to take decision accordingly .Region monitoring can be done when app is in background or in foreground and most surprisingly it can be monitored even if the app is not running or get killed by system. It will wake up the app if  any region change detected .But it can not get proximity of individual iBeacons and app can only monitor 20 region at once.
     Ranging :-In ranging we can get list of  ibeacons in range.We can get Individual beacons proximity and calculate distance from them and other parameters like UUID,major,minor values for individual nearby beacon .Ranging generally works if the app is in foreground.Though It is Possible to Range iBeacons  in Background by using some simple tricks But it is not recommended as it will consume more battery power.In iOS the proximity distance can have various range Far,immediate,Near or Unknown.
Immediate:- strong signal; usually up to a few centimeters.
Near :-medium signal; usually up to a few meters
Far:- weak signal; more than a few meters
Unknown:-usually when the signal is very, very weak
 
So far these are the Basic characteristic of iBeacon.We will Dive into detail and we will see how to work with iBeacon and iOS and Objective c in the Next Post.We will be Working with Estiomte ibeacon and their sdk.
5.why Estimote Beacons
Because It is the Only beacon I was provided with.There are lots of other company who also manufacture beacons like kontakt,cubeacon etc.



In next post we will be discussing about implementation of Estimote sdk. Also we will detect beacons without using that sdk.We will make iOS device to work as virtual iBeacon.
sources used :-Wikipedia,Estimote