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
-
Halcyon Creates Anti-Ransomware Protection for Linux
As more Linux systems are targeted by ransomware, Halcyon is stepping up its protection.
-
Valve and Arch Linux Announce Collaboration
Valve and Arch have come together for two projects that will have a serious impact on the Linux distribution.
-
Hacker Successfully Runs Linux on a CPU from the Early ‘70s
From the office of "Look what I can do," Dmitry Grinberg was able to get Linux running on a processor that was created in 1971.
-
OSI and LPI Form Strategic Alliance
With a goal of strengthening Linux and open source communities, this new alliance aims to nurture the growth of more highly skilled professionals.
-
Fedora 41 Beta Available with Some Interesting Additions
If you're a Fedora fan, you'll be excited to hear the beta version of the latest release is now available for testing and includes plenty of updates.
-
AlmaLinux Unveils New Hardware Certification Process
The AlmaLinux Hardware Certification Program run by the Certification Special Interest Group (SIG) aims to ensure seamless compatibility between AlmaLinux and a wide range of hardware configurations.
-
Wind River Introduces eLxr Pro Linux Solution
eLxr Pro offers an end-to-end Linux solution backed by expert commercial support.
-
Juno Tab 3 Launches with Ubuntu 24.04
Anyone looking for a full-blown Linux tablet need look no further. Juno has released the Tab 3.
-
New KDE Slimbook Plasma Available for Preorder
Powered by an AMD Ryzen CPU, the latest KDE Slimbook laptop is powerful enough for local AI tasks.
-
Rhino Linux Announces Latest "Quick Update"
If you prefer your Linux distribution to be of the rolling type, Rhino Linux delivers a beautiful and reliable experience.