Tag 9: Ein Stimmungslicht

Hinter dem heutigen Türchen finden Sie einen Fototransistor. Er wird verwendet, um die Umgebungshelligkeit zu messen. In dieser Schaltung liegt das Poti in Reihe zum Fototransistor. So kann man mit dem Poti die Sensibilität des Sensors verändern. Die Schaltung bewirkt, dass das Abdunkeln des Sensors den Messwert erhöht.

Versuchsaufbau

Versuchsaufbau

Dies können Sie im Gauge-Element auf dem Nutzerinterface zum heutigen Tag sehen. Dazu müssen Sie aber zunächst den Flow des heutigen Tages in Ihre Node-RED-Umgebung importieren und starten, natürlich nicht, ohne den gestrigen zu deaktivieren. Vergessen Sie auch nicht, das heutige Programm auf der Konfigurationsseite zu aktvieren und die IP des UDP-Sende-Nodes anzupassen.

Zusätzlich zur Anzeige der Messwerte kommt auch wieder die OnBoard-LED zum Einsatz. Diese soll, abhängig vom gemessenen Wert, die Farbe automatisch den Lichtverhältnissen anpassen. Wenn es absolut dunkel ist, soll die LED rot leuchten. Je heller es wird, desto mehr verändert sich die Farbe über Grün nach Blau. So können Sie Ihren Arbeitsplatz abends zum Beispiel mit einem entspannenden Rot beleuchten, während tagsüber ein kräftiges Blau leuchtet.

Der heutige Flow

Der heutige Flow

Der Range-Node Node rechnet die gemessenen Werte von 0 bis 4095 auf einen Bereich von 240 bis 0 um. Damit wird die gewünschte LED-Farbe im sogenannten HSV-Format gesendet. HSV steht für Hue, Saturation und Value, also Farbton, Sättigung und (hier) Helligkeitswert. Es handelt sich um eine alternative Darstellung zum RGB-System. Im HSV-Format wird der Farbton durch einen Winkel von 0° bis 360° dargestellt. Rot entspricht 0°, Grün liegt bei 120° und Blau bei 240°. Deswegen wird an dieser Stelle der Messwert in einen Wert bis 240 umgerechnet, denn damit ist die ganze Farbpalette von Rot bis Blau abgedeckt. Im folgenden Template-Node wird das Kommando zusammengestellt, das anschließend an das Board gesendet wird. Bei einem mittleren Wert wäre das Kommando:

{"cmd":"set_rgb_hsv","value":"hsv(120, 100%, 100%)"}

Die Prozentzeichen nach der Sättigung und der Helligkeit können auch weggelassen werden. Das Board ändert nun die Farbe und sendet als Bestätigung die gleichen Werte mit dem Kommando get_rgb_hsv zurück. Dies wird ebenfalls von Node-RED empfangen und anhand eines Color-Picker-Elements auf der Interface-Webseite dargestellt. So können Sie immer verfolgen, welche Farbe das Board gerade anzeigt.

