HowTo: pxlBlck – Automatische Einstellung der Displayhelligkeit via LDR

Wenn Ihr mit Eurem pxlBlck nicht nur über Ereignisse informiert bleiben wollt und ihn auch dazu nutzt die aktuelle Uhrzeit anzuzeigen, dann ist Euch vllt. schon aufgefallen, dass eine fest eingestellte Display-Helligkeit nicht immer passt.

Gerade wenn Ihr Euren pxlBlck in der Nähe eines Fensters stehen habt müsst Ihr die Display-Helligkeit Tagsüber relativ hoch einstellen um die Uhrzeit vernünftig ablesen zu können. Leider ist die gleiche Helligkeits-Einstellung für die Dämmerung oder Nacht wiederum zu Hell.

Aber dieses Problem lässt sich leicht lösen. Alles was Ihr dazu braucht ist in diesem Artikel beschrieben.


Sicherheitshinweise

Ich weiß die folgenden Hinweise sind immer irgendwie lästig und wirken unnötig. Aber leider haben schon viele Menschen die es "besser" wussten aus Leichtsinnigkeit Augen, Finger oder anderes verloren bzw. sich verletzt. Im Vergleich dazu ist ein Datenverlust fast nicht der Rede Wert, aber auch diese können echt ärgerlich sein. Deswegen nehmt Euch bitte fünf Minuten Zeit um die Sicherheitshinweise zu lesen. Denn auch das coolste Projekt ist keine Verletzung oder anderen Ärger wert.
https://www.nerdiy.de/sicherheitshinweise/

Affiliatelinks/Werbelinks

Die hier in aufgeführten Links zu Online-Shops sind sogenannte Affiliate-Links. Wenn Du auf so einen Affiliate-Link klickst und über diesen Link einkaufst, bekommt Nerdiy.de von dem betreffenden Online-Shop oder Anbieter eine Provision. Für Dich verändert sich der Preis nicht. Falls Du Deine Einkäufe über diese Links tätigst unterstützt Du Nerdiy.de dabei auch in Zukunft weitere nützliche Projekte anbieten zu können. 🙂 


Voraussetzungen

Für den Aufbau müsst ihr Lötaufgaben bewältigen. Die folgenden Artikel enthalten Tipps dazu.

Außerdem solltet Ihr Euren pxlBlck bereits aufgebaut und programmiert haben. Infos dazu findet Ihr in den folgenden Artikeln.

Benötigtes Werkzeug:

Benötigtes Material:

In der folgenden Liste findet Ihr alle Teile die Ihr zum Aufbau benötigt.


Einen LDR an den ESP8266 anschließen

Damit der ESP8266 der in Eurem pxlBlck verbaut ist die Umgebungshelligkeit einlesen kann müsst Ihr zunächst einen LDR anschließen. Dies ist ein Lichtabhängiger Widerstand, dessen Widerstand von der Umgebungshelligkeit des LDRs abhängig ist.

Verändert sich also die Helligkeit, verändert sich auch der Widerstand des LDR. Wenn der LDR über einen Spannungsteiler an den ESP8266 angeschlossen ist, kann dieser Widerstand und damit die Helligkeit indirekt mithilfe des ADCs gemessen werden.

In den folgenden Artikeln zu den verschiedenen pxlBlck-Plattformen ist der Anschluss des LDRs detailliert beschrieben.

Den grundsätzlichen Schaltplan zum Anschluss eines LDRs an einen ESP8266 könnt Ihr aber auch auf dem folgenden Schaltplan sehen.

Grundsätzlich wird ein LDR nach folgendem Schaltplan an einen ESP8266 angeschlossen.

ADC des ESP8266 konfigurieren

Damit die helligkeitswerte des angeschlossenen LDR’s eingelesen werden können müsst Ihr zunächst den Analog digital Converter des ESP8266 konfigurieren. Dank ESPEasy ist dies aber schnell erledigt.

Wechselt dazu in die Weboberfläche Eures ESPEasy-Geräts. Gebt dazu die IP Adresse des Geräts in die Adresszeile Eures Browsers ein.

Wie Ihr die IP-Adresse von Geräten in Eurem Netzwerk herausfindet ist auch im Artikel IP-Adresse der Geräte im Netzwerk anzeigen/herausfinden beschrieben.

Wechselt dann in den Bereich “Devices”.

In der gezeigten Tabelle sind nun alle konfigurierten Devices aufgelistet.

Klickt nun auf den “Edit” Button in der ersten leeren Zeile.

Ihr werdet nun auf eine Seite umgeleitet wo Ihr ein Device konfigurieren könnt.

Um hier den Analog digital Converter zu konfigurieren müsst Ihr hier nun den Eintrag

Analog input – external

auswählen.

Nun solltet Ihr das das Device “Analog input – external” so konfigurieren wie im Bild links angegeben.

