Wie IBMs Node-RED das Internet der Dinge zusammenhält

Es wird immer einfacher, die Welt um dich herum zu hacken, um sie deinem Willen anzupassen.

Unabhängig davon, ob eine Lampe zum Blinken eingerichtet wird, wenn Sie von jemandem retweetet werden, oder ein System, das Ihnen nach dem Waschen eine SMS sendet, wird daran gearbeitet, das Sprechen mit der Maschine für die Maschine zu vereinfachen.

Das Anschließen der Fülle an Computern, Sensoren und Online-Diensten in der modernen Welt kann zu seltsamen und wunderbaren Kreationen führen, zum Beispiel zu dieser pfeifengesteuerten Drohne.

Aber das Wesentliche an der Arbeit mit diesem Internet der Dinge ist ein bisschen repetitiv. Um einige dieser Plackereiforscher bei IBM wegzunehmen, kamen sie auf die Idee, eine Toolbox mit wiederverwendbarem Code zu erstellen, mit der Benutzer Software und Geräte einfacher zu nützlichen Systemen zusammenfügen können.

IBM-Forscher suchten nach einer Möglichkeit, das Anschließen von Systemen und Sensoren beim Aufbau von Proof-of-Concept-Technologien für Kunden zu vereinfachen.

"Wir unterhielten uns und Nick sagte:" Es muss einen einfacheren Weg geben, dies zu tun ", sagte Dave Conway-Jones, leitender Erfinder bei IBM.

Conway-Jones bezieht sich auf Nick O'Leary, einen aufstrebenden Technologiespezialisten bei IBM, der zu dieser Zeit mit der Verwendung von Drag-and-Drop-Grafiktools experimentiert hatte, um den Code zu erstellen, der für die Kommunikation von Webdiensten, Software und Hardware erforderlich ist. Es sind diese Werkzeuge, die sich zu Node-RED entwickeln würden.

Node-RED ist eine Ereignisverarbeitungs-Engine, die im Grunde verhindert, dass Hardware- und Software-Hacker das Rad ständig neu erfinden müssen. O'Leary verwendet das Beispiel, dass bei jedem Start eines neuen Projekts Code geschrieben werden muss, um Daten über die serielle Schnittstelle an ein Gerät zu senden.

"Dave und ich wissen, wie man Code schreibt, um mit einer seriellen Schnittstelle zu kommunizieren, aber es kann eine Weile dauern, bis wir uns daran erinnern, wie man es macht und es schreibt."

"Um mit Node-RED mit einer seriellen Schnittstelle zu kommunizieren, müssen Sie lediglich einen Knoten ziehen und ihm die Details der seriellen Schnittstelle geben, und schon sind Sie fertig. Dadurch können wir schnell Prototypen erstellen."

Node-RED macht das Schreiben von Code nicht ganz überflüssig, reduziert ihn jedoch. Dabei wird sowohl die technische Leiste gesenkt als auch die Möglichkeit, sich auf das Erstellen und nicht auf das Ausführen zu konzentrieren.

"So wie Sie mit einer Tabelle mit Zahlen herumspielen können, ist Node-RED ein Werkzeug, mit dem Sie mit Ereignissen herumspielen können", sagte Conway-Jones.

"Leute, die keine Programmierer sind, können anfangen zu denken, ich habe Twitter hier und ich möchte analysieren, was gesagt wird, und es hier in einem Dokument veröffentlichen. Wie kann ich das tun?" Zum Beispiel könnten Sie einen Twitter-Feed haben Wenn Sie hereinkommen, analysieren Sie die Tweets ein wenig und senden Sie alle guten an eine E-Mail-Adresse.

"Leute, die auf fast geschäftlicher Ebene arbeiten, nicht ganz, aber auf diese Ebene kommen, könnten dies tun. Das ist die Ebene, die wir erreichen wollen."

Was ist Node-RED?

