Our beacons are equipped with some really nifty sensors, particularly motion, temperature, ambient light, and a real-time clock. The following is a breakdown of these functions.
Motion Sensor
Each beacon has an accelerometer installed. This means that the beacon detects when it’s put in motion, giving you the ability to enrich your app with additional context. Also, conditional broadcasting allows to ‘mute’ a beacon based on accelerometer readings, which makes testing easier and helps preserve battery life.
Conditional broadcasting modes:
- Motion UUID
- Flip to Sleep
- Motion only
To use conditional broadcasting, you need to enable the accelerometer first. You can do that with Estimote iOS app:
- open the app
- go to the Devices screen
- log into your Estimote Account
- connect to a beacon
- scroll down to the Built-in Sensors section and go into the Beacon in Motion tab
- enable accelerometer
Estimote Stickers also come with a built-in accelerometer. They use our own Nearable communication protocol to advertise motion status. This means that stickers broadcast full accelerometer data over the air at all times.
Visit Estimote Developer Portal to learn how to utilize stickers’ motion data.
Motion UUID
Motion UUID is an alternative UUID value, broadcast when the beacon is moving and when iBeacon packet is enabled. It’s automatically derived from the regular UUID of iBeacon by the beacon firmware and the Estimote SDK.
Only one UUID is broadcast at a time (the ‘static’ one or the ‘motion’ one). We can figure out whether the beacons in motion or not by ranging/monitoring for both UUIDs.
Note about monitoring:
Beacon region monitoring has a built-in delay of around 30 seconds from the point when the beacon goes out of range till the exit event is triggered by iOS. The implication is that when the beacon starts moving, the exit event for the ‘static’ region won’t be triggered until 30 seconds pass with the beacon constantly in motion. Same goes for the beacon stopping moving and the ‘exit’ event for the “motion” region.
How do you use it?
Define the “static” and “motion” regions:
NSUUID *stillUUID = ESTIMOTE_PROXIMITY_UUID;
CLBeaconRegion *staticRegion =
[[CLBeaconRegion alloc]
initWithProximityUUID:stillUUID
major:123 minor:456 identifier:@"still"];
NSUUID *motionUUID = [ESTBeaconManager
motionProximityUUIDForProximityUUID:stillUUID];
CLBeaconRegion *motionRegion =
[[CLBeaconRegion alloc]
initWithProximityUUID:motionUUID
major:123 minor:456 identifier:@"moving"];
Note that we use the “regular” UUID in the motionRegion
. The SDK will automatically compute the actual motion UUID when the inMotion
flag is set to YES
.
[self.beaconManager startRangingBeaconsInRegion:staticRegion];
[self.beaconManager startRangingBeaconsInRegion:motionRegion];
...
- (void)beaconManager:(id)manager
didRangeBeacons:(NSArray *)beacons
inRegion:(CLBeaconRegion *)region {
if ([region.identifier isEqualToString:@"still"]
&& beacons.count > 0) {
NSLog(@"the beacon is still");
} else if ([region.identifier isEqualToString:@"moving"]
&& beacons.count > 0) {
NSLog(@"the beacon is moving");
}
}
Flip to Sleep and Motion only
When Flip to Sleep is enabled, beacon goes ‘mute’ if it’s put on its back.
When Motion UUID is enabled, beacon goes ‘mute’ if it’s not moving.
Read the article on conditional broadcasting to learn about benefits of Flip to Sleep and Motion only modes.
Temperature Sensor
All Estimote Beacons come with a temperature sensor on board. In the previous iterations, the sensor had to be calibrated first to get the most accurate readings. Currently, Estimote Beacons and Stickers have a built-in, already calibrated temperature sensor. The measurement error is up to ±2°C.
Ambient Light Sensor
Our Estimote Location Beacons utilize the latest and greatest technology, the ambient light sensor. Ambient light sensors are used to detect light or brightness in a similar way as the human eye. The cool news for us? This sensor means you can now enable “dark to sleep”, thereby saving you precious battery life and resources.
Please note, this feature is only implemented with our Estimote Location Beacons, and not available on Estimote Proximity Beacons or our stickers.
Real Time Clock
Our Estimote Location Beacons are all equipped with a Real Time Clock. A real-time clock (RTC) is a computer clock (in the form of an integrated circuit) that keeps track of the current time. Now, you can schedule advertising for conditional broadcasting within a specified window of time each day.
Again, please note, this feature is only implemented with our Estimote Location Beacons, and not available on Estimote Proximity Beacons or our stickers.