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.
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 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.
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.
sorry, der Phototransistor gehört umgepolt, Emitter/langes Bein nach GND/Minus.
hier das richtige Bild.
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.
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
falsches Bild
noch besseres Bild und ein afgräumter Flow
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
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?
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.
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
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?!
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
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
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.
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
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?
Streich den letzten Satz und nimm dafür meine Entschuldigung an.
Erster Satz. Ich denke du hast noch keine Zeit gehabz, sorry.
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).
mal hier ein Link und Bild
https://www.digikey.de/de/articles/techzone/2018/sep/how-to-use-photodiodes-and-phototransistors-most-effectively
Vcc ist der Pin 35 des NodeESP !
PWM halt.
Quatsch mit Soße.
Vout geht zum Pin 35 des NodeESP.
nimm die linke Schaltung.
Rc ist in dem Fall das Poti.
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)
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.
schau mal in das Begleitheft, Seite 18, Bild.
Da steht „Phototransistor: Short leg left“, kurzes Bein links.
hie mal noch die Ersatzschaltung
nach ein Bild, das kurze Bein ist der Collektor und gehört an Plus.
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
und noch Eins.
f.k. hat es doch auf seinem Bild gezeigt, „short leg left“. kurzes Bein links, also an Plus.
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ß.
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…
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
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.
zeig uns doch deine Debugmeldungen.
dreh mal am Poti. bei mir funktionierst
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?
Nachdem ich den Poti entfernt und erneut eingesetzt habe, funktioniert es jetzt.
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.
Stimmt. Habe ich jetzt auch gesehen. Fehler im Programm im NodeESP Day9. Könnte der Autor fk mittels eines Firmware-Updates beheben…
Auch ich hab es bei ca. 100 Übertragungen 1x dabei.
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.
Hier mal meine Änderung:
Sind bei Tag 10 und konnen da Anleihen nemen.
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?
Da ist doch noch der Phototransistor dazwischen.
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).
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
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.