Eclipse development tools for the Internet of Things
Gadget Talk

Eclipse IoT is a collection of 26 open source projects with the common goal of building an open development environment for the Internet of Things.
The Eclipse project is a vast and diverse effort to produce a universal open source collection of software development tools. Separate projects within the Eclipse umbrella target specific standards and use cases, creating helpful libraries and software components that (at least theoretically) plug seamlessly into the universal Eclipse development environment.
The recent emergence of the Internet of Things (IoT) has not gone unnoticed within the Eclipse community. IoT programs and protocols connect household appliances, light bulbs, temperature sensors, and motorized devices, requiring a new crop of programming standards and technologies. The Eclipse IoT working group [1] is a collaboration of individuals and organizations dedicated to "development, promotion, and adoption of IoT technology." The group encompasses a wide range of projects that extend the Eclipse vision to a new generation of open source IoT development tools.
Table 1 shows a summary of Eclipse IoT projects. Each project has a different emphasis. For example, the Paho library (see Table 1) handles data exchange via the MQ Telemetry Transport (MQTT), a common messaging protocol for open IoT. All Eclipse Foundation projects are under open source licenses and are therefore available free of charge.
Table 1
Eclipse's IoT Projects
Name | Task | URL |
---|---|---|
Eclipse 4diac |
Industrial process control according to IEC 61499 |
|
Eclipse Agail |
Modular software and hardware gateway framework |
|
Eclipse Californium |
Implementation of the constrained application protocol (CoAP) in Java |
|
Eclipse Concierge |
Implementation of the OSGi Core Specification R5 |
|
Eclipse Cyclone DDS |
Implementation of the OMG Data Distribution Service (DDS) |
|
Eclipse Ditto |
Management of digital twins |
|
Eclipse Edje |
High-level Java API that provides access to the hardware of a microcontroller and thus functions as a HAL |
|
Eclipse hawkBit |
Management tools for rolling out software updates |
|
Eclipse Hono |
Provides a unified interface for communication with numerous IoT devices |
|
Eclipse IO-Fog |
Universal run-time environment for microservices |
|
Eclipse Kapua |
Modular IoT cloud platform, forms the basis for cloud services, which then evaluate the delivered data |
|
Eclipse Kura |
Middleware and application container according to OSGi for gateway services, transforms a Raspberry Pi into a gateway |
|
Eclipse Leshan |
OMA lightweight M2M Server and client |
|
Eclipse Milo |
Implementation of the OPC Unified Architecture |
|
Eclipse Mosquitto |
MQTT broker |
|
Eclipse NeoSCADA |
Framework for generating industrial control systems (ICS) |
|
Eclipse OM2M |
IoT cloud platform for the telecommunications industry based on the One M2M specification |
|
Eclipse Paho |
Implementation of the MQTT protocol |
|
Eclipse Paho Incubator |
Incubator project for Paho, where Paho developers can try out new ideas |
|
Eclipse Ponte |
Ponte mediates and converts between different protocols and data formats – for example, data can be received via MQTT and then forwarded via CoAP |
|
Eclipse SmartHome |
Middleware and application container as per OSGi, focus on home automation |
|
Eclipse tinydtls |
Implementation of the DTLS protocol |
|
Eclipse Unide |
Implementation of a lean production performance management protocol |
|
Eclipse Wakaama |
Implementation of the OMA LWM2M standard |
|
Eclipse Vorto |
Generation and Exchange of device information models |
|
Eclipse Whiskers |
Implementation of the OGC SensorThings API in the form of a JavaScript client and a lean server |
Stacked High
To keep track of the project flood, the Eclipse Foundation divides a typical IoT application into three central components (Figure 1). Sensors and actuators always form the basis. This category includes temperature sensors, as well as small motors and intelligent light sources. The Eclipse Foundation groups these devices under the term constrained devices.
The raw data is then collected by a gateway. For example, a sensor could pick up the temperature and humidity values from the greenhouse, and a gateway would then push the data into the IoT cloud.
The services running in the cloud process or analyze the data. To stick with the example of the greenhouse: A cloud application could enter the supplied temperatures in a chart and determine the probable water requirements of the plants.
A client application can then access the cloud and obtain the cloud data. This application could be a smartphone app that alerts its users if the temperature in the greenhouse rises dangerously. The whole procedure also works in the opposite direction: The cloud could send instructions to the gateway, causing it to open the greenhouse windows. The gateway then sends the corresponding control data to the appropriate actuators. Gateways thus also coordinate the cooperation of individual IoT devices.
The constrained devices, gateways, and IoT cloud each consist of components that support or complement each other. For example, a constrained device might run a small real-time operating system with a mini-application that controls the actual hardware.
The Eclipse Foundation's terminology refers to a stack of software components serving each of the categories: constrained devices, gateways, and the IoT cloud.
Of Gatherers …
The sensors and actuators interact with the real world and usually take on a very special but clearly defined task. Examples include battery-powered temperature sensors, light switches, and light bulbs that require very little power. In addition, the intelligent devices often contain microcontrollers with limited computing power.
If the constrained device requires an embedded or real-time operating system, the Eclipse Foundation recommends established open source systems such as Contiki-NG [2], RIOT [3], FreeRTOS [4], Zephyr [5], or Apache Mynewt [6]. Access to the actual hardware is simplified by a hardware abstraction layer (HAL). Such a HAL is provided by the Eclipse Edje project. Edje offers an API that allows applications to directly access the hardware features of microcontrollers – such as a Raspberry Pi's GPIO contacts.
Another component forwards the read sensor data over the network. This transmission usually occurs wirelessly using Bluetooth, Z-Wave, MQTT, CoAP, or a similar protocol. Developers receive support through the Eclipse Wakaama and Paho projects. Paho provides a library with which developers can conveniently send data over the network using the MQTT protocol. Similarly, Eclipse Wakaama implements the OMA LWM2M standard.
A fourth component on the constrained device is responsible for remote management. This component lets you upgrade the firmware or check the battery status. (Eclipse Wakaama plays a role with this component as well.)
… and Hunters
Gateways occur in two variants: One variant is a hardware device specially designed for this task, such as a suitably equipped Raspberry Pi. The other variant is a gateway integrated into a larger system, such as a weather station, a large production plant, or an intelligent car.
In practice, several gateways are often used for separate components. For example, one gateway could monitor the greenhouse, and a second gateway could be dedicated to lighting and heating control.
Buy this article as PDF
(incl. VAT)
Buy Linux Magazine
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.
News
-
The GNU Project Celebrates Its 40th Birthday
September 27 marks the 40th anniversary of the GNU Project, and it was celebrated with a hacker meeting in Biel/Bienne, Switzerland.
-
Linux Kernel Reducing Long-Term Support
LTS support for the Linux kernel is about to undergo some serious changes that will have a considerable impact on the future.
-
Fedora 39 Beta Now Available for Testing
For fans and users of Fedora Linux, the first beta of release 39 is now available, which is a minor upgrade but does include GNOME 45.
-
Fedora Linux 40 to Drop X11 for KDE Plasma
When Fedora 40 arrives in 2024, there will be a few big changes coming, especially for the KDE Plasma option.
-
Real-Time Ubuntu Available in AWS Marketplace
Anyone looking for a Linux distribution for real-time processing could do a whole lot worse than Real-Time Ubuntu.
-
KSMBD Finally Reaches a Stable State
For those who've been looking forward to the first release of KSMBD, after two years it's no longer considered experimental.
-
Nitrux 3.0.0 Has Been Released
The latest version of Nitrux brings plenty of innovation and fresh apps to the table.
-
Linux From Scratch 12.0 Now Available
If you're looking to roll your own Linux distribution, the latest version of Linux From Scratch is now available with plenty of updates.
-
Linux Kernel 6.5 Has Been Released
The newest Linux kernel, version 6.5, now includes initial support for two very exciting features.
-
UbuntuDDE 23.04 Now Available
A new version of the UbuntuDDE remix has finally arrived with all the updates from the Deepin desktop and everything that comes with the Ubuntu 23.04 base.