Building the Internet of Things – The Open Source Master Plan

In just under five years, there’s been a dramatic shift in the way software is developed for consumers. Smart phones deliver sleek experiences to users and all it takes to do so from scratch to go is just a matter of weeks, even days if ideated and executed without flaw. All the exciting mobile apps and connections to create rich user experiences across the IoT are being designed using APIs. While some devices seem to be embracing the REST architecture, often times, the API released is wrapped with SDKs. This seems to be a trend, with programmatic APIs built atop the underlying web APIs for programming IoT devices.

With the introduction of the $35 Raspberry Pi in 2012 and the continued proliferation of Arduino microcontrollers, there is a rejuvenated interest in DIY computing, notwithstanding the adoption by startups trying to build things rapidly. This has coincided with the advent of the internet of things. We’ll do a fair roundup of the IoT and wearable SDKs from the big guns in the industry and also highlight a few pain points around these.

Google’s Android Wear SDK:

Google has announced a preview-mode developer version of its Android Wear, an SDK platform for building apps for wearables. The preview SDK really is quite simple and concentrates strictly on notifications. By the time the full SDK comes out, developers will have already had a chance to make sure notifications work well in their apps.

A device with a tiny screen should be glance able, controlled hands-free, and allow for a lot of imprecise presses and it’s exactly what Google is going for with Android Wear.

The Context Stream is a series of cards with contextual information based on your Google info, like email, location, browsing history, recent Hangouts chats, and so on. You can scroll through these items one at a time in a vertical list.

Samsung’s Tizen SDK

The Tizen-based Gear SDK, a set of tools for developing Tizen web applications, will make it possible for developers to create applications that run on both Gear 2 watches (using both Android apps and web apps). . Comprising of Web IDE, Emulator, toolchain, sample code, and documentation, the SDK can be leveraged to build variety of applications for the Samsung Gear 2 and Gear 2 Neo by the active Tizen app developer community.

The Tizen SDK runs on Windows as well as Ubuntu, and in order to build apps, it isn’t necessary to download the Tizen IDE.

IBM + Libelium

IBM, together with Libelium has launched a wireless sensor network platform provider, to offer an Internet of Things starter kit to facilitate application development, testing and scalability that could result in enabling a huge number of sensor applications.

The Internet of Things Starter Kit, through the integration of a real-time operating system with Libelium Waspmote nodes to support more than 60 different sensors available off the shelf, enables developers to build applications on top. The SDK also includes the source code of the 6LoWPAN libraries so that researchers can modify and add their own algorithms and improvements.

WunderBar by relayr

Love chocolate? Then you’ll certainly dig this: with six ambient sensors and a microcontroller, this IoT starter kit resembles a bar of chocolate and enables developers to build an app in less than 10 minutes.

The microcontroller connects to the Internet using Wi-Fi and the six sensors talk via Bluetooth low energy. You can create contextual awareness by simply breaking off a sensor, placing it in the target environment and program via a REST API or SDKs for iOS and Android. The OpenSensor cloud gathers all the sensory data.

Microsoft Windows on Devices

Catching up with the rest of the industry, Microsoft announced the “Windows on the Internet of Things” at the Build 2014 conference.

Based on Intel’s Galileo, a Raspberry Pi like DIY development board powered by Intel’s low-powered, Internet of Things-focused Quark chip and compatible with the Arduino’s popular open-source microcontroller boards. An SDK is expected to release during spring 2014 with a look at new software and APIs.

u-blox + ARM

u‑blox and ARM have jointly released a flexible and easy-to-use prototyping kit for designing wirelessly connected, location-aware internet devices: the ARM mbed-enabled u‑blox C027 Internet-of-Things (IoT) starter kit.

It features out-of-the-box wireless internet connectivity based on u-blox 2G, 3G or CDMA cellular modem and a GPS module. The kit is powered by an ARM Cortex-M3 32-bit processor with cost-free access to the resources of the ARM mbed development platform which includes a vast ‘cookbook’ of tested application performance indicators (APIs) for web, wireless, audio, sensor and peripheral interfacing.

The Value of Open Source

At the stage of growth that IoT is in right now, incumbents are in danger of stifling growth simply by accidentally introducing complexity. If your things and my things have to talk together, we need a common language. A rapid development and uptake of common platforms and standards that encourages seamless cooperation is what the industry is in dire need of.

Open source seems to be the answer and several industry experts see this as a means to building a clear and consistent set of standards including architecture, APIs and services. Also, because the IoT is basically a numbers game with a large number of ‘end points’, extremely low cost hardware and software components will ensure better revenue per end point.

An open, well-documented, and growing community is ideal when picking up new toolsets to create a new platform. The Arduino IDE, the BeagleBone Black IDE, and the Raspberry Pi all work on open software that can be picked apart and viewed at any time. With an open set of tools, it becomes easier to alter, modify, or create other tools that will be able to help you build rich IoT experiences. This unprecedented level of control over tools being used will allow for the faster creation of apps—something that typical mobile development environments don’t have.

Perhaps this is why the Internet of Things (IoT) is inherently fascinating: by connecting all sorts of devices and things, you can deliver deeper contextual experiences for users. All you need is an IP address assigned to the device to connect it to the massive IoT.