Unsere Blaupausen - Schnellstart in die Welt des IoT

Digitalisierung - Einfach machen

Die folgenden einfachen Anwendungsbeispiele verdeutlichen die Möglichkeiten unserer Plattform und sollen eigene Projektideen inspirieren.

Nach Inbetriebnahme und dem obligatorischen "Blinken" eines Neopixels interagieren wir mit dem ersten "Ding" aus der realen Welt. Hierzu bauen wir einen Lügendetektor, der mit dem Anwender über den menschlichen Hautwiderstand verbunden ist. Das gleiche Programm, verknüpft mit einem externen Sensor, fungiert als Lärm- oder CO2-Ampel fürs Klassenzimmer. Über die Messung von Umweltdaten, einem ersten Webserver, bis hin zu Cloud-Anwendung ist alles dabei.

Sofort loslegen

Schnellstart: Octopus anschließen und einrichten

Quickstart

Quickstart, Verkabelung

Die IoT-Werkstatt bietet eine fertig konfigurierte Arduino-Umgebung für das Octopus-Board als ZIP-File (s. Downloads).

Das ZIP-File auspacken und auf dem eigenen Rechner (Windows 7/8/10) kopieren. Dabei unbedingt einen kurzen Verzeichnispfad wählen, z.B. c:\IoTW\...

PC und Octopus-Board mit dem USB-Kabel verbinden. Das Betriebssystem des PCs sollte das USB-Interface automatisch erkennen und einen virtuellen COM-Port vergeben. Die Nummer des COM-Ports merken wir uns (hier COM143). Haben wir die Windows-Meldung verpasst, so können wir den Port im Gerätemanager unter Anschlüsse als Silicon Labs CP210x identifizieren[1].

Arduino Umgebung starten (Doppelkick auf c:\IoTW\IoT-Werkstatt.bat) und den COM-Port dort unter „Werkzeuge“ -> „Port“ anwählen (hier COM143).

IoT-Ardublock starten („Werkzeuge“->“Ardublock“) und das erste kleine Programm ein­geben. Das Neopixel-Symbol findet sich auf der linken Seite unter unter Anzeigen/Aktoren.

Programm per „Hochladen auf den Arduino“ an den Octopus übertragen. Unser Neopixel leuchtet rot.

[1] In seltenen Fällen muss der Silicon Labs – Treiber manuell installiert werden. Die notwendigen Treiber-Bibliotheken finden sich unter https://www.silabs.com/products/mcu/Pages/USBtoUARTBridgeVCPDrivers.aspx

Sensorik: Lärmampel und Lügendetektor

Lügen oder Lärm - ein Programm für alle Fälle

Lärmampel zur Interaktion mit der Umwelt

Analog-Digital-Wandler: Unsere Verbindung zur analogen Welt

Bisher wurden die Neopixel als Anzeige zur Interaktion mit der Umwelt genutzt. Unser Board verfügt daneben aber auch über eingebaute Sensoren. Als einfachster Vertreter sei hier exemplarisch der Messeingang für analoge Spannungen genannt. Die an den mit A0 beschrifteten Kontakten anliegende Kleinspannung wird durch einen Analog-Digital-Wandler (ADC) in einen proportionalen Zahlenwert umgewandelt. In unserem Fall hat der ADC eine Auflösung von 10 bit, was bedeutet, dass unser Messbereich von 0 bis 3 V in die Zahlenwerte 0 bis 210-1 umgewandelt wird. Das entsprechende Puzzleteil (analogRead) zum Einlesen des Zahlenwertes finden wir auf der linken Seite im Baukasten für Sensoren.

Sensoren: Die Sinnesorgane des Octopus

Sensoren sind Bauteile, die eine physikalische Größe in eine Kleinspannung wandeln. Diese läßt sich dann mittels analogRead-Puzzleteil erfassen. Schließen wir an der Grove-Buche A0 z.B. einen Loudness-Sensor an, so können wir so die Lautsärke im Klassenzímmer messen.

Kontrollstrukturen: Ein Befehl für den Fall alle Fälle

Je nach Lautstärke und damit Zahlenwert des ADC schalten wir unser Neopixel nun auf grün, gelb oder rot. Dabei muss unser Programm in Abhängigkeit des Zahlenwertes unterschiedliche Befehle aufrufen. Dieses gelingt mittels der Konrollstruktur "Falls ... dann ... sonst ...". Konrollstrukturen lassen sich auch schachteln und bilden so ein mächtiges Werkzeug bei der Ablaufsteuerung von Programmen. Neben der Fallunterscheidung gibt es auch die Wiederholungsschleife, die unser Kit  z.B. mehrfach blinken läßt.

Print-Befehl: Testaugaben erleichtern die Entwicklung

