IoT business opportunities using Eddystone™ – cost effective sensor technology and fast development of mobile applications with Evothings Studio

Mikael KindborgBlogs

Tweet about this on TwitterShare on FacebookShare on LinkedInShare on Google+

Visualizing sensor data is fun!
[Image credits]

If you are at a company that develops products taking advantage of IoT (Internet of Things) technologies, you should explore the possibilities of the Eddystone beacon protocol. Eddystone™ is a new beacon standard from Google that opens up for a wide range of engaging and groundbreaking use cases and business ideas. In this article, we will explore use cases for beacon-based sensors that people interact with using a mobile application.

Beacons broadcast data – apps listen, users act

Eddystone is an open-sourced beacon protocol developed by Google. A beacon in this context is a small hardware radio device that broadcasts data over Bluetooth Low Energy (BLE). Typical ranges of the radio signal is up to 20 or 100 meters (60-300 feet).

The size of a beacon is usually around 3-5 centimeters (1.2-2 inches), so it’s easy to fit it in many applications and contexts. Most industrial-grade beacons in production today are “stand-alone” devices powered by a battery, that typically lasts for at least a year. Stationary beacons can be powered by the electricity grid. Alternative power sources are certainly possible, like solar power or kinetic energy.

A common use case for beacons is users who have mobile phones with an app that detects beacon signals. The app can alert when the user is in close proximity to a beacon, display which beacons are within range at a given time, and show information related to a nearby beacon.

Beacons and sensor data

A basic Eddystone beacon can broadcasts an ID or a URL that a mobile app can use to display information related to the beacon. Standard Eddystone beacons also typically transmit temperature data. An app can detect the approximate distance to the beacon, and rudimentary triangulation using signals from multiple beacons is possible. In addition, a beacon can be equipped with various sensors and send out sensor data to nearby apps.

These floating sensors are as far as we know not beacon equipped, but they very well could be.
[Image credits]

The Eddystone protocol is extensible and can be made to support sensor data. Eddystone is an open standard, and it is possible to extend it with custom frame types. A frame is a packet of data broadcasted by the beacon. Each frame may contain only a limited amount of bytes, a restriction set by the underlying BLE standard. The solution is to broadcast different types of data in a sequence, using different packets or frames.

Sensor data for temperature, humidity and light could for example fit into a single frame. There could be another frame type for accelerometer data, for applications that need that. And so on for any type of sensor data.

Extensibility is a strength of the Eddystone standard. If you develop custom hardware, you can program the BLE module to send out the data your hardware supports.

In the coming 6-12 month, we’ll likely see standardisation starting to happen regarding new frame types for Eddystone. Meanwhile, you can use custom frames designed for your hardware.

Creating a mobile app that picks up sensor data

An IoT-based product has two parts, hardware sensors/beacons and a mobile application. The mobile app is like a remote viewer on the sensors. The app receives Eddystone frames and visualises sensor data.

In the code that handles Eddystone broadcasts, the app needs to decode the custom frames, getting data out of the beacon, to be useful in the app. In the case of apps developed with Evothings Studio, you just add snippets of code as you see fit to the Eddystone JavaScript library.

Using Evothings Studio and JavaScript means that you can directly modify the code and see the results instantly on a mobile phone. No need to compile native code for each update cycle. This is also true for low-level bit level code that decodes Eddystone frames. This means you can develop both the user interface for the app and the low-level BLE-related code in the same fast and efficient way, and see it it works on all your phones and tablets directly.

Broadcasting sensor data sidesteps the need to connect

Many of the existing BLE devices out there with built-in sensors require a mobile app to connect to it to access sensor data. Connecting to a generic BLE device has its drawbacks; only one mobile phone may connect at a time to a given BLE device. This limits usability in use cases where several users need to access sensor data simultaneously.

Broadcasting data, like beacons do, solves this problem. Listening to BLE broadcasts (announcements) is connectionless. It requires little coding in the app, and as many phones as are around can intercept broadcasted data packets.

It should be noted that in order to write data to a BLE device, you need to connect to it. In the case of monitoring sensor data, this is however rarely needed.

Innovating the use of broadcasted data has tremendous potential for a wide range of businesses. We have not yet even seen the start of this evolution. Prepare for exciting times in the development of mobile apps for IoT.

