Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Node-Red
    5. Arduino messen steuern Visualisierung

    NEWS

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Arduino messen steuern Visualisierung

    This topic has been deleted. Only users with topic management privileges can see it.
    • B
      Bavarian last edited by

      Hallo zusammen und ein frohes Fest!

      Ich kenne mich mit dem ioBroker und VIS recht gut aus und habe damit schon viel umgesetzt.
      Nun kam mir die Idee ein bestehendes Projekt bestehend aus einem Arduino + Raspberry PI + Java neu aufszusetzen.
      Der Arduino misst mehrere analoge Eingänge, die Messdaten werden dann im Arduino aufbereitet und per serieller Schnittstelle an den Raspberry gesendet.
      Ein Java Programm ist dann die GUI welche die Daten anzeigt.
      Dazu gibt es noch die digitalen IO die zum Schalten genutzt werden, einiges davon passiert im Arduino, einiges im Java Programm.
      Es gibt auch Buttons in der GUI die IO's auf dem Arduino schalten.

      Mit gefällt das mit den Java nicht mehr so richtig, da ich kein Java Profi bin, fällt mir die Visualisierung / GUI nicht so einfach.
      Neue Funktionen implementieren finde ich im ioBroker deutlich einfacher.

      Bevor ich nun loslege möchte ich versuchen gleich einen "sinnvollen" Weg einzuschlagen, deshalb vorab ein paar Fragen.
      Die Analogen Daten hätte ich gerne mit kleinster Verzögerung in einer GUI dargestellt, eine 2 Sekunden Aktualisierung wäre zu langsam, bis zu 100ms wäre gut.
      Im Node Red gibt es die wohl die Möglichkeit direkt auf die AD Eingänge zuzugreifen, schaffe ich es damit die Daten so schnell an die ioBroker zu senden
      und in einem VIS View darzustellen?
      Kann ich in Node Red auch mathematische Berechnungen mit den Werten durchführen wie zB. Wurzel ziehen, Quadrat, PI etc. ?
      Oder nehme ich besser nur die Werte und sende diese zum ioBroker und schreibe dann im JS die Berechnung?

      Entstehen soll eine GUI mit der Darstellung der Daten (Spannungen, Ströme, Temperaturen etc) teils als einfache Zahlen, teils Diagramme.
      Dazu einige Button um Ausgänge auf dem Arduino zu schalten, Datenbank Anbindung.
      Halt ein komplexes Bedienfeld mit mehreren Seiten (Views) zum Navigieren etc.

      Schöne Feiertage noch!

      F 1 Reply Last reply Reply Quote 0
      • F
        frankyboy73 @Bavarian last edited by

        @bavarian Hi, das kannst du eigentlich alles komplett in Node Red umsetzen. Du brauchst die Daten auch nicht weiter im Iobroker verarbeiten. Berechnen kann man eigentlich alles in NodeRed. Man kann sogar JS per Funktion Node in Node Red verwenden. Auch hat Node Red eine eigene Visu, nennt sich Dashboard, wo du theoretisch alles darstellen und auch steuern könntest. Werte ausgeben ist dabei kein Problem, Diagramme/Charts gibts auch.
        Zur Erstellung von Diagramm, würde ich eventuell den Umweg über History oder Float Datenbanken verwenden, aber die lassen sich auch ins NodeRed Dashboard integrieren.
        Zu dem Thema hat @mickym mal einen tollen Threat erstellt.
        https://forum.iobroker.net/topic/43506/flot-diagramme-im-nodered-dashboard
        Zu dem Thema, wie schnell und ob überhaupt deine Werte vom Arduino direkt in Node Red verfügbar sind, kann ich leider nichts sagen, damit habe ich mich noch nicht beschäftigt.
        Nur aus Neugier, wieso brauchst du die Ausgaben innerhalb von 100ms auf dem VIS?

        1 Reply Last reply Reply Quote 0
        • Andreios
          Andreios Forum Testing last edited by Andreios

          @bavarian said in Arduino messen steuern Visualisierung:

          Nun kam mir die Idee ein bestehendes Projekt bestehend aus einem Arduino + Raspberry PI + Java neu aufszusetzen.
          Der Arduino misst mehrere analoge Eingänge, die Messdaten werden dann im Arduino aufbereitet und per serieller Schnittstelle an den Raspberry gesendet.

          Mein Vorschlag hier wäre, dem Arduino eine Netzwerkschnittstelle zu spendieren und die Daten per MQTT-Protokoll an einen MQTT-Server (Es muss nicht der ioBroker sein!) zu senden.
          Im ioBroker werden dann die MQTT-Daten abonniert.

          Ein Java Programm ist dann die GUI welche die Daten anzeigt.

          Das macht dann die Vis des ioBroker.

          Dazu gibt es noch die digitalen IO die zum Schalten genutzt werden, einiges davon passiert im Arduino, einiges im Java Programm.
          Es gibt auch Buttons in der GUI die IO's auf dem Arduino schalten.

          Ich habe da für die Kommunikation über MQTT 2 Pfade, get und set, die immer von der Visu aus zu sehen sind. Der Arduino schreibt also Werte in den get-Pfad und reagiert zum Schalten auf Werte im set-Pfad.

          Die Analogen Daten hätte ich gerne mit kleinster Verzögerung in einer GUI dargestellt, eine 2 Sekunden Aktualisierung wäre zu langsam, bis zu 100ms wäre gut.

          Ob das auf Dauer über MQTT läuft, vor Allem wenn es mehr Daten werden, kann ich nicht sagen.

          Entstehen soll eine GUI mit der Darstellung der Daten (Spannungen, Ströme, Temperaturen etc) teils als einfache Zahlen, teils Diagramme.

          Daten darstellen ist kein Problem.
          Die Datenpunkte, von denen ich Verlaufsdaten sehen will, speichere ich in einer SQL-Datenbank und kann stelle sie in ioBroker aktuell in Flot-Diagrammen dar.

          B 1 Reply Last reply Reply Quote 0
          • B
            Bavarian @Andreios last edited by

            Vielen Dank für eure Rückmeldung!
            Ich werde mir das Dashboard ansehen vielleicht passt das ja schon.
            Thema Datenpunkte oder SQL muss mich mir auch ansehen.
            Da wäre es wichtig, dass der DP nicht nach einem Boot weg ist, also nicht nur Variable im RAM.

            @frankyboy73
            100ms weil ich eine sich ständig wechselnde Spannung mit einem Bar Graph oder Instrument (Gauge) darstellen möchte.
            Um genung Daten für eine Smoothing Funktion zu haben oder Peakhold.
            Kommen die Daten zu langsam sieht es sehr ruckelig aus.

            @Andreas-5
            Das mit der Netzwerkschnittstelle ist im Projekt nicht möglich da der Arduino auf einem anderen PCB steckt.
            Eine Änderung ist leider nicht möglich da das Projekt oft schon nachgebaut wurde, müssten also alle dann ändern.
            Einfacher ich gebe mit mit der Software mühe und beglücke die anderen mit einem Software Update in Form eines
            Images. Das ist dann auch für die reinen Benutzer entspannt.

            1 Reply Last reply Reply Quote 0
            • C
              Cino last edited by

              Kannst doch über i2c einen ESP8266 dranhängen und dann mittels mqtt teilen

              P 1 Reply Last reply Reply Quote 0
              • P
                peterfido @Cino last edited by

                Ich spreche Arduinos über usriot RS232 auf TCP Adapter an. Die lassen sich einfach als serielle Schnittstelle in Node Red einbinden.

                B 1 Reply Last reply Reply Quote 0
                • B
                  Bavarian @peterfido last edited by

                  @Cino
                  @peterfido

                  Eine Änderung ist leider nicht möglich da das Projekt oft schon nachgebaut wurde, müssten also alle dann ändern.
                  Einfacher ich gebe mit mit der Software mühe und beglücke die anderen mit einem Software Update in Form eines
                  Images. Das ist dann auch für die reinen Benutzer entspannt.

                  1 Reply Last reply Reply Quote 0
                  • P
                    peterfido last edited by peterfido

                    @bavarian
                    Da ist ja noch ein Raspi im Spiel. Der kann doch prima die Daten zum ioBroker liefern. Entweder aktiv senden, oder passiv zur Verfügung stellen. Oder, je nach Datum, teils teils.

                    Rest dann wie gewohnt per Vis. Für Diagramme kann ioBroker alles in eine Datenbank speichern. Flot oder Grafana Zeichen dann die Kurven.

                    10 Mal pro Sekunde kann, je nach Hardware, sportlich werden.

                    C 1 Reply Last reply Reply Quote 0
                    • C
                      Cino @peterfido last edited by

                      @peterfido der RPi ist ja für die GUI da. Den Schritt will er ja überspringen. Entweder haut er IOB direkt auf diesen RPI oder er spart sich den RPI mit einer Komponente die die seriellen Daten einliest und per MQTT verteilt. Ist ja auch alles eine Kostenfrage.

                      1 Reply Last reply Reply Quote 0
                      • B
                        Bavarian last edited by

                        Klar läuft auf dem RPI der IOB.
                        Das mit dem lesen der Werte über die Serial per Node Red habe ich auch hinbekommen.
                        Somit steht ein großer Teil des Projektes schon und sieht auch noch gut aus 😉

                        Probleme bereitet das senden per Serial, dazu dann ein neuer Thread.

                        1 Reply Last reply Reply Quote 0
                        • First post
                          Last post

                        Support us

                        ioBroker
                        Community Adapters
                        Donate

                        854
                        Online

                        31.7k
                        Users

                        79.7k
                        Topics

                        1.3m
                        Posts

                        5
                        10
                        653
                        Loading More Posts
                        • Oldest to Newest
                        • Newest to Oldest
                        • Most Votes
                        Reply
                        • Reply as topic
                        Log in to reply
                        Community
                        Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                        The ioBroker Community 2014-2023
                        logo