Je nach Verstärkung des Mikrofons kann der Messwert individuell verschieden ausfallen. Idealerweise verfolgen wir den aktuellen Messwert deshalb über eine Ausgabe auf dem Seriellmonitor. Dazu dient der println–Befehl im Baukasten Kommunikation.Zum Fenster des Seriellmonitors gelangen wir über die Menü-Taste oben rechts in der Arduino-GUI oder im Ardublock-Fenster.

Lügendetektor: Auch ohne Sensor, Hautfeuchte entscheidet

Die Kontaktbelegung des IoT-Kits bietet schon von Hause aus die einfache Möglichkeit, auch ohne Sensor eine Spannungsänderung am analogen Eingang zu provozieren. Dazu brauchen wir nur den Finger auf die Bananenstecker-Kontakte auf der linken Seite des IoT-Kits zu legen. Unser Finger sorgt dann für eine leitfähige Verbindung zwischen A0 und den darunter anliegenden 3 V-Kontakt. Je nach Hautfeuchte und Kontaktdruck kann der Messwert so in weiten Grenzen schwanken. Berücksichtign wir die Tatsache, dass der Mensch beim Lügen unbewußt unter Streß gerät und schwitzt, haben wir so einen ersten primitiven Lügendetektor gebaut.

 

Web-Server: Umweltdaten im Browser

Datenerfassung mit Web-Seite

Web-Browser zur Anzeige der Umweltdaten

Umweltsensoren: BOSCH BME 280/680

Am Umwelt-Campus liegt ein ein Schwerpunkt der Sensorik natürlich bei der Erfassung von Umweltparametern. Hierzu hat der Octopus schon einen leistungsfähigen Sensor auf der Platine integriert. Der BME 280 erfasst Lufttemperatur, Luftfeuchte und Luftdruck und ermöglicht so viele interessante Umweltanwendungen ganz ohne externe Komponenten. Neuste Modelle nutzen den großen Bruder des BME 280 und sind sogar in der Lage, Gerüche aus der Umwelt wahrzunehmen. Ein schönes Beispiel zur Geruchserkennung von Getränken findet sich auf der Seite Inspiration für Fortgeschrittene.

WLAN: jetzt kommt das Internet ins Spiel

Da wir über ein internetfähiges Kit verfügen, wäre es doch toll, wenn wir die erfassten Messwerte nicht nur lokal am Neopixel anzeigen, sondern per Web-Interface vom Handy aus ändern könnten. Dazu werden wir mit wenigen Programmzeilen einen eigenen HTTP–Server implementieren und per Internet-Browser darauf zugreifen. Alles was wir programmtechnisch brauchen, sind zwei Puzzleteile aus dem IoT-Modulbaukasten. Mit dem ersten Supermodul aus dem Werkzeugkoffer Internet-Zugang erstellen wir einen eigenen WLAN-Accesspoint mit dem Namen "MeinOctopus" und dem Passwort "MeinPasswort". Der zweite Superblock aus dem Werkzeugkasten HTTP-Protokoll realisiert schließlich den Webserver.

Verbindung ist alles: Web-Browser zur Anzeige

Mit diesem kleinen Programm haben wir den ersten eigenen Web-Server realisiert und einen lokalen WLAN-Accesspoint aufgesetzt. Melden wir unser Smartphone oder unser Notebook an diesem Accesspoint an, so können wir im Browser die (lokale) Internet-Adresse (192.168.4.1) des Octopus als URL eingeben und sehen, wie sich unsere aktuellen Messdaten ändern. 

 

 

 

 

 

 

 

Forschungsschiff: Sende Messdaten in die Cloud

Die Cloud hilft uns Energie zu sparen

Ardublock Programm

Rund um die Uhr verfügbar

Unser Web-Server hat (neben Sicherheitsaspekten) einen gravierenden Nachteil: Um aus der Ferne an unsere Messdaten zu gelangen, muss der Octopus (Web-Server) rund um die Uhr in Betrieb sein. Andernfalls schlägt der Zugriff auf die Octopus-Homepage mit dem Browser fehl. Damit sind mobile Anwendungen (ohne Netzanschluss zur Energieversorgung) praktisch ausgeschlossen.

Gönnen wir uns doch eine Pause

Besser wäre es, wenn wir zur Datenspeicherung einen hochverfügbaren (24/365) Dienst im Internet nutzen könnten. Hierzu existieren verschiedene Cloud-Plattformen praktisch aller großen Internet-Anbieter. Mit Thingspeak verwenden wir eine auch als Open-Source Variante installierbare Anwendung, die sich notfalls auch als Edge-Cloud auf einem Raspberry Pi betreiben läßt.

