Internet of Things

Hands-on-Tutorial

Mit einem Klick auf den untenstehenden Button können Sie unser vorbereitetes Raspberry PI Image herunterladen, um einen Raspberry inkl. des vorinstallierten Mosquitto MQ Brokers als Server zuhause einzusetzen.

Mögliche Use Cases

Wie kann ich Anfangen in der Embedded-Welt

Im IoT-Bereich haben wir den Vorteil, dass wir Dinge im wahrsten Sinne des Wortes anfassbar machen können. Googeln Sie bitte einmal nach IoT und klicken Sie auf die Bildersuche. So etwas meinen wir hier nicht. Wir möchten es einfach halten.
Sie benötigen für einen einfachen IoT Use Case drei Dinge:

  • Einen Sensor, der Daten produziert
  • Einen Nachrichtenbroker, der Daten verteilt
  • Einen Aktor, der mit den Daten etwas macht

Sie müssen nun noch festlegen, wie Sensor und Aktor mit dem Internet verbunden werden und welches Nachrichtenprotokoll Sie nutzen wollen.
Wir empfehlen zum Start:

  • Nutzen Sie MQTT als Protokoll und einen MQ Broker als Nachrichtenbroker. Die Vorteile von MQTT liegen in der enormen Verbreitung (es gibt für viele Umgebungen sehr gute Open Source Libraries), der leicht zu implementierenden Security, der Strukturierung über topics, der Tatsache, dass sich neue Clients dynamisch zur Laufzeit zum Senden und Empfangen anmelden können sowie der breiten Verfügbarkeit von freien Message Brokern sowie Anleitungen im Netz (siehe z.B. https://www.hivemq.com/blog/MQTT-essentials/).
  • Sie können zum Beispiel einen günstigen ESP-8266 Microcontroller für die Programmierung, Internet-Verbindung sowie Anbindung von Sensor und Aktor einsetzen. Dieser besitzt bereits ein WLAN-Modul und ist sehr einfach mit der Arduino IDE programmierbar (C-basiert).

Suchen Sie sich einen möglichst simplen Use Case aus, um anzufangen. Zum Beispiel den Folgenden:

  • Sie nutzen einen Button als Sensor – jedes Mal, wenn der Button gedrückt wird, wird eine Nachricht gesendet. Die Nachricht wird in unserem Beispiel auf das topic iot/button gelegt.
  • Nutzen Sie einen LED RGB Stripe als Aktor. Dieser LED RGB Stripe wird ebenfalls physisch mit einem ESP-8266 Microcontroller verbunden und kann so unabhängig vom Button programmiert werden. Subscriben Sie mit dem LED RGB Stripe auf das topic iot/button. Jedes Mal, wenn der Button gedrückt wird, wechseln Sie die Farbe oder schalten Sie den Stripe an und aus. Fertig.
  • Im Idealfall hat Sie das weniger als 60 Minuten Zeit gekostet und Sie haben den ersten IoT Use Case selber umgesetzt.

Mit exakt dem gleichen Setup nur einem anderen Sensor können Sie sehr schnell sinnvolle Use Cases zuhause oder in Ihrem Büro umsetzen:

  • Setzen Sie eine Wägezelle in Ihren Briefkasten. Wenn sich das Gewicht ändert, senden Sie das aktuelle Gewicht z.B. auf iot/briefgewicht. Sie subscriben mit Ihrem LED RGB Stripe auf iot/briefgewicht und abhängig vom gesendeten Wert signalisieren Sie, ob Sie Post im Briefkasten haben.
  • Sie legen einen Temperatursensor mit ESP-8266 auf Ihre Fensterbank / Ihren Balkon / in Ihren Garten und senden alle zehn Minuten den aktuellen Wert auf dem topic iot/outsidetemperature. Sie subscriben mit Ihrem LED RGB Stripe auf iot/outsidetemperature und überlegen sich eine Farbskala zum Anzeigen der Außentemperatur.
  • Sie installieren einen Anwesenheitssensor in einem nicht buchbaren Meetingraum und bringen den LED RGB Stripe außen an der Tür an. Senden Sie die Anwesenheitswerte im 10-Sekunden-Takt auf iot/anwesenheit/raumbezeichner. Subscriben Sie mit Ihrem LED RGB Stripe auf iot/anwesenheit/raumbezeichner und signalisieren Sie die Raumbelegung mit einer entsprechenden Farbgebung.
  • Zur weiteren Anbindung von Sensoren / Aktoren finden Sie unter dem Stichwort Arduino vielfach Beispielprojekte im Internet. Diese können Sie dann als Ausgangspunkt für eigene Erweiterungen / Ideen nutzen.

Embedded allein reicht nicht – wie bringe ich es ins Web?

Nach unserer Einschätzung ist es wichtig im Embedded-Bereich eigene Hands-on-Erfahrungen gemacht zu haben, um die Prinzipien und Möglichkeiten des Internet of Things zu verstehen. Wenn Sie Ihre Prototypen allerdings auf den Embedded-Bereich beschränken, dann sind Sie einerseits limitiert, was die Möglichkeiten der Anbindung weiterer Schnittstellen, der Visualisierung und der Verbreitung Ihrer Daten und Anwendungsfälle angeht. Andererseits sind Sie dadurch auch oft nicht schnell genug, um eine Idee einfach mal auszuprobieren.
Hier empfehlen wir ausnahmsweise ein grafisches Entwicklungswerkzeug. Für viele Softwareentwickler sind grafische Benutzeroberflächen mit WYSIWIG-Editor zurecht eine unbefriedigende Lösung, aber für den speziellen Fall des Prototypings im IoT-Bereich halten wir Node RED für ein sehr gut geeignetes Werkzeug.
Ursprünglich unter dem Namen IBM Node RED hat IBM ein Open-Source-Werkzeug zur Verfügung gestellt, das sehr einfach und intuitiv zu bedienen ist. Außerdem können Sie damit sehr schnell Hardware-Geräte, APIs und Online-Dienste als Teil des Internet der Dinge miteinander verbinden.
Node RED bietet einen browserbasierten Flow-Editor mit dem JavaScript-basierte Funktionen erstellt werden können. Die Funktionen werden dabei als Knoten (Nodes) in den Flow gezogen, ggf. konfiguriert und/oder programmiert (Javascript) und können per Maus miteinander verbunden werden. Es gibt eine Vielzahl vordefinierter Knoten, die es dem Benutzer erlauben, Funktionen tatsächlich per Drag and Drop zu seinem Use Case hinzuzufügen. Die Laufzeitumgebung von Node RED ist auf NodeJS aufgebaut. Somit können Sie verschiedenste Knoten quasi als Libraries über NodeJS in Ihre Node RED Instanz einspielen. Jeder Flow kann exportiert und in einer anderen Instanz über die Weboberfläche wieder eingespielt werden. Unter nodered.org finden Sie viele Beispiele und Anleitungen.
Anhand der im Embedded-Bereich begonnenen Use-Case-Beispiele möchten wir Ihnen zeigen, wie Node RED Ihnen hilft, Ihre Ideen zu erweitern und schnell auszuprobieren. Dafür haben wir in unserem Raspberry PI Image auch eine Instanz von Node RED installiert. Sie erreichen diese über den Webbrowser Ihrer Wahl unter IP_des_Raspberry.
Sie können direkt mit dem ersten Beispiel anfangen. Wir haben bewusst einen Button gewählt, da es sehr einfach ist, diesen zu stecken und zu implementieren. Dennoch können Sie für exakt das Beispiel Button -> RGB Stripe den Button auch in Node RED simulieren. Dafür fügen Sie auf Ihrem Flow zwei Dinge hinzu:

  • Einen Inject Node
  • Einen MQTT out Node

Den Inject Node verbinden sie mit dem MQTT out Node.
Beim Inject Node ändern Sie per Doppelklick die Eigenschaften wie folgt: Als Payload wird nicht timestamp, sondern String versendet. Sie kopieren eine Nachricht des Embedded-Buttons und fügen diese genau hier ein. Als Name geben Sie „Button Simulator“ ein. Mit einem Klick auf Done sind Sie fertig und der Inject Node sendet exakt diese Nachricht, jedes Mal, wenn Sie im Flow auf die kleine Schaltfläche vor dem „Button Simulator“ klicken.
Den MQTT out node verbinden Sie über die Eigenschaften mit dem mosquitto Broker von Ihrem Rapberry Image. Da wir bereits einige Beispiel-Flows hinterlegt haben, ist der mosquitto Broker in der Eingabemaske hinter dem Feld Server bereits voreingestellt. Setzen Sie nun noch das richtige Topic: iot/button und klicken Sie auf Done.
Ihr Flow ist nun fertig und Sie haben Ihren Embedded-Button in Node RED simuliert. Ihre Änderungen werden wirksam, wenn Sie per Deploy (oben rechts) Ihren Flow nun veröffentlichen. Bei jedem Klick auf den Button Simulator wird Ihr RGB LED Stripe nun die Farbe wechseln.
Node RED bringt von Haus aus eine Vielzahl von Oberflächenelementen mit, die Sie nutzen können, um prototypisch eine Webseite zu gestalten. Node RED generiert dabei die Webseite dynamisch auf Grundlage der verwendeten UI-Knoten. Für alle oben genannten Beispiele bietet eine Webseite mit Informationen abhängig von den Daten des Sensors ggf. einen Mehrwert. Um dies auszuprobieren, müssen Sie Folgendes tun:

  • Fügen Sie einen MQTT in Node zu Ihrem Flow hinzu und subscriben Sie auf das topic Ihres Beispiels (iot/briefgewicht oder iot/outsidetemperature oder iot/anwesenheit/raumbezeichner)
  • Fügen Sie einen text Node zu Ihrem Flow hinzu und verbinden Sie den MQTT in Node mit dem text Node. Ändern sie die Eigenschaften des text Nodes: Group -> Default. Name -> Name ihrer Wahl. Done.
  • Veröffentlichen Sie die Änderungen per Deploy und öffnen Sie die Webseite über IP_des_Raspberry/ui/

Sie haben nun eine Webseite gestaltet, die in einem Textfeld den Payload der jeweiligen Nachricht Ihres Sensors anzeigt. Dafür haben Sie vermutlich weniger als fünf Minuten gebraucht. Der Payload in einem Textfeld ist natürlich nur ein allererster Prototyp einer sinnvollen Webseite. Mithilfe weiterer Nodes und ein klein wenig Javscript- und JSON-Know-how können Sie aber sehr schnell eine sinnvolle Webseite erstellen:

  • Eine Webseite, die die aktuelle Temperatur in Ihrem Garten / Balkon anzeigt, den Verlauf über die letzten fünf Tage in einem Diagramm visualisiert sowie den Zustand Ihres Briefkastens mit einem farblichen Element anzeigt
  • Eine Webseite, die den Belegungszustand sämtlicher nicht buchbarer Räume in Ihrem Büro zum aktuellen Zeitpunkt anzeigt

Sie finden vorgefertigte Flows für diese Webseiten ebenfalls auf unserer oben genannten Landingpage.
Node RED kann allerdings nicht nur Ihren Sensor simulieren und hilft Ihnen, schnell eine Webseite zu erstellen. Node RED ermöglich Ihnen ebenfalls Use Cases zu erweitern, indem Sie eine beliebige API ansprechen und integrieren. Bereits in der Standardinstallation von Node RED haben Sie so die Möglichkeit, mit wenigen Klicks die wichtigsten technischen Kommunikationsprotokolle zu nutzen: MQTT, http / https (damit natürlich auch alles REST Services), TCP, Websockets sowie eine Vielzahl von Adaptern zu bestehenden Systemen (z.B. Twitter, E-Mail, etc.).
Für das Beispiel mit der Außentemperatur haben wir auf der Webseite beispielsweise Vergleichswerte von accuweather integriert, da es hier eine sehr einfache API gibt.
Für Ihre Meetingräume können Sie natürlich auch Ihren Exchange-Server ansprechen und so auch anzeigen, ob die Meetingräume frei, besetzt, frei werdend usw. sind. Anhand dieser Informationen können Sie mit einem RGB LED Stripe zum Beispiel auch im Raum visualisieren, wenn das Meeting bald zu Ende sein sollte (z.B. ein gelbes Blinken 15 Minuten vor Ende).
Wenn Sie Node RED ausprobieren, werden Sie schnell merken, mit welcher Entwicklungsgeschwindigkeit Sie erste Ideen umsetzen und Sensoren und Aktoren sinnvoll mit weiteren APIs integrieren können. Das leichtgewichtige Erstellen von einfachen Weboberflächen hilft enorm, die Prototypen auch für andere erlebbar zu machen. Und gerade das ist wichtig: Sie selber sind schnell begeistert von Ihrer eigenen Idee – aber mit Node RED können Sie testen, ob auch andere die Idee gut finden und nutzen wollen. Das ist ein entscheidender Faktor auf dem Weg vom Prototyping zu Business-Idee: Testen Sie Ihre Prototypen so früh wie möglich mit echten Nutzern und verbessern Sie anhand des Feedbacks.

Wenn ich jetzt noch mein Smartphone nutzen könnte…

Eine Internet-of-Things-Anleitung kann heutzutage nicht ohne den Einsatz eines Smartphones geschrieben werden. Und natürlich sollte man darüber nachdenken, in welcher Form das Smartphone als Aktor oder auch selber als Sensor integriert werden kann.
In den obigen Beispielen kann das Smartphone per Notification den Benutzer darauf hinweisen, dass neue Post im Briefkasten ist oder ein bestimmter Raum gerade frei geworden ist. Genauso kann anstelle eines Anwesenheitssensors in den nicht buchbaren Räumen mit einem Bluetooth-Scanner erkannt werden, ob ein Smartphone im Raum ist – und es somit indirekt als Sensor nutzen.
Das Smartphone hat einige Sensoren, die bereits heute in vielen echten Anwendungsfällen genutzt werden (GPS, Bewegungssensor etc.) und bietet - ähnlich wie Node RED - die sehr einfache Integration komplexer APIs. Sie können alle Funktionen des Smartphones nutzen, die Sie auch bei der bisherigen App-Entwicklung eingesetzt haben. Die Anbindung an die IoT-Welt erfolgt über das Senden und Empfangen von MQTT-Nachrichten mit einer der gängigen Libraries (z.B. https://www.eclipse.org/paho/clients/android/)
Wir haben auf unserer genannten Landingpage eine kleine Demo-Applikation zur Verfügung gestellt, die aufzeigt, wie man ein Android Smartphone an den mosquitto Broker des Raspberry Images anbindet und auf iot/briefgewicht per Notification reagiert, wenn der Inhalt der Nachricht suggeriert, dass neue Post im Briefkasten ist. Des Weiteren haben wir ein Beispiel hinterlegt, wie einfach es ist, den LED RGB Stripe per Sprachsteuerung auf eine bestimmte Farbe zu setzen.

IoT in less than one day

Neugierig geworden? In unserem Hands-on-Workshop zeigen wir, wie einfach es ist, eigene Ideen prototypisch umzusetzen und sie Stück für Stück zu erweitern.

 

 

Wir sind iteratec

Wir sind ein Technologieunternehmen und bieten unseren Kunden die passenden Lösungen für komplexe Probleme – vom Geistesblitz bis zum digitalen Produkt. Wir sind leidenschaftliche Technologen und wollen mit hochwertiger Software Mehrwert für Menschen schaffen. Wir entwickeln individuelle Softwaresysteme, gestalten große Systemlandschaften und übernehmen technologische Führung. Richtungsweisende Unternehmen vertrauen uns seit über 20 Jahren herausfordernde agile Projekte an.