Inhaltsverzeichnis:

UCL-IIOT - Alarmsystem mit Datenbank und Node-red - Gunook
UCL-IIOT - Alarmsystem mit Datenbank und Node-red - Gunook

Video: UCL-IIOT - Alarmsystem mit Datenbank und Node-red - Gunook

Video: UCL-IIOT - Alarmsystem mit Datenbank und Node-red - Gunook
Video: Connect and Control Tuya / Smart Life Device using Node-RED (BARDI Smart Home) 2024, November
Anonim
UCL-IIOT - Alarmsystem mit Datenbank und Node-Rot
UCL-IIOT - Alarmsystem mit Datenbank und Node-Rot
UCL-IIOT - Alarmsystem mit Datenbank und Node-Rot
UCL-IIOT - Alarmsystem mit Datenbank und Node-Rot

Der Zweck dieses Builds besteht darin, das Verbinden von Arduino mit Node-red und einer Datenbank zu unterrichten, damit Sie Daten protokollieren und auch für die spätere Verwendung sammeln können.

Für diesen Build verwende ich ein einfaches Arduino-Alarmsystem, das 5 Datennummern ausgibt, die jeweils durch ein Komma getrennt sind.

Es ist nicht notwendig, genau diese Datenmenge zu haben und das Programm könnte alles sein.

Der wichtige Teil ist, dass die Daten durch Kommas getrennt werden, wie auf diesem Screenshot zu sehen.

Die Ausgabe könnte beispielsweise so aussehen: "324, 0, 0, 1, 1"

(Die fertige Programmierung und Anweisungen zur Erstellung des Arduino sind am Ende dieses Tutorials verlinkt)

Schritt 1: Erste Schritte mit Node-red

Erste Schritte mit Node-red
Erste Schritte mit Node-red

Für dieses Tutorial gehen wir davon aus, dass Sie Node-red bereits installiert haben, aber es gibt einige zusätzliche Paletten, die für dieses Projekt verwendet werden, die wir benötigen, damit es funktioniert

Suchen Sie die Schaltfläche "Palette verwalten" und installieren Sie die folgenden Paletten.

  • Knoten-Rot-Dashboard
  • node-red-node-mysql
  • Knoten-Rot-Knoten-Arduino
  • Knoten-roter-Knoten-Seriellport

Es sollte einige neue Paletten an der Seite des Knotenmenüs mit der roten Schaltfläche anzeigen.

Schritt 2: Aufteilen von Daten in Knoten-Rot

Aufteilen von Daten in Knoten-Rot
Aufteilen von Daten in Knoten-Rot

Da Node-red nun einsatzbereit ist, müssen wir zunächst unsere Daten in einzelne Teile aufteilen.

Aus diesem Grund haben wir sie im Arduino-Code durch Kommas getrennt.

Beginnen wir zunächst mit dem Ablegen des Arduino Input-Knotens, der sich auf der linken Seite befindet.

Sie müssen sicherstellen, dass es den richtigen seriellen (Meiner verwendet COM4) Port und die richtige Baudrate hat (in meinem Programm verwende ich 9600 Baudrate)

Wenn es richtig eingerichtet ist, sollte es sagen, dass es verbunden ist.

Als nächstes erstellen wir einen Javascript-Funktionsblock und verbinden ihn nach dem Arduino-Eingangsknoten. Dieser Block ermöglicht es uns, in Javascript zu programmieren, und hier schreiben wir einen Code, der unsere Daten für jedes Komma aufteilen kann.

In diesem Funktionsblock habe ich meine 5 Daten mit folgendem Code aufgeteilt:

var m1 = {Thema: "light1", Nutzlast: msg.payload.split(", ")[0]}; var m2 = {Thema: "light2", Nutzlast: msg.payload.split(", ")[1]}; var m3 = {Thema: "light3", Nutzlast: msg.payload.split(", ")[2]}; var m4 = {Thema: "Millis", Nutzlast: msg.payload.split(", ")[3]}; var m5 = {Thema: "onoff", Nutzlast: msg.payload.split(", ")[4]}; zurück [m1, m2, m3, m4, m5];

(ändern Sie den Code nach Bedarf)

Stellen Sie sicher, dass der Knoten auf 5 Ausgänge (oder Ihr Äquivalent) eingestellt ist.

Wie im Screenshot zu sehen, haben wir jetzt 5 Ausgaben, die wir jeweils mit einem Debug-Knoten und einem Text-Dashboard-Knoten verknüpfen. Dies ist nützlich, wenn wir es auf der Benutzeroberfläche sehen müssen.

Schritt 3: Datenbank mit Wampserver

Datenbank mit Wampserver
Datenbank mit Wampserver

Damit unsere Datenbank funktioniert, müssen Sie den Wampserver installiert haben. Nachdem er installiert ist und als grünes Symbol angezeigt wird (nachdem Sie alle Dienste gestartet haben), sollten Sie den "phpMyAdmin" öffnen, der Sie zu einem Anmeldebildschirm bringt zuvor geändert haben, geben Sie einfach "root" in den Benutzernamen ein und melden Sie sich an.

Drücken Sie die phpmyadmin-Schaltfläche unter Tools unten in der linken Leiste und es sollte das Datenbankmenü öffnen, das in etwa wie im Bild oben gezeigt aussieht.

Erstellen Sie eine neue Datenbank und benennen Sie sie mit einem Bezug zu Ihrem Projekt, meine heißt "Alarmsystem" (bei diesen Namen muss die Groß-/Kleinschreibung beachtet werden)

Erstellen Sie unter dieser Datenbank eine neue Tabelle und benennen Sie sie, meine heißt "alarmdata"