Detecting things that move

A beacon can either have a fixed location or get around when attached to a moving object, person or animal. The traditional beacon use case is that a beacon has a fixed location, and users move and get notified when nearby a beacon. For sensors that are stationary in nature, this is a likely scenario.

They may also be cases where beacons are attached to objects that move. It can be goods, vehicles, animals, or people. A user nearby a moving beacon can then be alerted when the object in question is within range.

One can also make applications where users mobile phones are used for locating people. With stationary beacons, the position is known. An app coming into range of a beacon can report this to a cloud service (over WiFi or 3G/4G). The cloud service can then notify other users and systems that this user is now present in the proximity of the beacon.

Example business cases

Here are some monetizable use cases based on beacons that broadcast sensor data:

Greenhouse farming. A mobile application is used to monitor data critical to plant growth, e.g. temperature, humidity, light. In this scenario, beacon-capable sensors are placed on-site next to plant cultures. Bluetooth Low Energy works where there is no network connectivity, this is useful for farming sites located off the grid or in third world countries with unreliable or absent infrastructure. Solar energy can be used to change both sensor equipment and mobile phones.

Tracking and monitoring cattle. Sensors can monitor things like the animal’s body temperature and heart beat rate. Farmers can also detect missing animals and be alerted when a beacon goes out of range. Mobile apps that scan for BLE devices work “in the wild”, where there is no 3G/4G or WiFi available. It is a cheap technology that works independently of the availability of network services.

Monitoring production lines. It is cheap to use BLE-equipped sensors and mobile apps to monitor production lines, for instance growth of bacteria in production of medical drugs. IoT companies can provide customizable solutions based on standard components. Apps developed in HTML/JavaScript can easily be adapted for customers and different market segments at low cost.

Below is a screenshot from an example app created with Evothings Studio that monitors cultivation sensor data:


Takeaways for Evothings Studio and Eddystone

Summary of takeaways:

  • Eddystone is an extensible standard – sensor data can be added to the protocol, allowing real-time monitoring of many sensor beacons without actually connecting to each one.
    BLE-equipped sensor devices can act as a beacons and transmit sensor data to mobile apps that are listening.
  • Broadcasted data is a cost-effective and efficient way to communicate with users within the range of the beacon. Data from different makes and models can be collected in a uniform way.
    Any number of users/mobile phones can listen to Eddystone broadcasts – no need to connect to a device to read its sensors.
  • Users do not have to connect or configure anything to start receiving sensor data – they just open the app and nearby sensors will be available right away.
  • Apps can also scan or sensor data when in the background – users can be alerted at critical events.
  • Bluetooth Low Energy and mobile apps work independently of electricity and networking infrastructure, for long periods of time without an electric grid.
  • It is easy and fast to implement a mobile app that listens to Eddystone broadcasts. You don’t need specific skills in Android java or iOS programming.
  • Evothings provides extensible libraries that allow developers to create apps using HTML and JavaScript.
    Custom Eddystone frame types can be added to the Evothings Eddystone library – no native coding required.

Learn more about Eddystone

Here is more to read about Eddystone:

For IoT hackers: Prototyping Eddystone devices and developing mobile apps

To develop a mobile app, use the example app “Eddystone Scan” that comes with Evothings Studio 2.0 as a starting point. The code of interest if you want to customise the Eddystone library is in file eddystone.js.

If you don’t have any beacons to experiment with, you can use an Eddystone emulator on your computer, for example: Since the code is open-source you can experiment with adding custom frame types to the code.

You can also use ARM mbed to develop Eddystone devices on for example the Nordic Semiconductor nRF51 BLE board.

If you are a BLE firmware developer (or use boards like the Nordic Semiconductor nRF51), check out the protocol specification for Eddystone frame formats, then get ready to get your hands dirty and experiment with your own frame types.

Download Evothings Studio – it just takes 5 minutes to get started

  1. Download Evothings Studio
  2. Install Evothings Viewer on your phone – available on Apple App Store and Google Play Store
  3. Run the “Eddystone Scan” example app that comes with the Evothings Studio download. It will detect any nearby Eddystone beacons right away.

It takes less than 5 minutes to get started!