Die Einstellungen müsst Ihr dann noch mit einem Klick auf “Submit” bestätigen.


Rules aktivieren und konfigurieren

Nach der Konfiguration des Analog Digital converters müsst Ihr nun nur noch die korrekten “Rules” konfigurieren, damit Änderungen der Umgebungshelligkeit auch zu Änderungen der eingestellten Display-Helligkeit führen.

Klickt dazu auf den (rot markierten) Button zum Tab “Tools”

Nun müsst Ihr noch auf die “Advanced” Seite wechseln. Klickt dazu auf den rot markierten Button.

Aktiviert die Möglichkeit Rules konfigurieren zu können dann indem Ihr die Checkbox in der Sektion “Rules” aktiviert.

Bestätigt diese Einstellungen dann durch einen Klick auf “Submit”

Nachdem Ihr den Button betätigt habt, müsst Ihr die Seite ggf. nochmal neu laden, damit…

…der Button zu den “Rules” sichtbar wird.

Klickt nun darauf um den “Rules”-Tab zu öffnen.

Tragt nun in das (rot markierte) Rules Textfeld die folgende Regel ein.

On ADC#Analog do
pbbr,0,[ADC#Analog],1,1,15,
endon

Diese Regel führt dazu, dass jede Sekunde die aktuelle Display-Helligkeit an die Umgebungshelligkeit angepasst wird.

Mehr Infos zu diesem Befehl findet Ihr auch in dem Artikel pxlBlck – Befehle zur Konfiguration des pxlBlck

Ob die automatische Einstellung der Helligkeit korrekt funktioniert könnt Ihr auch im Device-Tab sehen.

Dort wird (im rot markierten Bereich) die aktuell eingelesene Helligkeit des LDRs und die daraus resultierende Display-Helligkeit angezeigt und aktualisiert.


Viel Spaß mit dem Projekt

Ich hoffe bei euch hat alles wie beschrieben funktioniert. Falls nicht oder ihr Fragen oder Anregungen habt lasst es mich in den Kommentaren bitte wissen. Ich trage dies dann ggf. in den Artikel nach.
Auch Ideen für neue Projekte sind immer gerne willkommen. 🙂

P.S. Viele dieser Projekte - besonders die Hardwareprojekte - kosten viel Zeit und Geld. Natürlich mache ich das weil ich Spaß daran habe, aber wenn Du es cool findest, dass ich die Infos dazu mit Euch teile, würde ich mich über eine kleine Spende an die Kaffeekasse freuen. 🙂

Buy Me a Coffee at ko-fi.com       

2 Kommentare

  1. Hallo Fabian,

    könntest du mir bitte die Werte aus der Two Point Calibration erläutern.
    Ich hätte nämlich gerne die LEDs 1 – 2 Stufen heller, als bei der jetzigen Einstellung.

    LG
    Anke

    1. Hey Anke,
      die Two-Point-Calibration ist eigentlich eine Skalierung. (Der Name ist etwas unglücklich gewählt finde ich.) Damit wird der Wertebereich des ADCs auf einen neuen Wertebereit skaliert. Im Fall des ESPs kann der ADC Werte zwischen 0 und 1023 annehmen. Da der LDR über einen Spannungsteiler angeschlossen ist bewegt sich dieser Bereich (je nach Helligkeit) zwischen 0 und 400. Dies variiert natürlich etwas nach Aufstellort. Wenn du es genau “einmessen” willst könntest du den Haken bei “Calibration enabled” entfernen und dir dann die Werte des ADCs bei Dunkelheit und maximaler Beleuchtung (zum Beispiel Tagsüber oder Zimmerbeleuchtung an) aufschreiben. Die Werte trägst du dann unter Point 1 (Wert bei Dunkelheit) und Point 2 (Wert bei maximaler Helligkeit) ein.
      Nun zu der eigentlichen Skalierung:
      Da das pxlBlck plugin die Helligkeit mit einem Wertebereich von 1-15 einstellt, muss der Wertebereich des ADCs nun noch auf den Wertebereich des pxlBlck plugins skaliert werden. In dem im Beitrag gezeigten Beispiel wird also der Wertebereich 0-400 auf den Wertebereich 0-10 skaliert. Das heißt der ADC Wert 0 wird zu einer 0 skaliert, der ADC Wert 200 wird zu einer 5 skaliert und der ADC Wert 400 wird zu einer 10 skaliert. Auch Werte über oder unter 400 bzw. 0 werden so skaliert. Ein ADC von 600 ergibt so zum Beispiel einen skalierten Wert von 15. 🙂
      Ich hoffe ich habe es verständlich erklärt. Ansonsten gib gerne nochmal bescheid. 🙂
      Beste Grüße
      Fabian

Kommentar hinterlassen

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.