Auf den ersten Blick erinnert die Benutzeroberfläche für Node-RED Benutzer möglicherweise an Scratch, das vom MIT entwickelte grafische Tool, mit dem Kinder einfache Programme durch Ziehen und Ablegen von Softwarebefehlen codieren können.

Wie Scratch bietet Node-RED eine grafische Benutzeroberfläche, über die Benutzer Drag & Drop-Blöcke ziehen können, die Komponenten eines größeren Systems darstellen, im Fall von Node-RED normalerweise die Geräte, Softwareplattformen und Webdienste, die verbunden werden sollen. Weitere Blöcke können zwischen diesen Komponenten platziert werden, um Softwarefunktionen darzustellen, die die Daten während der Übertragung verwirren und transformieren.

Vielleicht ist der beste Weg, um zu verstehen, was Node-RED ist, es zu sehen. Unten finden Sie die Darstellung eines "Hello World" -Programms durch Node-RED, das häufig verwendet wird, um jemandem eine neue Technologie oder Programmiersprache vorzustellen. Für Unbekannte ist dieses Programm normalerweise eine sehr einfache Routine, die die Meldung "Hallo Welt" auf dem Bildschirm druckt.

Die Hello World-Routine in Node-RED Image: IBM

Hier sehen Sie die grafische Benutzeroberfläche von Node-RED und wie die Plattform Systeme in ihre Bestandteile zerlegt.

Jeder der gerundeten Blöcke, die Sie auf dem Bildschirm sehen können, ist ein Knoten, der eine visuelle Darstellung eines JavaScript-Codeblocks darstellt, der zur Ausführung einer bestimmten Aufgabe entwickelt wurde.

Um das Programm 'Hello World' zu erstellen, zieht der Benutzer einen 'Inject Node' in das zentrale Fenster, einen Knoten, der eine Nachricht an andere Knoten ausgeben soll.

Dieser Injektionsknoten wird bearbeitet, um die Zeichenfolge 'Hallo' auszugeben.

Als nächstes wird ein Funktionsknoten gezogen und bearbeitet, um eine JavaScript-Funktion zu definieren, die die Zeichenfolge 'World' an jede empfangene Nachricht anfügt.

Diese beiden Knoten werden dann miteinander verdrahtet. Die meisten Knoten haben einen grauen Kreis am linken Rand, der ihren Eingabeport darstellt, und am rechten Rand, der ihren Ausgabeport darstellt. Wenn Sie mit der linken Maustaste klicken und den Ausgabeport des Knotens "Hallo" auf den Eingabeport des Knotens "Welt" ziehen, werden beide miteinander verbunden.

Die letzte Phase besteht darin, einen Debug-Knoten hinzuzufügen, der die empfangene Nachricht im Debug-Fenster druckt. Dieser Debug-Knoten wird dann mit dem Ausgang des 'World'-Knotens verbunden.

Der Prozess kann jetzt ausgeführt werden. Nach der Bereitstellung wird die Zeichenfolge "Hello World" im Feld "Debug" angezeigt, das rechts auf dem Bildschirm angezeigt wird.

Dieses fertige Programm ist ein Beispiel für einen sogenannten Flow in Node-RED.

Das Interessante an Node-RED ist, dass es viel mehr kann als nur eine einfache Nachricht auszuspucken. Es kann auch Webdienste und Hardware zusammenkleben und wird dort immer leistungsfähiger.

Verwenden Sie Node-RED vom Fotografen und IBM-Mitarbeiter Dom Bramley, der Bilder des Nachthimmels aufnimmt. Die Ausrüstung, auf die er sich verlässt, ist nicht wasserdicht, sondern muss über Nacht draußen gelassen werden, um die Sterne zu fotografieren.