Unser Arduino-Programm wird damit sehr übersichtlich: Im Setup stellen wir über einen bestehenden WLAN-Accesspoint eine Internetverbindung her. Anschließend erfolgt die zyklische Messdatenerfassung und der Transfer zum Thingspeak-Server in die Cloud.

Und sparen Energie

Im Falle eines mobilen Einsatzes nutzen wir die deep-sleep Eigenschaft des ESP zum energiesparendem Warten zwischen den Messzeitpunkten. Hierzu ersetzen wir den einfachen "Warte" Befehl durch den systeminternen "deep sleep" welcher den Stromverbrauch beim Warten auf unter einem mA reduziert.

Das Ergebnis läßt sich jederzeit sehen

Auch wenn sich der Octopus als Client-Anwendung im Tiefschlaf befindet, lassen sich die bisher gespeicherten Umweltdaten jederzeit mit einem normalen Web-Browser beim Cloud-Dienst abfragen. Als Beispiel dienen hier die anläßlich der Summer-School  „IT-Fundamentals of National Park Monitoring“  aufgenommenen Daten eines künstlichen Ecosystems (DIY-ECOTRONS).

 

 

Internet of Everything: Octopus trifft IFTTT, MQTT und Alexa

Verteilte Systeme bieten großen Mehrwert

Ablauf der Kommunikation mit Alexa

Ein abschließendes Beispiel verdeutlicht die enormen Möglichkeiten, die uns ein Zusammenspiel verteilter Systeme im Internet bietet. Einfach die Cloud-Dienste nutzen, um vermeindlich komplexe Aufgaben schnell zu realisieren. Unsere Aufgabe: Wir wollen das IoT-Kit per Alexa-Sprachbefehl fernsteuern und damit die Farbe des Neopixels festlegen. Analog dazu könnte Alexa auch einen digitalen Ausgang schalten (und über ein Relais auch das Garagentor öffnen/schließen, die Waschmaschine oder die Kaffeemaschine steuern). Aber dazu Schritt für Schritt:

IFTTT: Das Schweizer Taschenmesser in der Cloud

Zentrales Element bildet eine Anwendung zur Verknüpfung unterschiedlicher Dienste: IFTTT (If...this…then…that) bietet die Möglichkeit, Geräte und Programme verschiedener Hersteller über einfache Regeln zu koppeln. Von der smarten Kaffemaschine über die Lichtsteuerung, Twitter, Musikdienste und Smartphone ist so ziemlich alles aus der Konsum-Welt dort versammelt. Einfache App-Services der Form "Wenn ... dann ..." verknüpfen Ereignisse (Trigger) mit Anweisungen (Action). Beispielsweise kann der Eingang einer mail eines bestimmten Absenders (Trigger) dafür sorgen, dass die Wohnzimmerbeleuchtung grün blinkt (Action). Vermeindlich komplexe Programmieraufgaben werden so mit wenigen Kicks gelöst. Unserem Octopus genügt übrigens ein weiterer IoT-Superblock, um mittels App-Service "Webhooks" in der IFTTT-Welt mitspielen zu können. Denkbare Anwendung ist ein Frostwächter, der bei Unterschreitung eines Grenzwertes bei der Temperaturmessung sofort eine VoIP-Nachricht an unser Smartphone beauftragt und uns so beruhigt in den Winterurlaub fahren läßt, während der Octopus zuhause die Funktion der Heizung überwacht. Ein entsprechendes Beispiel findet sich in Form der Zimmerpflanzenüberwachung in den Blaupausen im Downloadbereich. 

MQTT: Das Protokoll der Profis

Unserer Alexa-Fernsteuerungsproblems können wir aber noch viel eleganter lösen: Eine weitere Cloud-Anwendung mit IFTTT-Anschluss ist der MQTT-Broker von Adafruit. Im Unterschied zum bereits bekannten Thingspeak verwendet MQTT ein sogenanntes Publisher/Subscriber-Prinzip zur Kommunikation. Hier lassen sich Messdaten speichern (Publisher), aber auch Messkanäle (Topics) abonnieren (Subscribe). Im letzteren Fall informiert der Broker alle angemeldeten Geräte automatisch über das Eintreffen eines neuen Messwertes. Der Vorteil liegt auf der Hand: Ein entsprechender IoT-Superblock beim Octopus sorgt dafür, dass wir jede neue Nachricht für ein bestimmten Messkanal (Topic) sofort mitbekommen. Wenn wir im IFTTT den Versand einer Nachricht mit der gewünschten Neopixelfarbe an den MQTT-Broker in Auftrag geben (Action), kann der Octopus sofort reagieren.  

Alexa

