Estimote beacons and simple Android application

16
Davide Piccardi Linkedin: https://it.linkedin.com/in/davide-piccardi-8b3950105 Github: https://github.com/davidepic91 Sapienza University of Rome – DIAG – Pervasive Systems Estimote beacons and simple Android application

Transcript of Estimote beacons and simple Android application

Page 1: Estimote beacons and simple Android application

Davide PiccardiLinkedin: https://it.linkedin.com/in/davide-piccardi-8b3950105

Github: https://github.com/davidepic91

Sapienza University of Rome – DIAG – Pervasive Systems

Estimote beacons and simple Android application

Page 2: Estimote beacons and simple Android application

What are Estimote beacons ?

• Small wireless sensors • Any location or object• Processor, memory, Bluetooth

smart module, coin battery, temperature and motion sensors

• New type of applications• Proximity to nearby objects• Temperature and motion

Page 3: Estimote beacons and simple Android application

How do they work ?

• Broadcast radio signals

• Smart devices in range

• Apps can respond

• Different types of response

• Data from cloud

Page 4: Estimote beacons and simple Android application

How many types of devices exist ?

Location• Built-in sensors • 7 years battery life• iBeacon™,Eddystone™ and Indoor Location

Proximity• 3 years battery life

Sticker• Smaller, thinner• 1 years battery life

Page 5: Estimote beacons and simple Android application

FAQ: beacons and stickers

What is the difference between Beacons and Stickers?• Beacons public places• Sticker nearables

What is a Beacon's range?• 70 m, depends on location

Can Estimotes be placed outdoors?• Yes, waterproof

Page 6: Estimote beacons and simple Android application

What are the practical application of beacons ?

Restaurant Clothing store

Page 7: Estimote beacons and simple Android application

What are the practical application of stickers ?

BicyclePlants

Page 8: Estimote beacons and simple Android application

Development technologies

Estimote SDKs• Two different versions for iOS and Android

Estimote Indoor SDK• Precise location services indoors

iBeacon ™• Bluetooth 4.0 communication protocol by Apple

Eddystone ™• By Google

Page 9: Estimote beacons and simple Android application

Development technologies (cond’t)

Estimote Cloud• web-based platform • settings and locations • public RESTful API

• fetch data • Estimote Analytics• Estimote Cloud with backend

Page 10: Estimote beacons and simple Android application

Important concepts for developers

Beacon region• filter or a regular expression

• Three values:• UUID (String) • major number (unsigned short integer)• minor number

• combinations of parameters

Page 11: Estimote beacons and simple Android application

Important concepts for developers (cond’t)

Beacon monitoring• “geofence”, virtual barrier • “enter” and “exit” events

Beacons ranging• scans nearby beacons• results every second• list of matching beacons• Proximity estimation

• Immediate,near,far, unknown

Page 12: Estimote beacons and simple Android application

Demonstration: simple restaurant Android app

• Name: Notification Restaurant Beacon• Purpose: notify the daily menu of a

restaurant• Topic: beacon monitoring• Cloud: None (for simplicity)• Used technologies: Estimote SDK for Android• Tested on: Nexus 5 with Android 6.0.1• GitHub repository:

https://github.com/davidepic91/NotificationRestaurantBeacon.git

Page 13: Estimote beacons and simple Android application

Simple restaurant Android app (cond’t)

@Override public void onCreate() { super.onCreate();

//ADD A BEACON MANAGER beaconManager = new BeaconManager(getApplicationContext());

//START MONITORING beaconManager.setMonitoringListener(new BeaconManager.MonitoringListener() { @Override public void onEnteredRegion(Region region, List<Beacon> list) { showNotification("Restaurant AL VIALETTO", "Click for the dishes of the day"); } @Override public void onExitedRegion(Region region) { } }); beaconManager.connect(new BeaconManager.ServiceReadyCallback() { @Override public void onServiceReady() { beaconManager.startMonitoring(new Region("monitored region", UUID.fromString("B9407F30-F5F8-466E-AFF9-25556B57FE6D"), 17957, 56571)); } }); }

Code from MyApplication.java

Page 14: Estimote beacons and simple Android application

Simple restaurant Android app (cond’t)

Page 15: Estimote beacons and simple Android application

Simple restaurant Android app (cond’t)

Page 16: Estimote beacons and simple Android application

That’s all !