Getting started with Estimote, beacons, and microlocation

So, you’ve just heard about beacons and contextual computing and want to jump in? Welcome! Below you’ll find advice to get you on the right track and resources to further help you with developing your beacon-based projects.

You’ll learn:
  • which product is right for you
  • what you need to get started
  • what are beacon protocols and why it matters
  • how to get started with your first project
  • what to do next
  • Beacons, stickers, video: what’s the difference?

    We offer four types of hardware products:
  • Estimote Location Beacons; devkit with three units is priced at $99
  • Estimote Proximity Beacons; devkit with three units is priced at $59
  • Estimote Stickers; devkit with 10 units is priced at $99
  • Estimote Mirror; devkit with three units is $99 (pre-order)
  • Beacons support iBeacon and Eddystone protocols (more on that below), offer up to seven years of battery life and have a range of up to 200 meters. They were designed to attach them to fixed points in venues to provide apps with location context. Beacons can also be used to map locations in Estimote Indoor Location SDK.

    Compared to Proximity Beacons, Location Beacons offer longer battery life and range, more data packets, and GPIO support. Learn which beacon will suit your use case better with our intro to Proximity versus Location. You can see a detailed breakdown of differences on our product comparison page.

    Stickers are much smaller, but that also comes with shorter battery life (up to a year) and range. The idea behind stickers is to create nearables: smart objects broadcasting data about their location, motion, and environment. Just attach a sticker to an item (or a pet... or even a person) to turn it into a nearable. You can also search for nearables using Estimote Indoor Location. It’s like Google for the physical world!

    Mirror, our video beacon, allows users to interact with any video screen. Content can be based on multiple sources including mobile phones, beacons, and Web APIs. Mirror doesn’t need the user to have an app on their phone --by using Estimote’s other beacon products attached to any object you can transform it to a “smart object” that triggers the nearby screens.

    What do I choose?

    That’s a tricky one. Think about your use case:

  • If you want an app aware of where the user is (e.g. store, museum, restaurant), go with beacons;
  • if you want an app aware of what the user interacts with (e.g. a dog, an item on display, a fridge in the kitchen), go with stickers;
  • If you want your users to interact with TV screens and displays, go with Mirror;
  • If you don’t know yet what you’re going to build and just want to test the technology, go with beacons: they’re easier to pick up.
  • Estimote products usually ship within one week. Note that Mirror is currently in preorder status, and will ship in Q3/Q4 2017. Everything is also available in bulk quantities (contact our Business team directly if this is your goal!)

    To order our products, just visit our website: estimote.com

    Do Estimote products require an app?

    Yes, an app is required to detect beacons and trigger interactions with them. Beacons only broadcast tiny data packets that can contain their IDs, sensor readings, or URL addresses. In any case, it’s the app that has to ‘interpret’ this data and launch specific actions. What these actions are is entirely up to you. If you’re looking for inspiration, you can find a list of almost 100 apps created with Estimote Beacons right here: Apps and projects with Estimote

    There are two basic ways for apps to interact with beacons: Monitoring and Ranging. Monitoring allows detecting if there are beacons in range, while Ranging is used to estimate proximity from beacons. To learn more, read: What are region Monitoring and Ranging?

    Additionally, you can use the Physical Web/Eddystone standard to broadcast URLs instead of beacon IDs. Android natively supports this as Nearby Notifications and on iOS it's integrated with Chrome. It's important because, on Android, Chrome is the default browser which makes it possible to reach millions of users without building a dedicated app.

    To learn more, read: How to enable Physical Web in Chrome?

    Do I need to be a developer?

    Estimote products—beacons, Mirror, Estimote Cloud, SDK, Indoor Location—are designed with developers in mind. However, there are third party tools that make it possible for non-technical people to create apps with beacons as well.

    There are several general purpose CMS platforms you can try, including:

  • Rover
  • Pushmote
  • Bleesk
  • PencilCase
  • There are also industry-specific ones. For example:

  • Cuseum (museums)
  • Wisely (restaurants)
  • GuestDriven (hotels)
  • CrowdCompass (events)
  • Robin (office)
  • Beecon (home automation)
  • If you need someone to build an app for you, you can find freelance developers, agencies, and software houses for hire on Estimote Forums. Make sure to take a look: Estimote Forums: looking for devs

    iBeacon, Eddystone, Nearable: what are these?

    Different standards and protocols are common in wireless communication. You’ve probably heard names like UMTS, HSPA, or LTE. They apply to cellular networks, but standard fragmentation exists in Bluetooth beacons, too.

    Estimote supports three beacon protocols:

  • iBeacon (supported by Estimote Beacons)
  • Eddystone (supported by Estimote Beacons)
  • Nearable (supported by Estimote Stickers)
  • iBeacon is a proprietary protocol from Apple, released in 2013. Support for iBeacon is baked into iOS, as part of the Core Location framework, but Estimote SDK for Android also detects iBeacon. Beacons broadcasting iBeacon protocol transmit their IDs, divided into three parts: UUID, Major, and Minor. Apps read the ID to identify the beacon and estimate proximity based on signal strength.

    Eddystone is an open BLE protocol developed by Google. Eddystone-compatible beacons can broadcast three different data packets, called ‘frames’. Eddystone-UID is a standard frame similar to iBeacon, Eddystone-URL allows beacons to transmit URL addresses, and Eddystone-TLM includes telemetry and sensor data.

    ![image](upload://Hq4XeYfxZDO5xej4nlOsYZUYfu.png)

    Nearable is our own protocol developed for Estimote Stickers. We’ve designed it to include sticker’s ID and readings from motion and temperature sensors in a single data packet, to provide apps with more physical world context.

    To learn more about protocols, read:

  • What is a beacon protocol?
  • What is iBeacon?
  • What is Eddystone?
  • What data do stickers broadcast?
  • Building my first app

    You already know a lot about how beacons work. It’s time to get your hands dirty and start with actual development. Your first step should be signing up for an Estimote Cloud Account that allows you to manage beacons and adjust their settings via Estimote Cloud, apps, and RESTful web API. Also, don’t forget to download the Estimote beacon management app. Now, for the building part. You’ll be doing that with Estimote SDK.

    Essential tools:

  • Estimote Cloud (sign up)
  • First steps with Estimote Cloud
  • Estimote management app for iOS
  • Estimote management app for Android
  • Estimote SDK
  • We’ve created resources and built tools to help you get started faster. Estimote Developer Portal is a comprehensive guide to beacon development, regularly updated with new content. Estimote Cloud’s app generator lets you download ready app templates with Estimote SDK and basic functionalities already implemented.

    Get started:

  • Developer Portal
  • First steps with Estimote Cloud
  • SDK documentation (iOS)
  • SDK documentation (Android)
  • App generator
  • Do I have to use Objective-C/Swift/Java?

    At this point, we only provide official support for iOS and Android. You can find Estimote SDK on GitHub. We've put together a list of third-party platforms you can use to integrate Estimote Beacons in your app. Learn how to use our products with Xamarin, PhoneGap, Raspberry Pi, etc.

  • 3rd parties SDKs &libraries
  • Going deeper: Indoor Location and Cloud API

    Estimote platform offers much more than beacon hardware and SDK for proximity-based interactions. Indoor Location SDK is a separate product for location mapping. Beyond that, it allows for tracking position of users and objects in real time. The Cloud API enables you to easily integrate beacon management into your own backend and apps.

    Estimote Indoor Location SDK

    With our Indoor Location SDK, you can use beacons to map locations, and stickers to track positions of objects within. You can also integrate it with your own app and see user's positions in Estimote Cloud in real time. Just imagine the possibilities this unlocks for mobile experiences.

    Learn about Estimote Indoor Location:

  • What is Estimote Indoor Location SDK?
  • Tutorial for building an app with Indoor SDK
  • Indoor Location SDK on GitHub
  • Indoor SDK reference documentation
  • Overview of Indoor Location with nearables support
  • Remember: to test Indoor Location, you need to place at least one UWB Location Beacon on each wall of the location. The minimum number we recommend is 4 (one devkit) to make sure we're getting enough data to accurately compute the position. Triangular rooms are not that common, so they’re not supported. You can also work with Estimote Location Beacons, but this would require 6 of them (two devkits). You can order an Indoor Location set of two devkits on our website.

    Right now, Indoor Location SDK is only available on iOS.

    Cloud API

    Estimote Cloud is a powerful tool allowing you to remotely manage your beacons. Normally, you do it through the web panel: cloud.estimote.com

    However, thanks to OAuth support and Cloud API, you can integrate it with your own backend, too. You can gather analytics and manage beacons from the comfort of your own platform. You can also queue changes to beacon’s settings, and thanks to the Cloud API, users of your app will relay the adjustments to beacons when they’re in range.

    If you want to start using Cloud API, read:

  • Is there a there a RESTful API for Estimote Cloud?
  • Authorizing via OAuth
  • Introduction to the Fleet Management API
  • Does Estimote offer analytics?
  • Cloud AP referenceI documentation
  • That’s it… or is it?

    We’ve covered the basics, but there’s still a lot to learn! We encourage you to join and become active in our developer community (any questions are usually answered within a day!), access the Knowledge Base, and check out the Developer Portal for more development resources.

    We’d also love to hear what you’re building with beacons, so don’t hesitate to reach out! Email us or find Estimote in social channels.

    I’m trying to run the example app on Android Studio 3.0.1, but facing a problem where it says

    Error:Could not find method compile() for arguments [com.estimote:indoorsdk:2.1.0] on object of type org.gradle.api.internal.artifacts.dsl.dependencies.DefaultDependencyHandler.
    
    Consult IDE log for more details (Help | Show Log)
    

    in the Gradle scripts and in indoorapp\build.gradle it says similar thing

    Error:(11, 1) A problem occurred evaluating project ':app'.
    > Could not find method compile() for arguments [com.estimote:indoorsdk:2.1.0] on object of type org.gradle.api.internal.artifacts.dsl.dependencies.DefaultDependencyHandler.
    

    Though I’m unable to open the log, at least I don’t know how to, when I right click on the error and click jump to source, it puts me on the line

    dependencies {
        compile 'com.estimote:indoorsdk:2.1.0'
    }