Eclipse development tools for the Internet of Things

Smart Doorkeeper

Gateways are smarter and more powerful than constrained devices. The substructure is usually a well-known operating system such as Linux or Windows. The gateway has its own component for communication with IoT devices and the cloud. It must be able to handle numerous protocols, such as Bluetooth and Ethernet. Another component allows the gateway to be (remotely) serviced and switched off in a controlled manner.

To compensate for network failures or faults, the gateways need to (temporarily) store the data collected by the sensors. This approach also enables direct analysis of sensor data on the gateway.

The Eclipse Foundation supports three projects, each of which contains all of the previously described components. Kura (Figure 2), which specializes in single-board computers such as the Raspberry Pi, is particularly well known. The modular structure of Kura allows Java developers to quickly adapt it to their own needs. For instance, they can program a small service that reads out the temperature sensors and forwards the data to Kura.

Figure 2: Eclipse Kura is easy to manage and monitor using the included web application.

At its core, Kura provides an application container for Java developers that follows the OSGi standard. Kura also offers numerous APIs that make communication with the hardware and the network easier for the developer. Kura accesses RS-485 or GPIO interfaces, communicates via the CAN bus, and establishes a connection via WLAN or Ethernet. Integrated MQTT support enables applications running on the gateway to communicate transparently with the cloud.

Based on the MQTT protocol, Eclipse Kura also enables remote management. Among other things, the software running on the gateway can be controlled remotely.

Eclipse SmartHome, also intended for gateways, runs on Linux, Windows, and OS X. Like Kura, the SmartHome project provides an application container according to the OSGi specification. However, as the project name suggests, SmartHome focuses on intelligent home scenarios.

The middleware supports many home automation devices, including intelligent Hue lamps by Philips or Sonos devices. The main aim is to set up and operate an "Intranet of Things." SmartHome offers an internal event bus to which external systems can also dock via SSE or MQTT. Predefined rules can be used to automate processes. SmartHome is configured via APIs, and the system includes an infrastructure for transferring firmware updates to the connected devices.

The third gateway project in the Eclipse universe is aimed at the corporate environment: Eclipse 4diac provides an open source infrastructure for distributed industrial process measurement and control systems. 4diac follows the well-known IEC 61499 standard.

Very Cloudy

The data collected by the gateway is uploaded to a cloud that uses OpenShift, AWS, or another data center solution. In the cloud are services and applications that process the data delivered by the gateways and forward the results to other applications as needed.

The basic building block for an IoT cloud is Eclipse Kapua: This modular platform offers all services necessary for managing the gateways and Smart Edge devices.

Eclipse OM2M, which follows the oneM2M standard, is the project of choice for the telecommunications industry. The OM2M project offers a horizontal Common Service Entity (CSE) that can act as an M2M server, gateway, or device.

The services running in the cloud need to be able to process the information delivered via a variety of protocols and in different data formats, and they need to normalize the information for other applications as needed. This is where Eclipse Hono jumps into the breach: The Hono project provides an API that can address devices in many protocols. In addition, Eclipse Mosquitto supplies a lightweight MQTT server, which is particularly suitable for embedded devices and systems with low energy consumption.

Please Register!

The Eclipse Foundation envisions a device registry, to which all currently connected sensors, actuators, and gateways would register. Eclipse Kapua comes with a registry as standard. This directory also helps to roll out software updates. Updates occur via the software tools from the Eclipse hawkBit project. To supplement this, Eclipse Leshan provides an implementation of the OMA LWM2M device management protocol.

Eclipse Ditto helps you manage digital twins of IoT devices. These digital twins are virtual images of real devices built in software. This virtual version is particularly useful in industrial applications, where the virtual version and its physical counterpart often must exchange data.

The delivered data must end up in a correspondingly flexible and large data repository. The information parked there is then analyzed and consolidated by the cloud application. The Foundation draws on established external Apache projects for data analysis, such as Hadoop, Spark, and Storm. For data visualization, the Eclipse Foundation recommends its own Eclipse BIRT [7] project, which is not part of Eclipse IoT.

Buy this article as PDF

Express-Checkout as PDF
Price $2.95
(incl. VAT)

Buy Linux Magazine

Get it on Google Play

US / Canada

Get it on Google Play

UK / Australia

Related content

comments powered by Disqus
Subscribe to our Linux Newsletters
Find Linux and Open Source Jobs
Subscribe to our ADMIN Newsletters

Support Our Work

Linux Magazine content is made possible with support from readers like you. Please consider contributing when you’ve found an article to be beneficial.

Learn More