So gerüstet ist es nur eine Kleinigkeit um Alexa ins Spiel zu bringen: Auch Alexa besitzt einen IFTTT-Service. Hier können wir den Trigger so konfigurieren, dass ein Sprachkomando der Form "Alexa trigger Octopus grün" sofort eine Tachricht mit dem Inhalt "grün" an den Broker sendet. Hat sich auch der Octopus per Subscribe beim Broker abonniert, so wird die Nachricht vom Broker direkt an den Octopus weitergeleitet. Im Subscribe-Superblock erfolgt die Auswertung des Nachrichteninhalts (Payload) und schließlich die Änderung der Neopixelfarbe.

Fazit: Die Kraft der drei Dienste

Durch geschickte Kombination von Cloud-Diensten gelangen wir ohne großen Programmieraufwand zu einem neuen innovativen Use-Case. Wie wäre es mit dem Bau einer sprachgesteuerten Cocktailmixmaschine?  

 

 

Video: Lärmampel Classic

Funktionsdiagramm Lärmampel

Bitte beachten Sie: Sobald Sie sich das Video ansehen, werden Informationen darüber an Youtube/Google übermittelt. Weitere Informationen dazu finden Sie unter Google Privacy.

Weitere Vorlagen für eigene kreative Ideen:

Nun haben wir das Rüstzeug, um eigene Anwendungen z.B. im Smart-Home zu realisieren. Der Überwachung von Keller, Pferdestall & Co. oder die Fernsteuerung der alten analogen Kaffeemaschine rücken in greifbare Nähe. Die Blaupausen im Downloadbereich beschreiben hierzu weitere Anwendungen.

  • Im Projekt „digitale Flaschenpost“ senden wir eine Nachricht an unseren Web–Server, der sich dabei in einer Flasche befindet. Hierdurch lernen wir, wie eine einfache HTML-Seite zur Eingabe der Nachricht aufgebaut ist. Die Ausgabe der Nachricht nutzt eine Matrixanzeige. Ziel: Wir lernen eine Kommunikationsstrecke aufzubauen, welche wir für unser späteres Forschungsschiff benötigen. Mehr: Sicherheit ist für IoT wichtig, am Hackathon schauen wir bei den anderen Teams vorbei, welche IP Adresse nutzen die? Können wir Nachrichten an deren Flasche senden?
  • Im Projekt „Forschungsschiff informiert sich“ holen wir Wetterinformationen für unseren Standort aus dem Internet. Ziel: Technische Systeme kommunizieren untereinander. Mehr: Welche weiteren nützlichen Informationen werden angeboten (Zugverspätungen, Staumeldungen, Aktienkurse). Welche Alternativen zum WLAN gibt es (UMTS, LoRa).
  • Im Projekt „Forschungsschiff greift ein“ schauen wir uns eine komplexere regelungstechnische Anwendung an. Wir nutzen Regeln (Wenn Das Dann Tue Dies) und binden ohne Programmierung unser Smartphone in die Anwendung ein. Ziel: Nun geht es um den Mehrwert der Idee, wie kann ich diese im Alltag nutzen, wie kann ich diese an meine Bedürfnisse anpassen (was soll passieren, wenn die Luftfeuchtigkeit im Keller zu hoch ist?) Mehr: Wie kann ich weitere Dienste des Internets einbinden? (Twitter: wenn das Eichhörnchen eine Nuss aus der Futterstation entnommen hat).
  • Im vorletzten Projekt „Wearables“ verwandeln wir die Flaschenpost in ein tragbares Kleidungsstück.  Ziel: Mobile Verwendung. 

Die komplette Sammlung findet sich im PDF unter Downloads auf der rechten Seite.

Und wem das nicht reicht:100 weitere Ideen warten!

News

IoT-Werkstatt für Schüler

Schüler und Schülerinnen des Göttenbach-Gymnasiums Idar-Oberstein zu Besuch am Umwelt-Campus

Weiterlesen

IoT für den Mittelstand

IoT-Pilot: digitale Geschäftsmodelle anfassbar machen, Workshop am UCB

Weiterlesen

Workshop für Macher

Weiterlesen

Make IT Now!

IoT-Werkstatt auf dem Fernsehturm in Stuttgart

Weiterlesen

Ansprechpartner

Prof. Dr. Klaus-Uwe Gollmer
Prof. Dr. Klaus-Uwe Gollmer
Professor FB Umweltplanung/-technik - FR Informatik

Kontakt

+49 6782 17-1223
+49 6782 17-1317

Standort

Birkenfeld | Gebäude 9917 | Raum 30
Prof. Dr.-Ing. Guido Dartmann
Prof. Dr.-Ing. Guido Dartmann
Professor FB Umweltplanung/-technik - FR Informatik

Kontakt

+49 6782 17-1727

Standort

Birkenfeld | Gebäude 9917 | Raum 146