Mit Node-RED baute er ein persönliches Wetterwarnsystem auf, das die Lichter in seinem Haus steuert. Bramley erstellte alle drei Minuten einen Flow, der mit der Wetter-API von prognostiziert.io verbunden war, um die lokalen Niederschlagsvorhersagen zu überprüfen. Ein zweiter Knoten nahm die Antwort von Forecast.io und berechnete daraus, wie viele Minuten es dauern würde, bis Regen in seinem Haus eintrifft. Eine Umgebungslampe in seinem Wohnzimmer wechselte dann die Farbe basierend auf der Anzahl der Minuten bis zum Eintreffen des Niederschlags, während eine Nachttischlampe aufleuchtete, wenn der Niederschlag nahe genug war, um als unsicher eingestuft zu werden.

Zwei Strömungen steuerten die Lichter im Haus, eine erzeugte einen RGB-Wert, der die Farbe eines Umgebungslichts basierend auf der Nähe des Regens änderte. Der zweite schickte ein Signal an einen mit MQTT verbundenen Arduino, der eine 433-MHz-Steckdose steuerte, die eine Nachttischlampe einschaltete, wenn ein unsicherer Zustand ausgelöst wurde.

Node-RED war der Klebstoff, der das Wetterwarnsystem zusammenhielt und es Bramley ermöglichte, Daten aus der Prognose.io-API abzusaugen, daraus nützliche Erkenntnisse zu gewinnen und diese Informationen zur Manipulation automatisierter Systeme in seinem Haus zu verwenden.

Der Node-RED-Flow für das Wetterwarnsystem. DLB

Das Internet der Dinge aufbauen

Bramleys Wetteralarm zeigt, wie Node-RED es Entwicklern ermöglicht, auf der Arbeit anderer aufzubauen.

Um beispielsweise Daten aus Forecast.io abzurufen, importierte Bramley einen vorhandenen Knoten, der HTTP-GET-Anforderungen sendet. Er musste lediglich die URL bearbeiten, an die die Anforderung gesendet wurde, und eine Zeichenfolge hinzufügen, die seine Abfrage festlegte.

Das Wetterwarnsystem von Bramley steht anderen zur Verfügung, um es in Node-RED zu importieren, damit sie es nach Belieben verwenden und missbrauchen können. Selbst wenn sie nicht den gesamten Fluss wollten, könnten sie ihn nur für Teile ausschlachten und vielleicht nur den Knoten installieren, um die Farbe des Umgebungslichtsystems zu ändern.

"In Node-RED können Sie jede Funktionalität zusammenfassen, diese Funktion als Knoten in unserer Palette kapseln", sagte O'Leary. Er listete Module für einen MQTT-Client auf und sprach mit seriellen Ports auf der Hardware als Beispiele für Funktionen, die in Knoten integriert sind .

"Diese Palette von Knoten ist nicht fest codiert, sodass Sie einfach neue Knoten hinzufügen können und zu Beginn über neue Funktionen verfügen.

"Es ist dieses Ökosystem von Knoten, das Node-RED zu einer Plattform macht, zu der die Menschen einen Beitrag leisten können.

"Es bedeutet, dass wir uns keine Gedanken darüber machen müssen, wie wir mit bestimmten technischen Herausforderungen umgehen sollen. Wir können uns darauf konzentrieren, was diese Anwendung tun soll. Sie können sich eher auf das Was als auf das Wie konzentrieren."

Es werden ständig neue Knoten für die Interaktion mit Hardware, Software und Webdiensten hinzugefügt. Zu den jüngsten Ergänzungen gehören Knoten zur Steuerung der ferngesteuerten Belkin WeMo-Steckdosen und der Philips-Farbtonbeleuchtung. Knoten können auch geschrieben werden, um die Vorteile von Softwareplattformen zu nutzen, wobei Knoten SMS-Nachrichten über Twilio und Nachrichten über Twitter senden.

Die technische Leiste zum Schreiben eines Knotens ist nicht besonders hoch, da ein Knoten lediglich eine Kapselung von JavaScript-Code ist, der in der Umgebung von node.js ausgeführt wird.

