Tag 8: Ein Regler

Versuchsaufbau

Versuchsaufbau

Hinter dem achten Türchen des Adventskalenders befindet sich ein Potenziometer, das hier als Spannungsteiler verwendet wird. Sie können eine Spannung zwischen 0 V und 3,3 V einstellen, die vom Board gemessen und an Node-RED übertragen wird. Zusätzlich zu dem Treppenhauslicht von gestern können Sie so auch Messwerte übertragen.

Der Flow des heutigen Tages

Der Flow des heutigen Tages

Den Flow von heute bekommen Sie wie gewohnt in dem Pastebin Frame. Vergessen Sie nicht, den gestrigen zu deaktivieren und eventuell die Sende-IP anzupassen. In dem heutigen Flow wird außerdem ein neuer Node für das Dashboard verwendet, nämlich ein Gauge (Messgerät), über das der gemessene Wert visuell dargestellt wird.

Das Userinterface zum heutigen Versuch

Das Userinterface zum heutigen Versuch

Wenn Sie das Programm des heutigen Tages aktivieren, werden Sie sehen, dass sich das Gauge-Element (Zeigerinstrument) auf der Dashboard-Seite etwa alle zwei Sekunden aktualisiert und die neuen Messwerte anzeigt. Wenn Sie nun an dem Rädchen des Potis drehen, verändern sich diese Werte. Dieser Messwert könnte für verschiedene Anwendungsfälle genutzt werden, beispielsweise um die Helligkeit der LED zu variieren oder die Leuchtdauer des Treppenlichts einzustellen, also typische Anwendungen in Ihrem Smarthome.

Der Versuchsaufbau mit Pin-Schablone

Der Versuchsaufbau mit Pin-Schablone

