Working with Wearables

By Guilherme Oliveira photoGuilherme Oliveira, Software Engineer and Higor Silva photoHigor Ernandes Silva, Software Developer
First published: in DeveloperWorks on the 8th May 2015
As technology evolves, the number of platforms in which applications can be built also increases, offering new possibilities for developers and more comfort and practicality for users. Wearable technology presents a new concept—and possibly a new era—for society by leaving behind the standard way of providing and accessing information through a personal computer, tablet, or smartphone, and jumping into small devices that can be worn in the day-to-day life of people without, sometimes, even being noticed.

This article describes the characteristics and functionality of several wearable devices, and how you can use several IBM Bluemix services to develop applications that interact with these devices. For example, Bluemix scalable runtime support for Node.js and other event-based languages are perfect to initiate data collection from users, and the combination of Cloudant and dashDB services in Bluemix can be used as an analytic platform for all of your wearable devices.

Note: This article is based on information available on the manufacturers’ websites at the time of writing. Refer to the manufacturers’ websites for more detailed information.

Develop and deploy your next app on the IBM Bluemix cloud platform: Start your free trial

Wearables and Bluemix

The following figure shows the architecture that typically applies to most wearable devices and how wearable devices communicate with the cloud.

Image depicting a wearable device using Bluetooth or Wi-Fi to connect to a laptop or smartphone to communicate with the cloud/Bluemix.Wearable devices don’t stand alone within an interconnected world. With a bit of programming knowledge, you can build customized applications that use Cloud services and wearable devices to solve unique data-gathering and analysis scenarios, and enjoy the versatility and dynamics that these small portable devices can offer.

This article introduces each device along with its specifications and shows how differentBluemix solutions and services can be used, including, but not limited to, the following:

These services are only suggestions—the ones that might be the most important and most likely to be used when building applications related to wearable devices. Bluemix offers a large number of alternative services and possibilities. See the Bluemix catalog for the full list of services and a deeper explanation of each.

Myo

Picture of Myo armband.

What is it?

The Myo armband lets a person use the electrical activity in the arm muscles to wirelessly control other devices, offering a new way of interaction with the digital world. Besides its own proprietary EMG sensors, it comes with Bluetooth Low Energy and a nine-axis inertial measurement unit (IMU). An IMU includes three axes for an accelerometer, which measures acceleration forces (changes in velocity or speed), three axes for a gyroscope, which is used for determining orientation using the earth gravity, and three axes for a magnetometer, which is used for measuring the strength and sometimes the direction of a magnetic field. Applications for the Myo can be built on Windows, iOS, and Android.

Which programming languages and frameworks does it use?

There are many different programming languages and frameworks available for application development with the Myo, including: C++, (Andriod) Java, and (iOS) Objective-C.

How will this work in Bluemix?

It’s possible to build applications that get data from the Myo and send it to the cloud. A web application in Bluemix can be developed to show the data collected from the device.

Kiwi Move or Kiwi Glance

Picture of Kiwi device.

What is it?

The Kiwi Move (or Kiwi Glance) is multi-sensor, internet-connected, open wearable technology device and platform. Using the nine-axis IMU and a barometer, it allows developers to build applications using its platform.

Additional sensors and a mic are expected to be added in the future. The Kiwi Move and Kiwi Glance can be used as a source of data for web and mobile applications by detecting motion events and relating it to events or actions.

Which programming languages and frameworks does it use?

Kiwi Move uses JavaScript and socket.io in order to open sockets at the web/mobile application that will listen to data coming from the device.

How will this work in Bluemix?

Sensor data is communicated to the Move platform over Bluetooth or Wi-Fi and made available using a simple web API. The API can be integrated to the web/mobile application being hosted at Bluemix.

Cloudant NoSQL DB and dashDB can be used for storing data and performing data analysis based on sensor data collected from the device.

Additional infrastructurE

In order for the device to interact with the Bluemix services it requires a Bluetooth enabled device such as a smartphone or a computer. More information about the device can be found at the device’s FAQ.

Muse

Picture of Muse headband.

What is it?

Muse is a brain-sensing headband that can detect and measure brain activity and provide feedback to the user. It provides examples of exercises that can help the user manage their stress and keep calmer in their daily activities.