Es gibt bereits eine aktive Community, die regelmäßig neue Knoten produziert, und die Node-RED-Plattform ist ein Open-Source-Projekt, das auf GitHub gehostet wird, sodass jeder einen Beitrag leisten kann.

Node-RED-Flows werden in JavaScript Object Notation oder JSON dargestellt und können einfach in die Zwischenablage exportiert werden, um in Node-RED importiert oder online freigegeben zu werden.

IBM erwägt außerdem, es einfacher zu machen, auf der Arbeit anderer in Node-RED aufzubauen, indem Subflows eingeführt werden. Unterflüsse würden es Benutzern ermöglichen, Flüsse mehrerer verknüpfter Knoten zu einem einzigen Knoten zusammenzufassen, wodurch komplexere Logik zu einem einzigen Knoten abstrahiert werden kann.

Die vielen Gesichter von Node-RED

"Jeder kommt mit einer völlig anderen Wahrnehmung davon, was Node-RED ist oder was es sein könnte", sagte O'Leary und verwies darauf, wie die Flexibilität der Plattform dazu geführt hat, dass Menschen Möglichkeiten sehen, die ursprünglich nicht vorgesehen waren.

"Es ist eindeutig eine Plattform mit vielen verschiedenen Anwendungen, verschiedene Branchen sehen unterschiedliche Dinge darin.

"Wir bauen eine Plattform auf, zu der jeder Knoten beitragen kann, damit ein Problem für ihn gelöst wird, und tragen diese Knoten dann wieder bei."

Zum Beispiel stand für IBM beim Entwerfen von Node-RED nicht der Schwerpunkt auf Bildung, aber die einfache Drag & Drop-Erstellung von Programmen in Node-RED hat dazu geführt, dass einige Schulen versucht haben, sie als Plattform zu verwenden, um Kindern das Codieren und Hardware-Hacking beizubringen.

Und O'Leary sagte, dass im Laufe der Zeit mehr Knoten hinzugefügt werden könnten, die mehr von der Codierung abstrahieren, um Node-RED für Leute ohne Programmierkenntnisse weniger entmutigend zu machen.

"Es gibt definitiv einen Raum für eine höhere Abstraktion", sagte er.

Das Absenken der technischen Leiste wird dadurch vereinfacht, wie einfach Node-RED erweitert werden kann, beispielsweise durch Hinzufügen von Knoten, um allgemeine Programmierkonstrukte wie eine For-Schleife auszuführen.

O'Leary sprach auch über die Möglichkeit, dass jemand Node-RED-Flows erstellt, um Unterricht für das Unterrichten von Kindern über Elektronik und Computer zu verkörpern, sodass ein Lehrer einen an Sensoren angeschlossenen Raspberry Pi so schalten kann, dass er im Modus "Lektion Nummer eins" ausgeführt wird.

Laut O'Leary ist Node-RED derzeit für die Ausführung der Heimautomation beliebt. Er führte Fälle an, in denen "das Durcheinander von Perl- und Python-Skripten", die diese Systeme zuvor zusammengehalten hatten, beiseite geschoben wurde, sagte er.

Wie gut Node-RED für die Heimautomation geeignet ist, wird deutlich, wenn Sie das IBM Emerging Technologies-Labor in Hursley, England, betreten. Forscher haben Node-RED verwendet, um es demselben Funkschalter zu ermöglichen, einen Lüfter einzuschalten, die Anzeige auf einem LED-Schild zu ändern oder eine Lampe ein- und auszuschalten. Um die Funktionsweise des Switch zu ändern, müssen Sie lediglich auf den Node-RED-Flow klicken und die Verkabelung zwischen den Knoten ändern. Diese Aufgabe dauert Sekunden.

Für Node-RED in Hursley wurden noch exotischere Anwendungen gefunden. Es wurde ein Fluss geschrieben, um eine Drohne durch Pfeifen zu steuern. Ein steigender Ton lässt die Drohne abheben und ein absteigender Ton lässt sie landen.