48 Kommentare

  1. paulaner

    Test Phototransistor und LED.
    Wer nur die LED testen will, Phototransistor brücken.
    Ansonsten leuchtet die LED bei Lichteinfall, bei Verdunklung wird die LED auch dunkler.

    Antworten
    1. paulaner

      sorry, der Phototransistor gehört umgepolt, Emitter/langes Bein nach GND/Minus.

      Antworten
      1. paulaner

        hier das richtige Bild.

        Antworten
  2. Edwin

    Hallo,

    ich weiß nicht, ob es so gut ist wenn das Poti auf Anschlag bei 3,3V steht und der Phototransistor volles Sonnenlicht erhält.
    Wäre es da nicht besser gewesen den Phototransistor an dem freien Poti-Anschluss und GND anzuschließen?
    Bei mir ist es auch so, dass bei Dunkelheit die Spannung am Analogeingang am Höchsten ist und in der Sonne am Niedrigsten.

    Antworten
    1. paulaner

      Hallo,

      das was du vorschlägst ist auch meines Wissens die bessere Alternative, diese haben hier auch schon einige vorgeschlagen.

      Ich hab es mal so geändert, auch den Flow.
      – freies Ende Poti -> Phototransitor kurzes Bein, Kathode
      – langes Bein Phototransistor GND, Emitter
      – Schleifer an Pin 35
      – anderes Ende Poti an Plus

      Antworten
      1. paulaner

        falsches Bild

        Antworten
        1. paulaner

          noch besseres Bild und ein afgräumter Flow

          Antworten
    2. paulaner

      Hallo @all,
      nach ein paar mal probieren die 'Endlösung'.

      Zitat:
      'Bei mir ist es auch so, dass bei Dunkelheit die Spannung am Analogeingang am Höchsten ist und in der Sonne am Niedrigsten.'

      Wenn ich es nach meinem ersten Beitrag gemacht habe, ok.

      Beim zweiten mal habe ich den Phototransistor in die Pluleitung plaziert,
      Dunkel = kleiner Wert, Helll = großer Wert.

      Flow wie nach meinem letzten geposetet

      Antworten
  3. Benzo

    Irgendwie scheint es bei mir nicht so recht funktionieren zu wollen. Ich habe nun alles richtig aufgebaut, nachdem ich zuvor 2 mal einen kleinen Fehler gemacht hatte und jetzt leuchtet die RGB-LED nicht mehr durchgehend grün, sondern nur ganz schwächlich in den 3 Farben. Aus- und wieder einschalten bringt nichts, ebenso wenig ein erneutes Aktivieren des Programms von Tag 9. Die RGB-LED ist auf jeden Fall nicht kaputt, da beim Aktivieren des Tagesprogramms kräftig grün geblinkt wird, um danach wieder in diesen Dämmerzustand zu gehen. Die Messung der Helligkeit im UI funktioniert aber die LED reagiert nicht drauf. Jemand ne Idee?

    Antworten
    1. Benzo

      Jetzt kam bei mir gerade zum ersten Mal die "Unexpected number in JSON at position 36" Fehlermeldung. Seitdem wird nichts mehr gesendet. Anfangs kam immer noch "{"cmd":"get_adc_state","Light":3623}" aber das auch nur ein paar Sekunden lang und dann war komplette Funkstille bis eben die Fehlermeldung kam.

      Antworten
  4. Patrick

    Hallo,
    bei mir leider auch "Unexpected token { in JSON at position 36"
    LED auf dem board leuchtet rot, auf dem Dashboard steht die brightnss ständig auf 4095 und das Farbrad auf Rot. Das Poti oder der Fototransistor haben keinen Einfluss.
    Vielleicht hat ja jemand schon eine Lösung..
    LG
    Patrick

    Antworten
    1. paulaner

      Check noch mal deine Verdrahtung, ich habe mich auch schon mal um einen Pin vermacht und dann gewundert.
      Mal neu stecken, Wackelkontakt.
      Poti mal mittig stellen.
      Phototransistor verkehrt herum.
      Programm übertragen Tag 9 in den NodeESP
      deployen

      was vergessen?!

      Antworten
    2. paulaner

      und schei…. auf den "Unexpected token { in JSON at position 36" Bug, es geht trotzdem.

      Bei mir ist es nicht nur position 36, auch 0, 34, 35

      Antworten
      1. Patrick

        Hi paulaner,
        tja, was soll ich sagen… zweimal die Verdrahtung neu gemacht, Phototransistor gedreht programm neu geladen….
        Kein Erfolg.
        Tag 10 Probiert… auch nix
        Dabei hatte ich so gut aufgeholt (von tag 5 bis 9)
        Morgen werde ich mal die Spannung an Pin 35 messen. Heute muss ich das board ersteinmal zur Seite legen´.

        LG
        Patrick

        Antworten
        1. paulaner

          Hallo,

          man macht nicht alles mit einemmal, dann findet man nie den Fehler.
          Es ist zwar Mühsam aber Schritt für Schritt.
          Z.B. es war ein Wackler, jetzt hast du den Phototransistor gedreht, ja woran hat es gelegen, wenn es funktioniert oder auch nicht. Ausschlußverfahren!

          Ich meinte auch nicht du sollst den Phototransistor drehen, überprüfen!!!, es könnte doch sein du steckst ihn immer verkehrt rein, z.B.. Ich hätte wohl ein Fragezeichen setzen sollen.

          Es sind/waren nur Punkte die man überprüfen kann.

          Haben denn die anderen Tagesprogramme funktioniert?

          Prinzipiell braucht man wenn das Tagesprogramm, hier Tag 9 auf dem NodeESP ist, nur eine Spannung fürs Board und den Node-Red Server (meist über cmd/shell gestartet). Schon kann man den Phototransistor bedecken und die RGB-LED auf dem Board ändert die Farbe.(versuch den Poti in der Mitte).

          Mach ein Foto mit deinem Handy von deiner Schaltung, wo man was sieht, und poste es.

          Antworten
          1. Patrick

            So, nun habe ich die Spannung an 35 gemessen.
            Wie andere im Forum schon erkannt haben, ist der Schaltungsaufbau für’n A…
            Umgebau, geht…
            Mit dem unexpected token lebe ich dann mal

    3. paulaner

      Hallo,

      null Reaktion aufmeinen Vorschlag? Montag, der 10. Dezember 2018 um 22:44.

      Aber hier das gleiche Posten, wenn sich nichts geändert hat, weis es doch ein jeder, warum wiederholen?

      Antworten
      1. paulaner

        Streich den letzten Satz und nimm dafür meine Entschuldigung an.

        Erster Satz. Ich denke du hast noch keine Zeit gehabz, sorry.

        Antworten
  5. Andreas

    Handelt es sich bei dem Bauteil um einen npn- oder pnp-Foto-Transistor?

    Eine kurze Internetsuche sagt mit, dass das kurze Bein der Emitter ist. Und irgendwie kann ich mit der sich ergebenden Schaltung nichts anfangen (Annahme: npn).

    Antworten
      1. paulaner

        Vcc ist der Pin 35 des NodeESP !
        PWM halt.

        Antworten
        1. paulaner

          Quatsch mit Soße.

          Vout geht zum Pin 35 des NodeESP.

          Antworten
          1. paulaner

            nimm die linke Schaltung.
            Rc ist in dem Fall das Poti.

      2. paulaner

        Das ist aber das Wichtigste
        Weil es sich beim Fototransistor um ein Bauteil mit drei Anschlüssen handelt, gibt es mehrere Anschlussmöglichkeiten. Die gängigsten sind CE-Verstärker (Common Emitter) und CC-Verstärker (Common Collector) (Abbildung 3). Bei der CE-Konfiguration bewirkt Licht, dass der Ausgang von einem hohen Zustand in einen niedrigen Zustand schaltet. Bei der CC-Konfiguration erfolgt der Zustandsübergang in umgekehrter Richtung.

        Diagramm vom Fototransistor, der per CE- oder CC-Konfiguration angeschlossen werden kann

        Abbildung 3: Der Fototransistor kann wie ein normaler Transistor per CE- (links) oder CC-Konfiguration (rechts) angeschlossen werden. (Bildquelle: ON Semiconductor)

        Antworten
      3. Andreas

        Wenn das wie in der Abbildung ist, müsste das kurze Bein (Emitter) aber doch nach rechts gehen, oder?

        Ich hab mal mit meinem Multimeter durchgemessen, der Durchgang geht vom kurzem Bein zum langen Bein.

        Antworten
        1. paulaner

          schau mal in das Begleitheft, Seite 18, Bild.
          Da steht "Phototransistor: Short leg left", kurzes Bein links.

          Antworten
        2. paulaner

          hie mal noch die Ersatzschaltung

          Antworten
          1. paulaner

            nach ein Bild, das kurze Bein ist der Collektor und gehört an Plus.

          2. Andreas

            Ah, kurzes Bein ist also der Kollektor? Diese Info hat mir gefehlt.

            Meine Internetsuche hat halt ergeben, dass das der Emitter ist. Daher meine falsche Schaltung.

            Danke für die Informationen

          3. paulaner

            und noch Eins.
            f.k. hat es doch auf seinem Bild gezeigt, "short leg left". kurzes Bein links, also an Plus.

  6. jue

    Der ESP flutet das Netz mit UDP-Meldungen und man kann mangels Quellcode nichts dagegen tun. Bin jetzt zurückgegangen auf das Programm von Tag 7, da sendet er nur, wenn man den Knopp drückt.
    Da hier offensichtlich so einige mit Vorkenntnissen unterwegs sind, wird es wirklich langsam Zeit, die Quellen des Codes für den ESP bereitzustellen. Ansonsten vergeht zumindest mir schon langsam der Spaß.

    Antworten
    1. Marco

      Dem stimme ich zu, die Programmierung ist eigentlich nur serverseitig.
      Gut, node-red habe ich vorher nie genutzt, mal was neues.
      Beim IOT kommts aber nicht nur auf den Server an, vor allem weil man bei Problemen dem Client auch etwas "Intelligenz" geben sollte.
      Ein Einblick wie das ganze zusammen mit FreeRTOS läuft wäre klasse.
      Vor allem langweilt sich der Micro-SD-Slot…

      Antworten
  7. Heinz

    Hallo Zusammen,

    Bei mir funktioniert das heutige Script, habe aber auch den Error "Unexpected number in JSON at position 36"
    Der ESP sendet viel zu schnell die UDP Packete. Mein Browser kommt fast nicht mit. Ich musste den Debug Node abhängen, sonnst blokiert es alles mit so vielen Meldungen.

    Auch das ganze Netzwerk bei mir wird regelrecht überflutet mit den Meldungen.
    Es wäre schön, wenn wir den sende Rythmus per Kommando einstellen könnten. (Auf z.b. alle 1sek eine Meldung)

    Gruss und schönen Sonntag
    Heinz

    Antworten
  8. Justus

    Bei mir leuchtet die onboard LED leider nur in einem sehr dunklen grün und die farbe lässt sich auch nicht umstellen. :(
    Es ist nach mehrmaligen überprüfen alles richtig gesteckt. UDP und Port sind korrekt eingestellt. Kann es sein, dass mein Board kaputt ist? Die onboardLed hat auch noch nie gelb geleuchtet.. (beim boot oder bei den ersten Tagen). Und das Treppenhauslicht hat auch nur einmal kurz funktioniert, obwohl ich nichts verändert hat.

    Antworten
    1. paulaner

      zeig uns doch deine Debugmeldungen.

      Antworten
    2. thomas

      dreh mal am Poti. bei mir funktionierst

      Antworten
  9. Jens

    Bei mir bleibt die LED einfach ROT und die Node-RED UI zeigt den Wert 4095 an. Sporadisch erscheint die Meldung "Unexpected token { in JSON at position 36" im Node-RED Debug. Ich habe den Aufbau mehrfach geprüft, die IP-Adresse bei der letzten Node im Flow geändert und auch schon alles neu gestartet.

    Ist evtl. der Fototransistor defekt?

    Antworten
    1. Jens

      Nachdem ich den Poti entfernt und erneut eingesetzt habe, funktioniert es jetzt.

      Antworten
  10. Frank

    Der Json-Fehler kommt offenbar daher dass der Nodeesp ab und zu falsches Json sendet, z.B.:
    {"cmd":"get_adc_state","Light":3895}get_rgb_hsv","value":"hsv(10,100,100)"}
    Der Teil nach der schließenden Klammer kommt noch aus dem Paket vorher.

    Antworten
    1. Bernd

      Stimmt. Habe ich jetzt auch gesehen. Fehler im Programm im NodeESP Day9. Könnte der Autor fk mittels eines Firmware-Updates beheben…

      Antworten
    2. paulaner

      Auch ich hab es bei ca. 100 Übertragungen 1x dabei.

      Antworten
  11. Taraxacum

    Klappt. Nur müßte es bei Brightness Values eher 'Darkness Values' heißen, weil der Ausschlag höher ist, je stärker der Fototransistor verdunkelt wird.
    Und der Debugger meldet:msg : string[41]
    "Unexpected token { in JSON at position 36"
    Hab dazu hier etwas gefunden: https://daveceddia.com/unexpected-token-in-json-at-position-0/, weiß aber nicht, was ich in meinen Einstellungen ändern soll.

    Antworten
    1. paulaner

      Hier mal meine Änderung:
      Sind bei Tag 10 und konnen da Anleihen nemen.

      Antworten
  12. Stefan

    Guten Tag

    Wenn ich das Poti ganz nach Rechts drehe, mache ich doch ein Kurzschluss zwischen GND und 3.3 Volt, oder sehe ich da etwa falsch?

    Antworten
    1. thymjan

      Da ist doch noch der Phototransistor dazwischen.

      Antworten
      1. Marco

        Ein Phototransistor verträgt trotzdem keine zu hohen Ströme, man hätte zum Schutz einen Widerstand vorsehen sollen (der 1k-Widerstand der LED wäre ausreichend).

        Antworten
  13. wildi

    Guten Morgen
    Es funktioniert. Irritierend ist die Meldung "Unexpected number in JSON at position 36", die ich im debug-Fenster erhalte. Kommt vom Board ab und zu eine falsche JSON Meldung? Was ist die Ursache und wie kann ich Meldung loswerden?
    Vielen Dank und einen schönen Sonntag
    Gérard

    Antworten
    1. _marc_

      Hier ein Hinweis, falls die Schaltung nicht auf Anhieb klappt.
      Das Drehpoti hat in der Heft-Zeichnung eine Größe von 5×6 Rasterpunkten.
      Mein geliefertes Poti hat aber eher das Rastermaß 5×7. Wer es so einsteckt und dann von dort (stumpf & doof wie ich)
      weiter zählt baut die Schaltung falsch auf. Also die Beinchen etwas zusammen drücken, oder den Aufbau anpassen.
      Gibt dann auch nur selten JSON-Fehlermeldungen.

      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.