Which programming languages and frameworks does it use?

Muse can be used as a source of data for applications written in C/C++, Python, or Java. The SDK comes with three main tools: MuseIO, a Muse driver for Mac and Windows desktop environments that sends out Muse data as OSC messages, which other programs can interface with; MuseLab, a visualizer tool for brainwave and other types of data; and MuseReplay, a desktop program that can replay recorded data as an OSC stream.

For more information about how Muse works, refer to the Muse developers resource site.

How will this work in Bluemix?

Interesting applications can be developed using the data coming from the Muse. For example, a local application written in any language can analyze the data and make an object move (for example a remote control toy car). At the same time, this data can be displayed on a web application running on Bluemix. For storing the big data generated, Cloudant NoSQL Daw2tabase can be used; and for analyzing this data, dashDB can be used. The article “Move a toy car with your mind” (developerWorks, November 2014) describes this application in detail.

Recon Jet

Picture of Recon Jet display, attached to a pair of sports glasses.

What is it?

Jet is a heads-up display for sports used to rapidly deliver information to the user with quick movements of the eye. It has a widescreen display attached to polarized sports eyewear, designed for outdoor use.

Jet also has GPS and on-board sensors that can provide data, such as speed, distance, elevation, gain, and others. The sensors include nine-axis sensors (accelerometer, gyroscope, and magnetometer), pressure sensors (barometer and altimeter) and ambient temperature sensors.

The device also has a 720p HD video-camera, a 1 GHz Dual-Core ARM Cortex-A9 processor, 1GB DDR2 SDRAM, 8GB flash for storage, integrated microphone and speaker, and an optical touchpad.

Which programming languages and frameworks does it use?

The device has a similar design to Google Glass. It uses Java, as shown in the developer overview.

It also uses OAuth 2.0 for web authentication. The Jet SDK uses a modified Android version, so applications can be written as if they were being developed to an Android device.

How will this work in Bluemix?

Jet can transmit data using ANT+ and Bluetooth Low Energy (BLE), which allows the collected data to be transmitted to a smartphone or other smart devices that also uses BLE. Once the information is collected, a web or mobile application can be built using Cloudant and Bluemix to store and analyze data about the user’s performance during sporting events or practice sessions.

An example application that can be built using this device along with Cloudant and Bluemix is one that shows real-time statistics about not only the exercise being done (by receiving data from heart rate monitors, power meters, and so on), but also showing history of exercises and possible goals for the athlete in a certain day of practice.

Pebble

Picture of three Pebble smartwatches.

What is it?

Pebble is a smartwatch with a 1.26 inch e-paper display that offers a platform for developing several applications. With Pebble, it’s possible to check notifications from the phone, control other devices at a distance, and set personalized “watchfaces” and alarms.

Pebble has an ARM Cortex-M3 up to 80MHz processor, LED backlight and runs on Pebble OS. Its sensors include a 3D accelerometer, e-compass, and an ambient light sensor.

Which programming languages and frameworks does it use?

Pebble’s SDK uses C (on Pebble) and JavaScript (on the mobile device) or a special JavaScript library called Simply.js. Using PebbleKit JavaScript Framework Apps, Pebble can access the internet and communicate with mobile devices.

How will this work in Bluemix?

Pebble can connect to a mobile device using BLE and therefore be able to send information to it. In this sense, Pebble can also work as a source of data for mobile applications developed in Bluemix. The smartwach can also be used as a front end for data sent from a server in Bluemix (for example, an application that sends notifications to the user about his schedule to the mobile device and then to Pebble, notifying them about appointments).

Additional infrastructure

In order to make Pebble communicate with the internet, a mobile phone or a Bluetooth adapter may be necessary.

Gear 2

Picture of five Gear 2 smartwatches.

What is it?

Gear 2 is Samsung’s smartwatch that works with some specific Android devices. It has a screen size of 1.63″, comes with a 2.0 megapixel camera, accelerometer, infrared, gyroscope, heart rate sensor, and Bluetooth 4.0.

Which programming languages and frameworks does it use?

The applications for Samsung Gear are based on two sides:

  • The host-side application: Runs on Android-based Samsung mobile devices, thus can be developed in the common Android development environment.
  • The wearable-side widget: Runs on Tizen-based Samsung Gear devices; therefore, it can be developed with Tizen SDK for Wearable.

The accessory package, in the Samsung Mobile SDK, is a necessary component for communicating between the host-side application and the wearable-side widget.

How will this work in Bluemix?

This device can work with Bluemix through the Android device that is synced with the smartwatch, using the Tizen SDK for Wearable and the Samsung Mobile SDK (Accessory Package). Although you can build a standalone application using only Tizen SDK, the smartwatch does not have Wi-Fi, and the communication to the cloud must be through the Android device.

Additional infrastructure

An Android device that will communicate with the smartwatch.

Pine

Picture of Pine sportwatch.

What is it?

Pine is a smartwatch that, unlike other smartwatches in the market, does not need Bluetooth-tethering.

It comes with a GPS, pedometer, compass, speaker, microphone, headphone jack, vibration alert, 5 megapixel camera, and Bluetooth 4.0.

Which programming languages and frameworks does it use?

It has Android Jellybean, thus it is possible to program for it as programming for any Android device (Java for Android).

How will this work in Bluemix?

It can be integrated in Bluemix like any Android application.

Oculus Rift

Picture of Oculus Rift head-mounted display.

What is it?

The Rift is a virtual reality head-mounted display. It tracks the movement of your head in order to interact with the virtual reality displayed to the user.

Which programming languages and frameworks does it use?

Oculus Rift SDK uses C++ as its main language. It also includes a game engine that has support to C# and JavaScript.

How will this work in Bluemix?

The integration with Bluemix can be done by C++ or any of those supported by any game engine. For example, you can use HTTP protocol in order to send and receive data from a Node.js application running in Bluemix.

Learn how to develop applications using Oculus Rift and Bluemix in the article, “Analyze game data from the Oculus Rift using Bluemix” (developerWorks, September 2014).

Cortex

Picture of Cortex head-mounted display.

What is it?

The Sulon Cortex transforms your physical environment into an interactive, fully immersive virtual world. It also scans the environment, letting you see where you are (your room) and displaying the game in the “real world,” transforming the physical environment into an immersive virtual world that can be walked through and interacted with.

Which programming languages and frameworks does it use?

 The SDK is not open and it is needed to order the device first. However, the device platform is based on Linux and Android.

How will this work in Bluemix?

Since it is based on Android, it is expected to work as an android device.

Additional infrastructure

It uses an Android mobile device (from 5.5″ to 7.0″) as its screen and processor. The list of available devices are not available yet.

Google Glass

Picture of person wearing Google Glass, connected to a pair of eyeglass frames.

What is it?

The Google Glass is basically a glass with a small LCD display, a camera, and a touch interface on its frame. The user can also interact with the apps and hardware using voice commands.

It has a high-resolution display (equivalent of a 25-inch high-definition screen from eight feet away), 5 MP camera, Bone Conduction Transducer, Wi-Fi (802.11), Bluetooth, and Micro USB cable charger.

Which programming languages and frameworks does it use?

The SDK, here called GDK (Glass Development Kit), uses Java as its main language and XML as an interface to design UIs. The GDK uses the Android SDK, expanding its functionalities in order to make use of the Glass hardware.

How will this work in Bluemix?

Since any application built for Google Glass uses Android SDK, it is compatible with Bluemix.

Conclusion

All wearable technologies described in this article can work with Bluemix. Because Bluemix is a flexible platform, it comes with a huge amount of new technologies that can support almost everything. Bluemix supports languages and platforms such as Node.js, Ruby on Rails, Java, and Android, which allows the integration with a large number of technologies. Bluemix also provides integration to database and big data services, such as Cloudant, dashDB, and Analytics for Hadoop in order to analyze your data.

The usage of cloud to store big data from wearable devices is the direction we are seeing for many of the wearable companies analyzed. Wearable device storage is relatively small compared to the amount of data they can accumulate over time, so a solution that involves the cloud makes a lot of sense.

BLUEMIX SERVICES USED IN THIS TUTORIAL:

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s