Es wird gefragt, ob Sie "latin1_swedish_ci" verwenden möchten und wir behalten es so bei.

Jetzt erstellen Sie 6 Tabellen (1 mehr als die Daten, die wir haben)

Die erste Tabelle muss den Datentyp "longtext" verwenden

und der Rest des Datensatzes verwendet "mediumtext"

Achten Sie darauf, sie zu benennen. (der erste Datensatz sollte "time" heißen

Schritt 4: Datenbank

Datenbank
Datenbank

Der Wampserver-Datensatz sollte ungefähr so aussehen.

(aber ohne die eigentlichen Daten, da wir noch nicht dazu gekommen sind)

Schritt 5: Knotenrot zu Wampserver

Knotenrot zu Wampserver
Knotenrot zu Wampserver

Jetzt möchten wir, dass die Daten, die wir von unserem Arduino ausgeben, auf unseren Wampserver gehen.

Beginnen Sie mit der Erstellung eines weiteren Javascript-Funktionsblocks und verbinden Sie ihn mit unserem Arduino-Eingangsknoten.

In diesem Skriptblock teilen wir unsere Daten noch einmal auf, fügen sie aber auch in unsere Datenbank ein.

var data = msg.payload.split(", ");var Green1 = data[0]; var Green2 = Daten[1]; var Alarm = Daten[2]; var Millis = Daten[3]; var IsActive = Daten[4]; var out = "INSERT INTO alarmsystem.alarmdata (Time, Green1, Green2, Alarm, Millis, IsActive) VALUES('"+new Date().toISOString().slice(0, 19).replace('T', ' ')+"', '"+Grün1+"', '"+Grün2+"', '"+Alarm+"', '"+Millis+"', '"+Ist aktiv+"')"; msg.topic = aus; Nachricht zurück;

Beachten Sie, dass ich "INSERT INTO alarmsystem.alarmdata" eingebe, dies ist der Name, den wir unserer Datenbank und Tabelle gegeben haben. Stellen Sie sicher, dass Sie den genauen Namen eingeben, den Sie Ihrer Datenbank gegeben haben.

Verbinden Sie nun den Javascript-Block mit einem Debug-Knoten und auch einem "mysql"-Knoten, der sich unter der Speicherpalette auf der linken Seite befindet.

unter dem mysql-Block benennen Sie es genauso wie Ihre Datenbank "alarmsystem"

Ändern Sie den Benutzer in "root" (der Name, mit dem wir uns bei unserem Server angemeldet haben)

Host, Port und Datenbank sollten bereits ausgefüllt sein mit:

Host: 127.0.0.1

Hafen: 3306

Datenbank: Alarmsystem

Wenn alles richtig gemacht wurde, sollte die Verbindung hergestellt werden, nachdem Sie Ihre Änderungen bereitgestellt haben.

Sie sollten auch sehen können, dass die Datenbank Ihre Daten jetzt direkt vom Arduino protokolliert.

Schritt 6: Verwenden von Daten vom Wampserver zu Node-red

Verwenden von Daten vom Wampserver zu Node-red
Verwenden von Daten vom Wampserver zu Node-red
Verwenden von Daten von Wampserver zu Node-red
Verwenden von Daten von Wampserver zu Node-red

Für den letzten Abschnitt wollen wir sehen, ob wir die Daten, die wir gespeichert haben, wieder in unser Node-red legen und hoffentlich anzeigen können.

Beginnen Sie mit dem Platzieren eines "inject"-Knotens

Unter Thema in diesem Knoten setzen wir den Code: SELECT*FROM alarmsystem.alarmdata

Dies kann unsere Datenbank finden, wenn wir darauf klicken.

Verbinden Sie den Inject-Knoten mit einem neuen "mysql" -Knoten, der genau wie im vorherigen Schritt eingerichtet wurde.

Verbinden Sie den MySQL-Knoten mit einem Debug-Knoten und einem Vorlagenknoten unter Dashboard.

Der Vorlagenknoten ist unsere Tabelle, die wir aktualisieren können, um Daten aus der Datenbank anzuzeigen, während sie erstellt werden.

Geben Sie den im obigen Screenshot gezeigten Code ein (ändern Sie ihn nach Bedarf) und er sollte jetzt eine Datentabelle in unserer knotenroten Benutzeroberfläche anzeigen.

Wir können auch eine Dashboard-Schaltfläche hinzufügen, um die Tabelle über die Benutzeroberfläche selbst zu aktualisieren.

Beginnen Sie mit dem Erstellen eines Schaltflächenknotens.

Verbinden Sie den Button-Knoten mit einem Javascript-Funktionsblock.

in den Funktionsblock fügen wir den folgenden Code ein.

msg.topic = "SELECT * FROM alarmdata ORDER BY Green1 DESC LIMIT 20";return msg;

(Green1 ist die erste Datenvariable in der Tabelle)

Dieser Funktionsblock muss dann mit dem Eingang unseres MySQL-Knotens verbunden werden, den wir zuvor in diesem Schritt erstellt haben.

Schritt 7: Finalisieren

Abschluss
Abschluss

Jetzt sollte unsere Benutzeroberfläche ein Live-Update unserer Daten und eine Tabelle mit Daten von unserem Server selbst enthalten.

Das bedeutet, dass wir eine Verbindung zwischen Arduino, einem UI-basierten Programm und einer Datenbank geschaffen haben.

Wenn Sie daran interessiert sind, wie mein Arduino-Alarmsystem funktioniert, habe ich ein Dokument hinzugefügt, das erklärt, wie es programmiert und eingerichtet wird.

Sowie einen vollständigen Export der knotenroten Programmierung.

Empfohlen: