Tag 14: Smarte Lichter

Hinter dem Türchen des 14. Tages befindet sich eine weitere LED. Nun haben wir zwei LEDs mit Vorwiderständen und zwei Taster sowie genug Kabel, um ein komplexes Lampensystem zu bauen. Dazu benötigen Sie den folgenden Aufbau:

Der Aufbau mit vier losen Kabeln (gelb) als Touch-Buttons

Der Aufbau mit vier losen Kabeln (gelb) als Touch-Buttons

Nun können Sie das Programm des heutigen Tages aktivieren und den heutigen Flow einfügen. Vergessen Sie nicht, die [PID] durch Ihre persönliche ID zu ersetzen, am einfachsten mit dem Editortrick.

In dem von Ihnen aktivierten Programm sind die LEDs als PWM-LEDs eingestellt. Das bedeutet, dass Sie die Helligkeit der LEDs verändern können. Der Wertebereich reicht dabei von 0 bis 255. Zusätzlich können Sie die LEDs aber immer noch wie digitale Ausgänge ein- oder ausschalten. Folgende Kommandos können Sie verwenden:

Kommando im in-Topic Einstellungen
{„cmd“:“set_pwm_state“, „LED1“:255} Die LED wird auf die maximale Helligkeit eingestellt. Nur sichtbar, wenn die LED an ist.
{„cmd“:“set_pwm_state“, „LED1“:0} Die LED wird auf die minimale Helligkeit eingestellt (die LED leuchtet nicht).
{„cmd“:“set_pwm_state“, „LED1“:true} Die LED wird aktiviert und die letzte Helligkeit eingestellt. Änderungen der Helligkeit werden sofort sichtbar.
{„cmd“:“set_pwm_state“, „LED1“:“ON“}
{„cmd“:“set_pwm_state“, „LED1“:false} Die LED wird deaktiviert. Eine Veränderung der Helligkeit wird erst nach einem erneuten Aktivieren sichtbar.
{„cmd“:“set_pwm_state“, „LED1“:“off“}

Diese Statusveränderungen können über das out-Topic oder über NodeESP/[PID]/pwm/state/set gesendet werden. Bei einer Veränderung eines Status wird der aktuelle Zustand auch über das Topic

NodeESP/[PID]/pwm/state/get/out

gepublisht.

Zusätzlich sind in dem heutigen Programm zwei Buttons und vier Touch-Buttons aktiviert, die nach dem bekannten System funktionieren. Der Node-RED-Flow ist heute etwas größer, denn für jeden Button und jede Einstellung gibt es eine UI-Schaltfläche.

Das Userinterface des heutigen Programms

Das Userinterface des heutigen Programms

Das Userinterface gibt schon einige Hinweise darauf, wie der heutige Versuch funktioniert. Die beiden LEDs simulieren zwei dimmbare Lampen im Haushalt. Mit den beiden Tastern auf dem Steckboard oder über das Webinterface können sie anoder ausgeschaltet werden. Mit den Reglern in der UI kann die Helligkeit eingestellt werden. Über die Schaltflächen darunter wird die Helligkeit jeweils um +10 oder

–10 verändert. Die gleiche Funktion erfüllen auch die Touch-Buttons. Wenn Sie den auf dem Aufbaubild linken Draht berühren, verringern Sie über die Zeit die Helligkeit der linken LED. Der Draht direkt rechts daneben erhöht dabei die Helligkeit. Die beiden verbliebenen Drähte funktionieren genauso für die rechte LED. Sie können die Helligkeit auch verändern, wenn die LED gerade nicht an ist. Allerdings wird dann die Veränderung erst sichtbar, nachdem Sie die LED wieder angeschaltet haben. Die Funktion kann dennoch sehr praktisch sein, wenn Sie beispielsweise die Helligkeit der Lampe in Abhängigkeit von der Uhrzeit variieren wollen.

Der Flow des Tages

Der Flow des Tages

15 Kommentare

  1. Michael

    Bei mir funktionieren die Touchkabel nicht :( Node-Red zeigt Anfangs eine Fehlermeldungen: 4.1.2020, 01:10:04 node: a8440b67.6b0ba8 msg : string[40] „Unexpected token „ in JSON at position 1“. Wahrscheinlich liegts da dran. Touch Threshold habe ich auf 49. Tag 13 hat damit funktioniert.
    Die die Taster und Steuerung über UI funktionieren auch einwandfrei.

    Antworten
  2. hamburgdeveloper

    Leider ergibt bei mir das Drücken der Knöpfe auf dem Steckboard keine Wirkung. Die UI funktioniert hingegen tadellos. Auch die losen Kabel als Touch-Buttons sind einwandfrei. Ist die Pin-Belegung für die Knöpfe vertauscht? Ist das hochgeladene Programm wirklich fähig auf das Drücken der Knöpfe zu reagieren?

    Antworten
  3. Äd Franzis

    Prinzipiell funktioniert es, ABER der NodeESP macht mehr oder weniger oft Reset (Status-RGB-LED blinkt), wenn einer der zwei Buttons oder vier Touch-Buttons aktiviert wird. ;(

    Woran kann das liegen?

    Antworten
    1. Äd Franzis

      Tag 14 lässt mir echt keine Ruhe:
      Die zwei Buttons und die vier Touch-Buttons am Board lassen sich nicht verwenden. Fast immer, wenn man sie bedient, macht das NodeESP einen Reset (danach erst mal Synchronisierungsschwierigkeiten zwischen NodeESP und Node-RED). Die Bedienung über das Node-Red-Dashboard funzt.
      Die anderen Experimente ließen sich bisher imm er zum Laufen bringen.

      HAT JEMAMD ÄHNLICHE NEGATIV-ERFAHRUNG GEMACHT?
      Ich habe ja so irgendwie den WLAN-Traffic in Verdacht – aber aus bekanntem Grund nur mal so aus dem Bauch raus spekuliert.

      Antworten
  4. stege42

    Also bei mir bekomme ich die Touch Buttons einfach nicht zum laufen. Kann mir hier einer einen Tipp geben.
    Wo kann man den Threshold einstellen?
    Die Button von Tag 6 haben funktioniert, also sollte es nicht am Board liegen, oder?
    Der Rest funktioniert, auch mit dem MQTT.

    Antworten
    1. luwol03

      Hallo stege42 unter Board Configuration –> General Settings gibt es ganz versteckt zwischen den einzelnen Punkten die option „Touch Threshold“ ich bin mit dem Wert 49 sehr gut gefahren. Viel spaß noch. Gruß Lukas

      Antworten
  5. Gubbel

    Nachdem ich Tag 14 mit einem flash hinbekommen habe, geht heute weder Touch noch über Publish eine Änderung der LED, wird mal wieder was nicht am Programm stimmen?

    Antworten
  6. Sören

    Nabend Zusammen.

    Ich hänge leider ein wenig hinterher aber habe heute Tag 14 probiert und auch bei mir funktioniert alles super. Nun habe ich aber doch eine Frage.

    Ich benötige genau diese funktion um 3 LED-Stränge zu dimmen. Da es knapp 30 LED-Module sind, benötige ich ein externes Netzteil. Ich habe nun den pin 15 aus dem heutigen Aufbau mit dem Gate meines Mosfets verbunden ( Ich hatte leider bei Fritzing neinen nodeesp32)

    Nun zur Frage: Led ein / Aus funktioniert dimmen ebenfalls jedoch schalten die LED`s nie komplett aus. Weder bei 0 noch bei AUS. Sie bleiben immer auf einem kleinen Wert eingeschaltet. Hat jemand eine Idee/Lösung für mich?

    Antworten
    1. tigerpfleger

      Was hast Du denn für einen MOSFET?

      Ich tippe mal auf einen mit zu geringem Ugs(th) (->Schwelle für die Gatespannung, ab der er anfängt zu leiten). Ist die Schwelle zu niedrig, sperrt der MOSFET bei 0V noch nicht komplett. Bei der Auswahl des MOSFETS mußt du darauf achten, einen zu nehmen, der für Logiclevel gedacht ist.

      Bsp. für einen, der funktionieren dürfte: IRLZ24.

      Ich würde in der Schaltung zur Sicherheit auch noch einen kleinen Widerstand – ~75 Ohm sollten reichen – am Gate einsetzen. Der Strom, der fließt, bis das Gate „geladen“ ist, ist zwar nur kurz, fließt aber bei PWM doch oft. Der Widerstand schütz den Ausgang des uC.

      Antworten
  7. paulaner

    Hallo,
    auch hier nach dem FW Update 16.12.2018

    Antworten
  8. Bernd

    Auch bei mir voller Erfolg, inkl. dem Absetzen von Kommandos über mosquitto_pub.exe.

    Antworten
  9. Edwin

    Hallo, funktioniert heute sehr gut, aber beim linken Draht (IO32) wird die linke LED heller beim rechts daneben (IO33) dunkler.

    Antworten
  10. Martin Klein

    Auch bei mir heute voller Erfolg ! Alles funktioniert.
    Mein Problem mit den Touch Drähten war, daß das ESP-Board nicht ganz in den
    Steckboards eingesteckt war. Eigentlich wir im Projekt Tag 3 beschrieben. Aber ich dachte
    es reicht so – nur die Touch Pins sind halt sensibler.
    Habe heute die Seitenteile bei den Steckboards rausgebrochen (wie im Tag 3 beschrieben) und
    jetzt kann man das ESP-Board tiefer reinstecken und jetzt gehts auch mit den Touch Drähten…
    Viele Grüße
    Martin Klein

    Antworten
  11. paulaner

    Hallo,
    auch das funktiniert wunderbar. Danke.

    Antworten
  12. Taraxacum

    Juchu, heute funktionierte alles einwandfrei. Sogar die Touch Buttons (Threshold 40). Auch das Senden der Kommandos von HiveMQ hat geklappt.

    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.