Einfacher Dämmerungssensor

  • Ich betreibe per Node-RED 443MHz Schaltdosen die Beleuchtung am Abend per pilight einschalten. Das funktioniert auch soweit gut aber heute leuchteten die Lampen obwohl es noch hell draussen war. Bislang werden sie über den Dämmerungszeitpunkt geschaltet was auch i.d.R. io ist. Aber ich habe schon öfter festgestellt dass der Zeitpunkt zu früh sein kann wenn das Wetter schön ist. Ergo muss ein Dämmerungssensor her. Was ist denn eine kostengünstige und einfach zu implementierende Möglichkeit¿

    "Really, I'm not out to destroy Microsoft. That will just be a completely unintentional side effect."

    Linus Benedict Torvalds, 28.9.2003


    Hast Du die Woche schon Deine Raspberry gesichert =O Bei mir tut das raspiBackup automatisch ;)

  • Einen LDR kenne ich noch aus meiner Jugend mit einem Kosmos Elektobaukasten. Nur habe ich dann spaeter nicht mit der Elektrotechnik im Detail befasst sondern mich der Softwareentwicklung gewidmet.


    Kurzum: Loeten kann ich wenn mir jemand einen Bauplan gibt. Aber das primaere Problem ist wie ich den Daemmerungszustand digital per SW und wenn moeglich per pilight erfassen kann :conf:

    "Really, I'm not out to destroy Microsoft. That will just be a completely unintentional side effect."

    Linus Benedict Torvalds, 28.9.2003


    Hast Du die Woche schon Deine Raspberry gesichert =O Bei mir tut das raspiBackup automatisch ;)

  • Das kann ich noch zusammenlöten :lol:. Ich denke das probiere ich mal auf meinem Breadboard aus. Ein digitales Signal bekommt man so wie ich sehe eher indirekt durch das Python Programm. Aber eigentlich suche ich eher nach einem Sensor der seine Messwerte - also dem Daemmerungswert per BT oder WLAN versendet.

    "Really, I'm not out to destroy Microsoft. That will just be a completely unintentional side effect."

    Linus Benedict Torvalds, 28.9.2003


    Hast Du die Woche schon Deine Raspberry gesichert =O Bei mir tut das raspiBackup automatisch ;)

  • > Aber eigentlich suche ich eher nach einem Sensor der seine Messwerte - also dem Daemmerungswert per BT oder WLAN versendet.

    Oh, davon stand aber nichts in der Spezifikation :)


    Das waere dann ein Fall fuer einen ESP oder was aehnliches. Die haben auch gleich einen AD-Wandler an Bord.

  • Jupp, an einen Arduino habe ich auch schon gedacht.


    PS: Ich gebe Dir Recht dass die Spezifikation etwas knapp ist. Aber ein Subject Textfeld ist dafuer auch etwas zu knapp :)

    "Really, I'm not out to destroy Microsoft. That will just be a completely unintentional side effect."

    Linus Benedict Torvalds, 28.9.2003


    Hast Du die Woche schon Deine Raspberry gesichert =O Bei mir tut das raspiBackup automatisch ;)

  • eigentlich kannst du doch mit dem LDR und einem Kondensator die Aufladezeit ermitteln,


    ein GPIO auf Ausgang legt high an damit an einen R zund weiter zum C nach GND.

    Zwichen R und C einen weiteren GPIO auf Eingang wird irgendwann auf high kommen mit T = R x C.

    Je kleiner dre R vom LDR wird bei mehr Licht geht es eben schneller!

    Die Zeit verkützt sich bis der 2te GPIO high erkennt, voila ADC ohne ADC Chip.

    Du musst nur ab und an mal wieder den GPIO auf low legen.


    Ein leerer Kondensator ist aber ein Kurzschluss und das mag der GPIO nicht als musst du den Strom begrenzen mit 1k.

    Der LDR sollte also viel größer sein wenn dunkel! (ich denke so an 12k)

    https://www.ebay.de/itm/10x-Fo…and-LDR-5528/252756220098

    der hier sieht gut aus:

    Widerstand bei Dunkelheit 1MOhm

    Widerstand bei Helligkeit: 10k Ohm – 29k Ohm


    bei 3T ist der C voll Umschaltschwelle wird bei 1T liegen

    bei hell also geschätzt mit 1nF (1 nano Farad oder 1x10-9 F) sind 1*10-9 As/V * 15000 V/A kürzt sich raus...


    ist spät , grübel 15µs bis high am GPIO wenn hell

    wenn dunkel 60x länger (1M/15k) ~1ms


    Das sollte doch mit einer LIB messbar sein, selbst im 100µs Raster, ich bin da nicht so auf dem laufenden ds dreamshader hatte da mal was ermittelt was mit der LIB so geht, es gibt ja mehrere!

    Das kann man besimmt experimentell ermitteln, notfalls mit den Werten spielen, Kondensator etwas größer oder etwas kleiner.


    Macht man den Kondensator 10x größer wirds bequemer

    150µs bis 10ms, so schnell braucht das keiner bei Dämmerung, also gleich zu Kondensator 100x größer


    -> 100nF gibt ca. 1,5ms bis 100ms damit dürfte das mit dem 100µs Raster machbar sein, notfalls

    Kondensator 1000x größer

    -> 1µF gibt ca. 15ms(hell) bis 1s(dunkel)


    so aus dem Bauch


    nun braucht man "nur" noch periodisch den Ausgangs GPIO umschalten H/L/H/L und misst die Zeiten!


    im 10s Takt sollte doch reichen, man kann auch dann gemütlich den Mittelwert bilden aus einigen Messungen, die Helligkeit in der Dämmerung ändert sich ja langsam ausser es sind Wolken die sind schneller!

    Images

    lasst die PIs & ESPs am Leben !
    Energiesparen:
    Das Gehirn kann in Standby gehen. Abschalten spart aber noch mehr Energie, was immer mehr nutzen. Dieter Nuhr
    (ich kann leider nicht schneller fahren, vor mir fährt ein GTi)

    Edited 2 times, last by jar ().

  • Jupp, an einen Arduino habe ich auch schon gedacht.

    also dem Daemmerungswert per BT oder WLAN versendet.

    Ne, du denkst an einen ESP ;)


    Als weitere Alternative zu dem was jar und Tell schon vorgeschlagen haben, könntest du auf einen digitalen Sensor zurückgreifen:

    https://www.adafruit.com/category/61

    • Official Post

    Nur der Vollständigkeit (und der Nachwelt ;)) wegen, hier zwei Links, wie man das mit dem RPi, LDR, gpiozero Modul und Python3 lösen könnte:


    https://gpiozero.readthedocs.i…recipes.html#light-sensor

    https://gpiozero.readthedocs.i…nput.html#lightsensor-ldr


    Das liefert Werte zwischen 0 und 1.


    Aber ich würde auch zu einem ESP tendieren.

  • Ne, du denkst an einen ESP ;)

    Aber ich würde auch zu einem ESP tendieren.

    es gibt ESP die haben auch gleich zusätzlich 433MHz onBoard!

    https://www.banggood.com/de/De…de-Version-p-1639291.html

    https://de.banggood.com/SX1278…-32-Module-p-1238495.html


    Also ADC für die LDR Messung, Verarbeitung und gleich weiter zu 433MHz, per wlan OTA musst nicht mal Hand anlegen.

    Es gibt so schöne 3,3V Netzteile für die Steckdose oder Leerdose:

    https://de.elv.com/recom-acdc-…277-33-v-dc-900-ma-111726

    https://files2.elv.com//public…_w02_netzteil_600x600.jpg

    lasst die PIs & ESPs am Leben !
    Energiesparen:
    Das Gehirn kann in Standby gehen. Abschalten spart aber noch mehr Energie, was immer mehr nutzen. Dieter Nuhr
    (ich kann leider nicht schneller fahren, vor mir fährt ein GTi)

    Edited once, last by jar ().

  • Vielen Dank fuer Eure Berechnungen und Links. Wie man sieht fuehren viele Wege nach Rom :lol:.

    Ne, du denkst an einen ESP ;)

    Jupp. Natuerlich hast Du Recht :)

    Ich wollte immer mal mit einem ESP rumspielen. Damit hatten damals jar und fred0815 bei unserem Treffen in Schmidhofen rumgespielt und es sah interessant aus. D.h. ich besorge mir ein ESP32 und die paar Bauteile die jar berechnet hat und baue das mal prototypmaessig auf einem Breadboard auf. Dann noch ein kleines Prograemmchen schreiben welches die Aufladezeit des Kondensators misst und per WLAN seine Daten an ein MQTT Broker (Moskito) schickt die dann von Node-Red gelesen werden um die Switches zu steuern. Wenn dann alles soweit funktioniert besorge ich mir ein paar weitere ESP32 die ich dann in die Raeume stelle in denen die Helligkeit gemessen werden soll. So wie ich es sehe muss ich mich dann auch mit Deep Sleep auseinandersetzen sofern ich die ESP32 mit Akku betreiben will.

    Ist mein Ansatz soweit vernuenftig?

    "Really, I'm not out to destroy Microsoft. That will just be a completely unintentional side effect."

    Linus Benedict Torvalds, 28.9.2003


    Hast Du die Woche schon Deine Raspberry gesichert =O Bei mir tut das raspiBackup automatisch ;)

    Edited once, last by framp ().

  • Hallo framp,

    Ist mein Ansatz soweit vernuenftig?

    so weit ist alles vernünftig. Nur: ein LDR wird nicht aufgeladen (es ist kein Kondensator). Es ist einfach nur ein Widerstand.


    Entweder misst Du dessen Widerstand über einen Spannungsteiler und definierst Grenzwerte, ab dessen Unterschreitung / Überschreitung etwas passieren soll. Oder du lädst dann doch einen Kondensator. Nach tau = R * C ist die Ladezeit proportional zum Widerstand. Dann musst Du statt eines Helligkeitswertes eine Zeit festlegen, nach deren Überschreitung etwas passieren soll.



    Beste Grüße


    Andreas

    Ich bin wirklich nicht darauf aus, Microsoft zu zerstören. Das wird nur ein völlig unbeabsichtigter Nebeneffekt sein.
    Linus Torvalds - "Vater" von Linux

    • Icon-Tutorials (IDE: Geany) - GPIO-Library - µController-Programmierung in Icon! - ser. Devices - kein Support per PM / Konversation

    Linux is like a wigwam, no windows, no gates, but with an apache inside dancing samba, very hungry eating a yacc, a gnu and a bison.

  • so weit ist alles vernünftig. Nur: ein LDR wird nicht aufgeladen (es ist kein Kondensator). Es ist einfach nur ein Widerstand.

    Das habe ich zwar richtig verstanden (das R in LDR steht ja fuer resistor - also Widerstand) aber falsch beschrieben :blush:. Ist natuerlich der Kondensator der sich auflaedt :)

    "Really, I'm not out to destroy Microsoft. That will just be a completely unintentional side effect."

    Linus Benedict Torvalds, 28.9.2003


    Hast Du die Woche schon Deine Raspberry gesichert =O Bei mir tut das raspiBackup automatisch ;)

  • der ESP32 hat ADC also brauchst du nur LDR zu VCC mit R nach GND.


    Am Knoten zwischen LDR und R den Port mit ADC und du kannst direkt den Wert ablesen


    Ich denke an 100-200 K nach GND bei einem LDR mit 10k bei hell und 1M bei dunkel

    lasst die PIs & ESPs am Leben !
    Energiesparen:
    Das Gehirn kann in Standby gehen. Abschalten spart aber noch mehr Energie, was immer mehr nutzen. Dieter Nuhr
    (ich kann leider nicht schneller fahren, vor mir fährt ein GTi)

  • der ESP32 hat ADC also brauchst du nur LDR zu VCC mit R nach GND.

    Das ist natürlich noch besser mit einem ADC. Hofei hat angemerkt dass ich auch einem ESP8266 nehmen könnte da ich kein BT brauche. Aber da ist dann wieder kein ADC :conf:

    "Really, I'm not out to destroy Microsoft. That will just be a completely unintentional side effect."

    Linus Benedict Torvalds, 28.9.2003


    Hast Du die Woche schon Deine Raspberry gesichert =O Bei mir tut das raspiBackup automatisch ;)

  • Das ist natürlich noch besser mit einem ADC. Hofei hat angemerkt dass ich auch einem ESP8266 nehmen könnte da ich kein BT brauche

    es gibt ESP die haben auch gleich zusätzlich 433MHz onBoard!

    wieso Ziel ist doch 433MHz, also warum nicht ein ESP32 mit 433 MHz on board, hatte ja Links eingestellt!

    RE: Einfacher Dämmerungssensor

    lasst die PIs & ESPs am Leben !
    Energiesparen:
    Das Gehirn kann in Standby gehen. Abschalten spart aber noch mehr Energie, was immer mehr nutzen. Dieter Nuhr
    (ich kann leider nicht schneller fahren, vor mir fährt ein GTi)

  • Doch schon:

    https://randomnerdtutorials.co…alog-values-with-nodemcu/



    EDIT:

    Gute Frage was jetzt das Ziel ist, das kann aber nur framp beantworten:

    Aber eigentlich suche ich eher nach einem Sensor der seine Messwerte - also dem Daemmerungswert per BT oder WLAN versendet.

    Ich betreibe per Node-RED 443MHz Schaltdosen die Beleuchtung am Abend per pilight einschalten.

    Aber ich tippe mal, da die Werte in Node-RED benötigt werden, damit es nur ein ausführendes Programm gibt, welche die Schaltdosen ansteuern darf, ist das Ziel Wlan.

  • egal, T ist identisch

    lasst die PIs & ESPs am Leben !
    Energiesparen:
    Das Gehirn kann in Standby gehen. Abschalten spart aber noch mehr Energie, was immer mehr nutzen. Dieter Nuhr
    (ich kann leider nicht schneller fahren, vor mir fährt ein GTi)