Node-RED hilft IBM bereits dabei, Proof-of-Concept-Demonstrationen für Kunden zusammenzuführen. Das Unternehmen hat kürzlich Node-RED-Flows auf Raspberry Pi-Boards ausgeführt, um Arduino-Boards mit Webcams und Temperatur-, Druck- und Feuchtigkeitssensoren zu verbinden, die eine Produktionslinie im Werk überwachen.

"Natürlich hätten wir Code schreiben können, um all das zu erfassen, aber es wäre viel weniger flexibel gewesen, denn wenn Sie neue Sensoren hinzufügen, müssen Sie herausfinden, wo Sie neue Codebits hinzufügen können", sagte O'Leary.

Als dieselbe Firma ein Problem damit hatte, dass Builder den Server vom Computer trennten, um diese Daten zu sammeln, damit sie ihre Elektrowerkzeuge anschließen konnten, konnte IBM "innerhalb von etwa fünf Minuten" Node-RED verwenden, um ein System miteinander zu verbinden Schlüsselpersonal wird automatisch per E-Mail benachrichtigt, wenn der Server ausfällt.

"Für uns ist die Flexibilität der Wert", sagte O'Leary, "aber andere Leute sehen einen anderen Wert."

Für Unternehmen könnte dieser Wert darin bestehen, Daten in der Nähe des Ortes zu sortieren, an dem sie am Rand des Netzwerks gesammelt wurden, das Rauschen herauszufiltern und nur relevante Informationen zurückzusenden.

"Was wir hier haben, ist etwas, mit dem Sie Logik und Geschäftssteuerung an den Rand des Netzwerks bringen können, bis hin zu einem Raspberry Pi oder einer kleinen eingebetteten Linux-Box", sagte O'Leary.

"Das ist ein interessanter Bereich. Aufgrund seines geringen Platzbedarfs eignet es sich für den Betrieb am Rande des Netzwerks. Es kann Ereignisse lokal überwachen und nur dann etwas an das Unternehmen senden, wenn Sie dies benötigen, anstatt alle Ihre Daten über Ihr Netzwerk senden zu müssen." zentraler Datenunternehmens-Hub und dort damit umgehen. "

Einschränkungen von Node-RED

Node-RED ist eine Anwendung, die auf node.js basiert, einer serverseitigen JavaScript-Plattform, die ein ereignisgesteuertes, nicht blockierendes E / A-Modell verwendet, mit dem datenintensive Echtzeitanwendungen erstellt werden können, die auf verteilten Geräten ausgeführt werden.

Damit ein Gerät oder ein Dienst mit Node-RED funktioniert, muss eine node.js-Bibliothek oder ein Modul vorhanden sein, die / das mit ihnen kommunizieren kann.

Die Anzahl kompatibler Dienste und Geräte ist jedoch groß, was zum Teil auf die Tendenz vieler moderner Plattformen zurückzuführen ist, ihre Daten und Funktionen über offene APIs bereitzustellen, die HTTP-Anforderungen akzeptieren.

Und da Node-RED auf node.js ausgeführt wird, kann es auch problemlos auf einer Reihe weniger leistungsfähiger Geräte ausgeführt werden, z. B. dem Raspberry Pi für 35 US-Dollar.

Was kommt als nächstes für Node-RED?

IBM hat die Node-RED-Plattform im September als Open-Source-Plattform bereitgestellt, und O'Leary sagte, IBM habe "ein Whiteboard voller Pläne, Ideen und Funktionen, um uns langsam durchzuarbeiten".

Node-RED ist eine sich weiterentwickelnde Plattform, von der O'Leary erwartet, dass sie neue Zielgruppen findet, wenn die Community neue Tools darauf aufbaut.

"Das ist immer noch nichts, was meine Mutter benutzen würde, aber es gibt sicherlich viele Leute, die es ermöglichen, mehr zu tun, als sie gedacht haben."

© Copyright 2020 | mobilegn.com