iBeacons use Bluetooth transmitters and receivers to determine how far your iOS device is from a beacon. One device transmits, one device receives, and all the communication is done using Bluetooth Low Energy.
iBeacon transmitters can either be a dedicated hardware device running Bluetooth 4.0 LE or you can configure a compatible iPhone or iPad to act as a transmitter.
A beacon transmitter must send out specific data through its Bluetooth radio periodically:
proximityUUID is a property which is unique to each company. You can generate a UUID by loading up the terminal on a Mac and entering uuidgen. A UUID is a 128 bit value such as “89542266-18D1-4DF4-B4A1-23F8195B1A00”.
major is the property that you use to specify a related set of beacons. This is a 2 byte value.
minor in this case would be used to further specify a particular set of beacons with the same major values. This is a 2 byte variable.
When an iPhone is running an app it can be programmed to look for a specific beacon UUID. When it detects this UUID, it looks at the major and minor values and can further determine information about your location.
Your local museum, for example, set up 20 beacons throughout its building. The beacons all use the UUID “95543100-10A1-4LK4-B4A1-34F8135B2011”. You download the Museum App and the App will now attempt to find any beacons with that specific Museum beacon UUID. When a beacon is found, the specific major and minor values of that beacon will identify which room you are currently standing in. The “dinosaur room” in this case, has a major of 7 and minor of 12. The museum app then provides extra information about the diet of the T-rex when you enter that room.
There are many use cases for iBeacons including indoor navigation and targeted advertising.
You can program the MetaWear board to become an iBeacon/Eddystone in just one simple step by pressing a button in the MetaWear App.
It takes just one simple call in the SDK to set the beacon mode on the MetaWear. Once you disconnect the board; it will immediately begin to behave as an beacon.
You can set your own UUID, major, and minor values using the iBeacon module of our iOS SDK for example.