IoT-Plattformen IoT-Open-Source-Plattformen im Vergleich

Autor / Redakteur: Thomas Joos / Nico Litzel

Mit Plattformen können zentrale Verwaltungsbereiche für IoT-Geräte geschaffen werden. Auch hier spielen Open-Source-Lösungen eine immer wichtigere Rolle. Wir zeigen drei der bekanntesten Open-Source-Plattformen für das Internet of Things (IoT).

Firmen zum Thema

Unternehmen, die Arduino, Devicehub.net oder OpenWSN für IoT-Projekte nutzen, profitieren vom Open-Source-Ansatz der Plattformen.
Unternehmen, die Arduino, Devicehub.net oder OpenWSN für IoT-Projekte nutzen, profitieren vom Open-Source-Ansatz der Plattformen.
(Bild: gemeinfrei / Unsplash)

Das Internet der Dinge ist aus dem Geschäfts- und Privatleben kaum mehr wegzudenken. Industrielle Sensoren und Endgeräte kommunizieren ebenso miteinander wie die unterschiedlichen Geräte im Smarten Home.

Mit IoT-Plattformen lassen sich Hard- und Software von IoT-Geräten in Einklang bringen und Projekte effektiver voranbringen. Wer zusätzlich auf Open Source setzt, hat auch hier Kontrolle über den Quellcode und kann gemeinsam mit einer Community an einer Erweiterung der Plattform arbeiten.
Wir stellen drei von ihnen vor.

Arduino – Hard- und Software für IoT

Eine der bekanntesten IoT-Plattformen ist Arduino. Die Open-Source-Plattform des gleichnamigen Unternehmens umfasst Soft- und Hardware als Open Source für das IoT. Mit Arduino können komplette Lösungen entwickelt werden – und das komplett mit Open Source-Lizenzen. Da auch die Hardware als Open Source zur Verfügung gestellt wird, stehen die Schaltpläne der Geräte ebenfalls zur Verfügung und können von der Seite der Entwickler heruntergeladen werden. Auch das Anpassen der Hardware ist auf diesem Weg möglich.

Die Hardware umfasst normalerweise einen Microcontroller, der mit der Arduino-Software programmiert werden kann. Dazu gehört zur Arduino-Plattform auch die Programmiersprache Arduino Programming Language sowie eine dazu passende Entwicklungsumgebung (IDE). Für den Einstieg setzen viele Entwickler auf Arduino Uno, das für 20 Euro erhältlich ist. Es gibt auch kompliziertere Geräte, die zum Beispiel über eine SIM-Karte auch mit dem Mobilfunknetz verbunden werden.

Die Software kann auf Windows, Linux und macOS installiert werden. Mit der Arduino-Lösung können Anwendungen entwickelt werden, die mit Arduino-Boards kommunizieren können. In der Arduino IDE kann auch mit C-/C++ gearbeitet werden. Auf der Seite Arduino Project Hub sind zahlreiche Beispiele dafür zu finden, welche Lösungen mit Arduino entwickelt wurden.

Teilweise wird Arduino mit Raspberry-PI verglichen. Allerdings besteht der Unterschied vor allem darin, dass die Microcontroller keine kompletten Mini-Computer sind, sondern eben Microcontroller, die mindestens eine Ebene darunter anzusiedeln sind. Entwickler können mit den Controllern eigene IoT-Geräte entwickeln, die Signale empfangen und senden können. Natürlich ist es möglich, Arduino-Boards auch mit Raspberry-PI zu verbinden.

Arduino bietet auch eine Entwicklungsumgebung, mit der Programme für Arduino-Boards geschrieben werden können.
Arduino bietet auch eine Entwicklungsumgebung, mit der Programme für Arduino-Boards geschrieben werden können.
(Bild: Arduino)

