Internet der Dinge (IoT) – ein kleiner Einstieg

Dieser Artikel zeigt die einzelnen Schritte vom normalen Gebrauchsgegenstand zu einem «Smart Object» im Internet der Dinge inkl. Backend-Server auf.

Autor Marcel Bernet
Datum 20.10.2015
Lesezeit 5 Minuten

Das «Internet der Dinge» oder Internet of Things (IoT) ist eine der interessantesten neuen Plattformen. Mit Hilfe der Cloud macht das IoT mit dem Backend-Server, der App zur Bedienung und bestehenden Fachapplikationen aus einfachen Gebrauchsgegenständen «Smart Objects», die unseren Alltag vereinfachen können.

Dieser Artikel zeigt die einzelnen Schritte vom normalen Gebrauchsgegenstand zu einem «Smart Object» im Internet der Dinge inkl. Backend-Server auf.

Das Smart Object

Schauen wir uns zuerst an, was es braucht, um aus einem Gebrauchsgegenstand ein Smart Object zu machen:

  • Intelligenz: einen Mikroprozessor
  • Sensor und Aktor: Die Möglichkeit, die Umwelt wahrzunehmen (z.B. mittels Helligkeitssensor, Temperaturfühler) und Einfluss darauf zu nehmen (z.B. Motor)
  • Internet-Anschluss: Ethernet, WLAN etc.

Sensoren und Treiber für Aktoren gibt es als vorgefertigte Hardware-Module. Bei der Verwendung von Mikroprozessoren greift man am besten auf vorgefertigte Entwicklerboards zurück. Ich verwende am liebsten das K64F Board von Freescale, das über einen Ethernet-Anschluss verfügt und einfach ins Internet eingebunden werden kann.

Die Programmierung erfolgt in der Cloud mittels C/C++. Als Pendant zu den Hardware-Modulen existieren auch hier vorgefertigte C++ Objekte. AnalogIn steuert das Lesen eines analogen Sensors, DigitalOut lenkt die Ansteuerung eines Aktors.

So wird die LED-Leuchte smart

Als Beispiel für ein Smart Object möchte ich in diesem Beitrag aufzeigen, wie eine LED-Leuchte mittels Helligkeitssensor die Umwelt wahrnehmen kann, darauf reagiert und mittels App das ein- und ausschalten auch manuell vorgenommen werden kann.

Als Erstes muss der Helligkeitssensor ausgewertet werden, damit sich die Leuchte bei Einbruch der Dunkelheit einschaltet:

internet-of-things-code-digicomp_01

Im obigen Beispiel haben wir jetzt zwar ein Smart Object, das die Umwelt wahrnimmt und darauf reagieren kann. Was noch fehlt, ist die Verbindung zum Internet. Auch ist der programmierte Wert zum Einschalten der LED fix (0.8 oder weniger als 80% Helligkeit) und somit nicht sehr flexibel.

Mittels Verwendung von vorgefertigten RPC-Klassen können wir das einfach ändern und so unsere Schaltung zu einem echten Smart Object erweitern.

Beispiel (gekürzt):

internet-of-things-code-digicomp_02

Das Ergebnis ist ein echtes Smart Object, das z.B. via Browser, «curl», Java etc. gesteuert werden kann. Soll der Wert zum Einschalten der LED geändert werden, kann dies nun ohne Änderung des Smart-Objects-Programms erfolgen.

Beispiel Linux Shellscript mit curl:

internet-of-things-code-digicomp_03
Was uns jetzt noch fehlt, ist der Backend-Server, um unser Smart Object zu verwalten und die Daten (z.B. wie lange hat die LED pro Tag geleuchtet hat) auszuwerten sowie eine App, um das Smart Object zu steuern.

Internet-of-Things-Digicomp-01
In unserem Beispiel nehmen wir den Eclipse Smart Home Server von den Java IoT Services & Frameworks aus dem Eclipse-IoT-Projekt. Zusätzlich zum Backend-Server beinhaltet Eclipse Smart Home auch eine App, die wir 1:1 für die Steuerung des Smart Objects verwenden können. Damit haben wir nun alle benötigten Bauteile zusammen.

Die Anbindung an Eclipse Smart Home erfolgt mittels einer XML Definition für die Sensoren und Aktoren.

Beispiel (vereinfacht):

internet-of-things-code-digicomp_04

Im zweiten Schritt brauchen wir eine Reihe von Java-Klassen, die das sogenannte «Binding» implementieren. Die wichtigste Klasse ist von BaseBridgeHandler abgeleitet und implementiert die Methode handleCommand, die die Verbindung zum Smart Object herstellt.

Beispiel handleCommand zum Abfragen von Sensoren:

internet-of-things-code-digicomp_05

Beispiel handleCommand zum Reagieren auf User Interface Aktionen und Ansteuerung der Aktoren:

internet-of-things-code-digicomp_06

Internet-of-Things-Digicomp-02
Die benötigten User-Interface-Objekte für den Browser und die App, eine REST-Schnittstelle zur Integration der Smart Objects in eigene Applikationen, wurde automatisch anhand der XML-Konfiguration erzeugt und benötigt keine weiteren Aktionen. Somit lässt sich die LED-Leuchte auch via App steuern.

Fazit

Dieses Beispiel zeigt auf, dass mit der passenden Hardware und den nötigen Programmierkenntnissen einfache Gebrauchsgegenstände in smarte Objekte umgewandelt werden, die teil des Internet der Dinge sind. Diese Möglichkeiten nutzen nicht nur Technologiebegeisterte, sondern auch grosse Elektronikkonzerne.


Über den Autor

Marcel Bernet

Marcel Bernet ist als Senior Enterprise Architect und Methodiker tätig. Er fördert als ehemaliger CH-Open-Präsident aktiv Open Source und setzt diese für seine beruflichen und privaten Projekte ein.