IoT Workflows: Apache Nifi mit MQTT/Cassandra (3)
This is a modal window.
The media could not be loaded, either because the server or network failed or because the format is not supported.
Formal Metadata
Title |
| |
Title of Series | ||
Number of Parts | 8 | |
Author | ||
License | CC Attribution - ShareAlike 4.0 International: You are free to use, adapt and copy, distribute and transmit the work or content in adapted or unchanged form for any legal purpose as long as the work is attributed to the author in the manner specified by the author or licensor and the work or content is shared also in adapted form only under the conditions of this | |
Identifiers | 10.5446/64634 (DOI) | |
Publisher | ||
Release Date | ||
Language |
Content Metadata
Subject Area | ||
Genre | ||
Abstract |
| |
Keywords |
00:00
Computer animation
05:26
Computer animationProgram flowchart
06:39
Computer animation
07:10
Computer animation
07:28
Computer animation
10:18
Computer animation
10:44
Computer animation
11:21
Computer animation
11:54
Computer animation
Transcript: German(auto-generated)
00:05
Zur Einordnung zeige ich Ihnen jetzt verschiedene Demonstratoren, die mit diesem Workflow auch zu tun haben. Der ist so eine gewisse zentrale Ausbauplattform für diese verschiedenen Demonstratoren gewesen, weil wir sie alle schon zum Laufen gebracht haben, nicht sie.
00:21
Aber das habe ich mit Studenten in Vorprojekten gemacht bzw. selber in diversen Projekten umgesetzt. Und das benutze ich halt auch, um in anderen Kursen Menschen zu zeigen, was geht und sie anzuleiten, so wie wir das jetzt hier machen.
00:40
Also erst einmal eine Übersicht zu den Demonstratoren, mit denen wir uns hier geistig im Energie 4.0 Kontext beschäftigen. Drei davon basieren auf einfach zu beschaffenen und zu benutzenden Bauelementen und einem Arduino bzw. einem ESP8266, der halt über WLAN Daten schicken kann. Demonstrator 1, das ist der, den ich Ihnen ganz am Anfang gezeigt habe.
01:05
Energie 4.0 Demonstrator, Kompressoren mit Likage. Den Kapitel 1 habe ich Ihnen vorgestellt. Der hat einen ESP8266, Raspberry Pi bzw. Laptop. Alle sind im gleichen WLAN Netz und tauschen Daten. Also der schickt zwischen den einzelnen Geräten über WLAN.
01:21
Man kann ihn auch über das Internet schicken lassen in die weitere Welt, aber das ist dann eigentlich auch nur eine Randnotiz. Demonstrator 2, Energie 4.0 Power to Gas to Power. Die kleine Variante, die ich da aufgebaut habe, die zeige ich Ihnen dann in Fotos zumindest hier. Das können wir, wenn das ein Hybridsemester ist und nicht im Präsenzteil läuft, nicht live machen, sonst schon.
01:48
Elektrolyse- und Brennstoffzelle in einer kleinen PEM-Zelle. Messungen über den Arduino und ganz simpel hier erst einmal nicht über WLAN Großfunk, USB-Kabel nehmen, Laptop nehmen. Ein Matlab-Skript sendet in einer Schleife auch noch Datum und Uhrzeit und Messwert.
02:03
Also das hier als Datenproduzent haben wir nicht so viel zu programmieren, ganz einfach. Man kann das gut austesten. So einen Arduino haben die allermeisten irgendwie da und der ist auch simpel zu beschaffen. Und man kann mit einem Laptop, Matlab und Arduino recht schnell ansehnliche Ergebnisse produzieren. Demonstrator 3, rudimentär mit echten Datentesten. Die Abwandlung von Demonstrator 2.
02:24
Wir nehmen nur eine einfache Schaltung mit Fotowiderstand zur Helligkeitsmessung, statt hier gleich Elektrolyse- und Brennstoffzelle laufen zu lassen. Tut es auch, es sind aber echte Daten. Demonstrator 4 ist eine Abwandlung von 3, wird im Praktikum benutzt, jedenfalls solange sie da nicht was echtes anschließen können oder wollen.
02:41
Ohne Arduino, das Matlab-Skript sendet in einer Schleife Datum, Uhrzeit sowie einen gefakten Messwert, den wir einfach selber eintragen. Sie sehen aber, wenn Sie das da unten beherrschen, ist es eigentlich nur eine Frage Ihrer Kreativität, wie Sie entsprechend die Hardware an den Start kriegen. Das Grundlegende, das ist das, was ich Ihnen gerade im Anfang gezeigt habe,
03:04
dass wir mit MQTT Daten empfangen können und weiterleiten können an die Cassandra. Und dass wir irgendwie über MQTT auch noch Daten losschicken. Und das ist das, was wir im Praktikum machen, dass Sie live wirklich Daten schicken können. Dieser entsprechende Demonstrator ist auch in der Lage, mit dem über das Internet zu arbeiten,
03:20
über irgendwelche Server, die im Ausland stehen, Daten zu schicken. Den Software-Teil können Sie damit bereits gut testen. Hier nochmal zur Einordnung. Demonstrator 1 ist ein Beispiel für Edge-Computing. Also da gibt es ja wirklich eine sehr kleine Fischertechnik Hardware, aber was was kaputt geht und was man dann vermessen kann, wo man reagieren könnte und so weiter.
03:42
Demonstrator 2 ist von der Anwendung her geändert. Reversible PEM-Zelle, übers Internet beschaffbar. Schaltung zu messen ist simpel, aber es ist eine andere Anwendung einfach, die ich sage mal einfacher aufzubauen ist, wenn man sich die entsprechenden Bausätze beschafft. Die Hardware ist eine einfache Arduino-Mikro-Plattform.
04:03
Da haben wir nichts gelötet und nichts. Software, Matlab, Arduino Add-on, MNC, Workflow. Also an diesen Stellen ist das vereinfacht, wirklich mit dem hier oben zum Testen, zum selber aufbauen. Wer hier oben diesen Weg nicht gehen mag, der kann in Demonstrator 3 eine Vereinfachung von zwei machen.
04:21
Die Anwendung ist nämlich einfacher. Also hier das, was ich hier messe, ist noch viel simpler und günstiger zu beschaffen und zu stecken. Und Demonstrator 4 ist dann der rudimentäre Workflow-Test. Das ist Vereinfachung von drei reine Softwarevarianten, um die Softwarevariante zu entwickeln und zu testen. Und so könnten Sie sich dann halt wieder zum schwierigeren Demonstrator hochhangeln mit der Zeit,
04:45
um, ich sage mal, etwas sinnvollere, komplettere Workflows zu testen. Für den Softwareteil reicht Demonstrator 4, mit dem wir uns hier jetzt erstmal beschäftigen. Zu Demonstrator 1 und so weiter habe ich noch ein paar Hinweise.
05:02
Diesen Aufbau hat mir in Kapitel 1 als Beispiel zum Edge Computing gezeigt. Messdaten werden über den ESP-Baustein per MQTT über WLAN an einen Raspberry- beziehungsweise Laptop geschickt. Und da könnten Sie zu externen Rechnern geschickt werden. Wenn man die entsprechenden WLAN-Netzepassen konfiguriert, dann ist das gar kein Problem und sendet hier echt.
05:25
Demonstrator 2 habe ich Ihnen ein paar Bilder mitgebracht. Das Workflow-Bild haben Sie schon gesehen. Hier kommt jetzt der MQTT-Prozessor zum Tragen. Der entsprechende Sensor, der hier schickt, wird über einen Arduino ausgelesen
05:41
und über Laptop mit Matlab-Statten im Ethernet-Shield und so weiter wird das hier losgeschickt. Also hier werden über MQTT-Daten losgeschickt, die hier ankommen. Und der Output kann einfach erstmal in Matlab weiterverarbeitet werden. Wie sieht das hier aus? Hier hätten Sie Batterien oder PV-Zellen.
06:02
Hier ist die reversible Brennstoffzelle. Da kann eine Last dran sein, eine Spannungsmessung. Der Arduino nimmt das entsprechend auf und schickt das hier los an den Workflow. Man kann Elektrolyse hier zum Beispiel testen, Aufbau zum Laden der Tanks, Wasserstoff und Sauerstoff entstehen und sich dann die Zeiten angucken und angucken, wie schnell denn hier eigentlich diese Speicher sich irgendwie füllen.
06:26
So sieht so eine kleine Zelle, die Sie aus diesen handelsüblichen Bausätzen beschaffen können, aus. Und dauert ein bisschen, nach ca. 3 Minuten hat man dann hier schon mal 15 ml Wasserstoff.
06:41
Spannungsmessung einer Brennstoffzelle. Jetzt nicht mehr Elektrolyse, sondern jetzt lassen wir sie in der Tat laufen, da mehr Wasserstoff jetzt erzeugt in der Elektrolyse. Jetzt wollen wir das in der Brennstoffzelle wieder verfrühstücken. Ein wirklich sehr trivialer Last, ein ganz einfacher Motor, den ich hier nur in diesen Kasten gestopft habe. Das ist eigentlich ein Spielauto, das so rumfahren kann, aber das ist total öde.
07:01
Also kann man hier auch gleich mal die Last so laufen lassen. Der Arduino kann auslesen und eine Spannungsmessung machen, wie denn eigentlich der Spannungsabfall über die Zelle ausschaut. Dann gibt es einen Aufbau mit Spannungsteilung. Der Fotowiderstand, der hier irgendwo gezeigt ist, der ist nicht aktiv. Die kleine Schaltung wird auch für den anderen Demonstrator benutzt, daher ist er hier schon ergänzt.
07:24
Und dann gibt es irgendwelche LEDs, die hier auch nicht notwendig sind. Es ist also nur ein bisschen Schaltung, nicht so viel. Das Matlab-Skript, für diejenigen, die es interessiert, säht dann etwa so aus. A gleich Arduino. Wenn man das add-on installiert hat, kann man das machen. Dann sagt man halt, wo der entsprechende Pin ist, an dem ich auslesen kann.
07:44
VIN, Widerstandswert usw. Und dann ziehe ich mir die Daten. Read Voltage in der Schleife. Es wird umgerechnet, passend umgesetzt, dass ich mir was plotten und auch einen Wert schicken kann. Date Time wird ausgelesen.
08:02
Ich ziehe mir den Tag, die Sekunden, die Millisekunden, alles, was ich so haben will. Und schicke das dann hier los. Hier wird ein Voltage-Wert geschickt. Hier wird ein Wert für Sekunde und Millisekunde geschickt. Also feiner ist das hier erstmal nicht, reicht aber auch.
08:22
Und da wird ein String zusammengebaut, in diesem hässlichen Etwas. Und das hier ist ein String, der dann sagt, was denn mit den Messwerten geschehen soll. Sie sollen nämlich über Moskito losgeschickt werden. Und dann mache ich ein System Call über Matlab, also sehr rudimentär. Warum benutze ich überhaupt Matlab?
08:42
Um trivial, wenn man ein Arduino hat, ihn einfach auszulesen, um auch noch Sekunden und Millisekunden automatisiert hinzuzufügen. Also wirklich einen Zeitstempel zu erzeugen. Und dann kann ich dieses Ding hier los schicken. Grüne und blaue Zeilen im entsprechenden Matlab-Skript in den Praktikumsfolien,
09:02
das ist ja hier nur in der Übersicht, werden dann nochmal gezeigt. Und auch wie das dann ausschaut, könnte man sich dann in der Tat für einen der Demonstratoren angucken. Was hier dann passieren würde oder bei meiner Meinung nach passiert ist, Beispiel auf der Messreihe kommt dann raus, es gab ja auch einen Plotbefehl da drin, die zeigt deutlich den schnellen Spannungsabfall bei dem nur wenig gefüllten Wasserstofftank.
09:22
Beim Anschluss des Motors, der läuft nur in der Luft, aber da dauert nicht allzu lange. Und dann ist vorbei damit nach einer Minute oder so. Ein paar Bemerkungen noch. Die Daten würden in der Cassandra liegen und könnten von dort abgeholt und analysiert werden. Später sehen wir dazu auch noch ein Tool namens KNIME. Weitere Läufe mit verschiedenen Ladezuständen, Brennstoffzellen,
09:42
Verbrauchern können unternommen und später verglichen werden und so weiter und so weiter. Das Beispiel lasse ich natürlich ausbauen. Gibt Ihnen aber in Idee, wie Sie selber halt auch mit Messdaten arbeiten können hier einfach. Und noch etwas rudimentärer mit echten Datentesten, Demonstrator 3. Ähnlicher Aufbau, aber hier auf der Seite haben wir jetzt nur noch eine Messung
10:02
über einen einfachen Fotowiderstand. Sehen Sie es mir nach, wenn ich so ein Ding verwende, Sie können natürlich auch hier kreativ sein und dieses Element, was man jetzt so nicht mehr nutzen soll, anderweitig tauschen. Gleiches Prinzip hier auf dieser Seite, aber die Messung ist rudimentärer. Aufbau mit Spannungsteilung, der Fotowiderstand muss noch aktiviert werden, klar.
10:24
Also jetzt hier mit reingenommen werden und dann gibt es eine LED als Startungsanzeige und die andere wird genutzt, um eine Beleuchtung bei Dukelheit anzudeuten. Also der Fotowiderstand und eine Regelung der Helligkeit kann ich auf die Weise gestalten. Ich kann den Fotowiderstand abdecken und dann soll eine Lampe im Haus
10:41
irgendwo heller werden und so und umgekehrt. Na gut, kann sich selber vorstellen. Ich habe Ihnen die Schaltung einfach mitgebracht, wenn Sie sie nachbauen wollten. Ganz rudimentär gehalten. Und dann sendet Matlab schon wieder Messdaten via Moskito. Ein bisschen ähnlich, wie Sie das eben gesehen haben, hier ein bisschen anders vielleicht.
11:01
Das hier haben wir eben schon gesehen, wie das aussehen würde. Jetzt sind es eben, eigentlich hat sich hier gar nicht so viel getan, entsprechend wieder Read Voltage und ein passendes Verschicken des Wertes. Nur hier heißt es jetzt Brightness, was nach einer Umrechnung geschickt wird. Also ich versuche mir dann ein Helligkeitswert noch auszurechnen, statt die Spannung zu verschicken.
11:23
Und so würde so ein laufender Workflow ausschauen. In der Cassandra kann ich mir loggen, dass da in der Tat etwas ankommt. NIFI ist geschwätzig und sagt, dass es das gibt. Und hier gibt es die entsprechenden Infos von dem MQTT Broker. Und ich kann mitlesen, dass über MQTT in der Tat auch Werte ankommen.
11:42
Sensor ID, Brightness, Second, Miliseq. Das ist eine Überwachung von MQTT auf der Konsole für Daten, die geschickt werden und die hier landen.