Arduino-Boards können Daten von Sensoren empfangen und verarbeiten. Auf Basis der eingehenden Signale ist es wiederum möglich, auch ausgehende Signale zu generieren, die auf den eingehenden Informationen aufbauen, sie verarbeiten und Aktionen auslösen. In Smart Homes können so zum Beispiel Markisen eingefahren werden, wenn der Wind-Sensor Sturm erkennt, oder der deutsche Wetterdienst Nachrichten veröffentlicht, die Sturm vorhersagen.

Arduino-Boards gibt es bei verschiedenen Herstellern. Im Gegensatz zu Raspberry PI sind auf den Boards keine umfassenden Funktionen von PCs integriert aber prinzipiell verfügbar. Über Erweiterungen können zum Beispiel auch Netzwerkadapter angebunden werden.

Da die Software kostenlos ist, sind die Hürden für die Entwicklung eigener IoT-Lösungen sehr gering. Sie kommuniziert per USB mit dem Board, um Daten und Programme an das Gerät senden zu können.

OpenWSN – IoT-Projekt der University of California Berkeley

OpenWSN ist ein Projekt der University of California Berkeley, das seit 2010 existiert. Es steht für Windows, Linux und macOS zur Verfügung. Bei OpenWSN handelt es sich um eine Implementierung eines Protokoll-Stacks und eines Frameworks für den IoT-Bereich.

Auch dieses Projekt ist Open Source. Im Gegensatz zu Arduino ist hier keine Hardware enthalten, dafür unterstützt das Projekt Hardware anderer Hersteller, wie beispielsweise LPC214x ARM7, STM32F103 Cortex, Atmega128 oder TI cc2420/cc2520. In OpenWSN ist auch ein Emulator enthalten, mit dem der Quellcode auf Computern getestet werden kann.

Bei den verwendeten Toolchains handelt es sich um IAR EW430, IAR EWARM, MSPGCC, GCC und ARMGCC. Der Protokoll-Stack von OpenWSN steht über die Kernel von uC/OS-II, FreeRTOS und OpenOS zur Verfügung. OpenWSN ermöglicht außerdem auch eine Verbindung mit Arduino und die Nutzung von Arduino-Geräten.

Zetta – Open-Source-Plattform auf Basis von Node.js

Zetta ist eine Open-Source-Plattform für das Internet of Things, das auf Node.js basiert. Mit der Plattform können HTTP-APIs für IoT-Geräte erstellt werden, die Node.js-Server als Basis nutzen.

Der Vorteil der Plattform besteht darin, dass sie nicht nur den On-Premises-Betrieb unterstützt, sondern auch in der Cloud IoT-Server bereitgestellt werden können. Dazu kommen Schnittstellen für die Anbindung von Sensoren, Aktoren und Steuerungen. Zetta ist durch die Cloud-Unterstützung unter anderem auch dazu in der Lage, Smartphone-Apps anzubinden. Zetta kann in Linux über NPM installiert werden: npm install zetta

Zetta ermöglicht auch die Verwendung von Raspberry PI. Zusammen mit anderen Platinen und auch der Verwendung von Cloud-Plattformen wie zum Beispiel AWS, Azure oder Google Cloud Plattform kann man mit Zetta eine IoT-Infrastruktur aufbauen, das sich auch international skalieren lässt. Durch den Aufbau eines Zetta-Servers mit Node.js können verschiedene IoT-Geräte an die Plattform angebunden werden. Über APIs und REST-APIs ist es möglich, verschiedene IoT-Geräte genau zu adressieren:

GET /servers/321/devices/123
Host: cloud.herokuapp.com
Accept: application/vnd.siren+json
{
"class": [
"device"
],
"properties": {
"id": "123",
"type": "arm",
"name": "Robot Arm",
"state": "standby"
},
"actions": [{
"name": "move-claw",
"method": "POST",

Im Fokus von Zetta steht auch die Übermittlung von großen Datenmengen in Echtzeit. Dazu gibt es auch Möglichkeiten, den Zustand und das Verhalten von Geräten zu beobachten und in Dashboards oder Monitoring-Tools zu integrieren.

Dieser Artikel stammt von unserem Partnerportal Industry of Things. Verantwortlicher Redakteur: Sebastian Human

(ID:47392647)