23 Kommentare

  1. Patrick

    Bei mir zeigt der Potenziometer leider kein wert im Debugger an.
    Im Debugger kommt auch nichts an.
    Gesteckt hab ich es wie im versuchsablauf und in der Schablonen sich. Aber leider geht beides nicht.

    Liegt das vielleicht auch an dem Update wie an Tag 5?

    Antworten
  2. Jan Jacob

    Das Licht reagiert nicht auf den Taster, sondern nur auf die UI Seite.(Tag 7 und 8)
    Kann es an der Broadcast IP liegen?
    Wie finde ich die richte Broadcast IP heraus?
    Der Potentziometer hat keine Wirkung.(Auf der UI Seite wird immer der Wert 0 angezeigt und die Helligkeit der Lampe ändert sich auch nicht)

    Antworten
  3. J.J.

    Kleine Anmerkung: Ich fand es irritierend, dass auf dem Foto verglichen mit der abgedruckten Schaltung die Anschlüsse von 3,3V und GND am Poti vertauscht sind. D.h. baut man die Schaltung nach dem Foto auf, werden die gemessenen Werte kleiner, wenn man das Poti im Uhrzeigersinn dreht. Beim Aufbau gemäß der Grafik ist es richtig herum: die Werte werden größer beim Drehen im Uhrzeigersinn.

    Antworten
  4. Heinz

    Hallo Zusammen,
    Ist es möglich, die Anzahl UDP Packete zu reduzieren?
    Alle 0.1 sek. überfordert meinen PC. Das Dashborad UI bleibt dann plötzlich stehen.
    Eine Rate von 1 Wert pro Sekunde wäre da etwas besser.
    Kann dem ESP event per Kommando diese Rate mitgeteilt werden?
    Oder wäre noch eine hübsche Erweiterung, dass per Kommando dem ESP gesagt werden kann in welchem Takt er
    die ADC Werte liefern soll. z.B so ein Kommando {„cmd“:“set_update_rate“,“value“:“10″} Values in 100ms
    Value = 10 wäre dann alle 1sek., 20 = alle 2sek….

    Sonst läuft das Script prima.
    Habe es noch erweitert, dass es die gemessene Spannung anzeigt [Volt] anstelle der 4096 Raw Werte.

    Antworten
  5. thymjan

    Bei mir „rennt“ das Gauge-Instrument. Wird die Aktualisierungsrate durch den NodeESP festgelegt oder die Performance des Netzwerks?

    Antworten
    1. thymjan

      … in der Beschreibung ist ja von einer Aktualisierung alle 2 Sekunden die Rede.

      Antworten
      1. Bernd1

        Nein, „2 Sekunden“ scheint eine Fehlinfo zu sein. Wenn ich mir die Debugwerte ansehe, kommt bei mir alle 0,1 Sekunden eine UDP Nachricht rein.

        Der Arduino Code des NanoESP wäre wirklich hilfreich zu haben…

        Antworten
  6. Jan

    Hallo,
    wo finde ich denn den Arduino Code des NanoEsp, wenn ich diesen etwas modifizieren möchte?
    Vielen Dank für eine Rückmeldung
    Jan

    Antworten
    1. paulaner

      gibt es nicht oder noch nicht.

      Antworten
  7. Eddie

    Moin moin,

    welchen Sinn hat für den heutigen Tag die Schaltung der „Treppenhausbeleuchtung“ von gestern?
    Die Helligkeit der LED verändert sich nicht, wenn man am Poti andere Werte einstellt.
    > Dieser Messwert könnte für verschiedene Anwendungsfälle genutzt werden, beispielsweise um
    > die Helligkeit der LED zu variieren oder die Leuchtdauer des Treppenlichts einzustellen,
    > also typische Anwendungen in Ihrem Smarthome.
    Ein „wie“ wäre an dieser Stelle nett gewesen.

    Gruß
    Eddie

    Antworten
    1. paulaner

      Hallo,
      Deine Ideen sind nicht schlecht.

      Damit greifst du aber schon auf die nächsten Tage vor, auch kann jeder genau die/deine Ideen weiter probiere und hier posten, für Alle.

      Es muss doch nicht alles von fk ‚vorgekaut‘ werden.
      Es wird welche geben die nur nachbauen wollen, ok.

      ‚Ein „wie“ wäre an dieser Stelle nett gewesen.‘
      Aber vieleicht klärt es jemand im Kommentar, oder warte noch ein paar Tage und du kannst es selber proggen.

      mfg

      Antworten
      1. Eddie

        Na ja, die alte Schaltung wird für heute 1:1 übernommen und macht für mich keinen Sinn in dem vorgestellten Zusammenhang.
        Zusammen mit dem Kommentar aus der Tagesbeschreibung und der Überschrift „Staircase and ADC“ hätte ich mehr Inhalt zu dem Thema erwartet.
        Ob da morgen oder nächste Woche noch was zu kommt, weiß ich nicht. Ich lese den Adventskalender tageweise.

        Es hätte ja auch sein können, dass ich beim Aufbau einen Fehler gemacht habe und die „Treppenhausbeleuchtung“ tatsächlich auf den eingestellten Wert reagiert hätte.
        Man weiß es eben nicht, wenn man die Tagesbeschreibung so liest.

        Gruß
        Eddie

        Antworten
        1. Meichr

          Ich habe den Flow von Tag 8 adaptiert, sodass die Leuchtdauer der Potentiometer-Einstellung in ms entspricht. Kann man hier einen exportierten Flow hochladen, ohne dass die Sonderzeichen verfälscht werden?

          Grüße
          Meichr.

          Antworten
          1. Meichr

            Ich beantworte gleich selber meine Frage, indem ich ebenfalls per Pastebin poste. Wenn jemand das noch verbessern kann, freue ich mich auf eine Posting-Antwort.

          2. Meichr

            Sorry, der IFrame wurde leider im Posting gelöscht. Könntest du, Fabian, hier eine Möglichkeit schaffen, einen Flow im Kommentar einzubetten? Das wäre toll.

            Grüße,
            Meichr.

          3. fk (Beitrag Autor)

            Ein Flow direkt einzubinden wird schwierig. Am besten den Pastebin Link posten und/oder ein Bild als Vorschau.

          4. Meichr

            Danke, Fabian, für den Tipp zum Posten des Flows.

            Ich habe den Flow von Tag 8 so adaptiert, dass die Leuchtdauer der Potentiometer-Einstellung in ms entspricht.

            Im folgenden Flow habe ich nicht den Trigger-Node verwendet, da dieser nur eine konstante Zeit zulässt, sondern diesen durch den Delay-Node ersetzt, der die Zeit aus msg.delay für die Verzögerung verwenden kann. Die Potentiometer-Einstellung wird dazu per Funktions-Node in einer globalen Variable zwischengespeichert und vor dem Delay-Node wieder ausgelesen.

            Link zum Flow: https://pastebin.com/gKcgR9pS

  8. Magdalena

    Hallo zusammen,

    welches Bauteil misst die Werte eigentlich, ist das der Potenziometer oder ein Element auf dem NanoESP?

    Antworten
    1. Bernd

      Das Potentiometer (=veränderbarer Widerstand) liefert am IO35 einen Spannungswert zwischen 0 und 3,3V. Das Programm auf dem NodeESP liest am IO35 mit der Funktion AnalogRead(Pin) den aktuellen Spannungswert und bekommt Werte zwischen 0 und 1023 geliefert. Diese kann man dann noch umrechnen, so dass wie in diesem Fall ein Wertebereich von 0-4096 entsteht. Die Werte werden also von dem Programm auf dem NanoESP gemessen und ausgegeben.

      Antworten
    2. paulaner

      Hallo,

      Das Potentiometer gibt den ‚NanoESP‘ an einem Eingang den Wert/Spannung vor, 0-4096 ‚Stufen‘.
      Hier eine Spannung von 0-3,3V.
      Der Analog Digitalwandler im NonoESP wandelt es in besagte Stufen um und die UI zeigt es an.

      Egal wieviel Bit = Stufen ein AD Wandler hat, er wird nie ein analoges Signal 100% so darstellen können, immer nur stufig!

      Antworten
    3. paulaner

      Hallo,

      Bernd war schneller.

      Aber hier noch was, wichtiges.
      ADC 16 x ADC Pins (12-bit, SAR ADC)
      DAC 2 x DAC Pins (8-bit)

      Er hat mehr bit, also mehr Stufen und muss daher nichts umrechnen.
      Die Auflösung 2hoch12 sind 4096 Stufen.

      Antworten
    4. paulaner

      Ich habe die Seite wieder durchgelesen, nicht nur oberflächlich und dabei ist mir aufgefallen, hätte der/die Fragesteller/Fragestellerin sich nur den ersten Abschnitt (2.Satz) von dem heutigen Tag verinnerlicht, würden solche Art Fragen nicht aufkommen.

      Auch wir Antwortgeber wollen helfen und siehe da, sind wir oberflächlich.
      fk hat schon alles geschrieben!

      Antworten
  9. stan

    Für die, die wie gestern auch ein Problem mit UDP-Broadcast unter OSX haben:
    – in dem UDP Output muss man bei „Sand a“ ein „broadcast message“ auswählen.
    – in dem UDP Output die Auswahl unter „Address“ auf „bind to local port“ ändern und im Feld rechts eine unpriviligerte Port eintragen (z.B. 64321).
    – den flow neu deployen

    Voila, es läuft alles…

    Antworten

Schreiben Sie einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.