Webapp mit Node-Red – Ali Karaman und Moritz Scheer

Das erste Gruppentreffen wurde damit verbracht, Ideen zum Projekt und deren Komponenten zu sammeln. Darunter ebenfalls, wie die Web-App programmiert werden soll. Wichtige Fragen, die vorher geklärt werden müssten sind, welche Plattform wäre geeignet oder reichen die bisherigen Programmierkenntnisse dafür aus. Vorschläge waren zum Beispiel, eine App mit Java programmieren oder eine App für Android zu entwickeln. letztendlich war die komplette neu Programmierung einer App mit Java etc. mit einem zu hohen Zeitaufwand verbunden. Ebenso ist der Komplexität zu hoch. Daher wurde eine angenehmere und Zeitsparende Variante verwendet, eine Webapp mit Node-Red. Obwohl schon Videos über Node-Red in der Courseware hochgeladen wurden, war die Einarbeitung sperrig. Zu Anfangs gab es Probleme mit der Installation und der Anwendung, welche dennoch schnell gelöst haben. Zum Anfang wurde eine klare Struktur von der Webapp erstellt, wie das Endprodukt am Ende aussehen soll. Mit Brainstorming wurde nach Ideen gesucht, die im laufe des Projekts umgesetzt werden sollen.

Eine der Ideen war es, ein Schalter einzustellen, welcher die Heizungsschaltung auf manuell oder automatisch stellen kann. Der Schalter wurde mit einem Switch vom Dashboard Plugin dargestellt. Dieser gibt einen Boolean Wert aus, welcher mit einer True oder False Bedingung abgefangen wird. Ist der Switch eingeschaltet, dann ist die Nachricht True und der obere blaue Kasten wird ausgeführt. Wenn dies der Fall ist, werden die manuellen Eingabefelder Ausgeblendet (Anhang 2.) Mit dem Change Node (automatic & manuel) kann ein JSON Command eingefügt werden, der die beiden Eingabefelder (Regler und Ziffernfeld) verschwinden lassen kann und wieder Einfügen kann. UI Control wird dabei benötigt, um dies Umzusetzen. Ebenso wird bei True der Wert auf 100 gesetzt und an den Arduino geschickt. Dieser stellt die Eingabe auf Automatisch im Code. Wenn der Schalter aus ist, werden die manuellen Eingabefelder eingeblendet und es wird der Wert 200 and den Arduino geschickt.

Als nächstes musste die manuelle- und automatische Eingabe, die Ausgaben und die Anzeigen auf der Webapp entwickelt werden. Dafür wurde einen Input Node für die automatische Eingabe eingefügt. Dieser empfängt die Temperatur vom Arduino und gibt den weiter an die Anzeigen auf der Webapp. Der Repeat Node empfängt die Nachrichten und gibt diese jede 100 Millisekunden weiter, bis die nächste Nachricht eintrifft. Um eine Art Livedarstellung darstellen zu können war das die beste Lösung. Die manuelle Eingabe war schwieriger zu gestalten da zwei Inputs vorhanden waren. Zum einen ein Regler, der die Temperatur von 5 bis 28 Grad ausgeben kann und zum anderen ein Ziffernfeld, welcher die Zahlen 0 bis 5 ausgibt. Dabei ist das Intervall fürs Ziffernfeld so eingestellt, wie die Zahlen auf der Heizungssteuerung. Was sich dennoch als Herausforderung herausgestellt hat, ist, dass beide Inputs verbunden sein sollen. Würde man an dem Regler die Zahl ändern, so soll sich auch das Ziffernfeld ändern in dem entsprechenden Zahlenintervall. Daher wurde eine Loop einbaut mit zwei Funktion Nodes. Die Funktion Nodes rechnen die Intervalle um in das Andere Zahlenformat. Also Zum Beispiel von der Stufe 5 auf die Temperatur 28. Um diese Loop zu Terminieren sammelt der Trigger 100 Millisekunden alle Nachrichten und gibt die letzte weiter. Da nur die gleiche Nachricht ankommt ist egal welche Nachricht das ist, es ist nur wichtig, dass eine Nachricht weitergegeben wird. Die Nachricht wird weiter an die Anzeigen geschickt und an einen weiteren Trigger, der jede 10 Sekunden die letzte Nachricht ausgibt. Um zu verhindern, dass der Motor nicht hinterher kommt mit mehreren Eingabe in kurzer Zeit, hat der Arduino 10 Sek Zeit eine Nachricht bis die letzte Nachricht abgeschickt wird.

Ebenso wurde ein Sicherheitsmechanismus eingebaut. Wenn der Motor Probleme macht oder zu Weit dreht und somit das gesamte System kaputt gehen kann, wird eine Art von Sicherung benötigt, der den Motor stoppt. Um diese Funktion auszuführen wurde ein Switch eingefügt. Wie oben öffnet sich ein Fenster, wenn die Bedingung True ist und schließt, wenn die Bedingung False ist. Ebenso wird bei True ein Wert von 1000 an den Arduino gesendet und bei False der Wert 2000. Bei True der Motor gestoppt vom Arduino und zusätzlich noch ein Message Box angezeigt im Fenster mit der Nachricht: Status Motor                 Stopp

Anhang 1. Standartanzeige

Anhang 2. Anzeige, wenn Input auf Automatisch umgestellt ist

Anhang 3. Anzeige, wenn der Notstopp Schalter umgelegt wurde.

Categories:

Tags:

No responses yet

Leave a Reply

Your email address will not be published. Required fields are marked *