Licht an / aus bei betreten bzw. verlassen des Raumes

Heute ist Stammtischzeit:
Jeden Donnerstag 20:30 Uhr hier im Chat.
Wer Lust hat, kann sich gerne beteiligen. ;)
  • Hallo,
    ich denke, dass die Überschrift das Wesentliche schon ganz gut ausdrückt. Doch fangen wir am Anfang an.

    Ich ziehe demnächst um und da ich mit meinem Raspberry bisher nicht dolle mehr gemacht habe, als diesen als KODI, als Downloader oder als (recht langsames) NAS zu verwenden, wollte ich mich diesmal zwingen, damit etwas Ordentliches zu machen.

    Ziel soll es sein, dass das Licht im Wohnzimmer automatisch angeht, wenn ich hineinkomme und auch automatisch ausgeht, wenn ich es wieder verlassen. Es gibt 2 Zugänge ins Wohnzimmer, die also beide überwacht werden sollten.

    Dies irgendwie über Bewegungsmelder zu machen, erscheint mir nicht zielführend, da das Licht ja auch an bleiben soll, wenn einer der Raum verlässt und noch 3 Leute drin sitzen.

    Ich bin somit noch etwas auf der Suche nach dem richtigen Weg…

    Ggf. mittels Lichtschranken, welche zählen, wie viele Personen den Raum betreten und verlassen. Bei =0 Licht aus. Bei größer 0 Licht an.
    Ggf. noch mit Zeitschaltung, dass das Licht nicht unbedingt mittags um 12 Uhr angeht bzw. mittels Helligkeitsmessung, da bei trüben Wettern ggf. auch um 16 Uhr Licht gebraucht wird.

    Der Einfachheit halber, hätte ich einfach eine Lampe (die ich übrigens auch noch bauen will) an einer Steckdose verwendet, welche mittels Funksteckdose über den Raspberry Ein- und ausgeschaltet werden kann.

    Die Frage die sich mir stellt ist: Kann das so funktionieren oder ist dieses Projekt sehr ehrgeizig für einen Neuling ohne Erfahrung? Oder gibt es da einfache Pakete, die ich nur noch installieren muss und dann läuft das alles?

    Ich bin für jeden Hinweis dankbar und sehr motiviert das Projekt durchzuziehen. :)

    Danke und Gruß
    Alex

  • Licht an / aus bei betreten bzw. verlassen des Raumes? Schau mal ob du hier fündig wirst!

  • Das ist auf jeden Fall ein Stück Arbeit, aber nicht unmöglich (Toyota :lol: ). Eine Fertiglösung wirst du für genau diesen Fall nicht finden, aber ich denke der Ansatz mit den Lichtschranken sollte machbar sein. Aber: Woher weiß die Lichtschranke ob jetzt z.B. zu beiden Türen jemand hereingekommen ist? (n = Menschen im Raum)

    n: 0 -> 1 -> 2

    oder ob einer zur einen Tür rein und zur anderen wieder raus ist?

    n: 0 -> 1 -> 0

    Die Lichtschranke registriert nur zwei Unterbrechungen, was tun mit der Info? Da muss wohl noch mehr her... Auf jeden Fall dranbleiben!

    LG

  • Hallo Alex,

    wenn es Dir gelungen ist, das Funktionsprinzip eines PIR-Sensors verstanden zu haben und EIN-AUS über einen Raspberry Pi (oder Arduino) abzufragen, dann ist der Rest recht einfach.

    Ich würde dabei so vorgehen, dass ich mehrere PIR-Sensoren einsetze. Ich würde jeden auf ganz kurzsichtig einstellen und an jeden Eingang / Ausgang zwei von denen aufstellen (vor und hinter der Tür)

    Der erste Sensor, der sich meldet, signalisiert die Tür, auf die sich jemand zubewegt. In Verbindung mit dem zweiten Sensor ist die Richtung klar: "Rein" oder "Raus".

    Bei "Rein" wird der Zähler der Anwesenden erhöht, bei "Raus" verringert. Bei null Anwesenden geht's Licht aus.

    Ist die Zahl der Anwesenden > 1 geht's Licht nur an, wenn es zu dunkel ist (Photodiode oder LDR).

    Hast Du Dir schon eine Programmiersprache ausgeguckt? Ich frage deswegen, weil ich zu etwas algorithmisch recht Ähnlichem einen 9-Zeiler in der Programmiersprache Icon geschrieben hatte auf Wunsch hier im Forum erläutert habe. Ich schätze, dass hier vielleicht so 6 Zeilen dazu kommen würden. Vielleicht aber auch nicht...


    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

    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.

  • *ÄheeeeeeemPythonnatürlichwasdennsonst* ;)

    Also die Funktionsweise von Andreas würde natürlich auch mit den Lichtschranken gehen. Beweungsmelder sind vielleicht ein wenig "robuster". Für die Helligkeitsabfrage brauchst du nur einen Photowiderstand und nen Elko + ein wenig SW. Je länger der Elko zum laden braucht und dann schlussendlich einen GPIO auf HIGH zieht, desto dunkler ist's. Wenn der Pi am WLAN oder Ethernet hängt, brauchst du für die Uhrzeit keine extra HW, ansonsten sollte eine einfache HWclock ihren Dienst tun (DS3231 z.B.).

    LG

  • Hallo,

    ich halte das Projekt für kaum realisierbar. Die Richtungserkennung ist das kleinste Problem. Über 2 Lichtschranken kann man feststellen ob die Lichtschranke die sich mehr im Raum befindet zu erst unterbrich - dann geht jemand und wenn sie zu letzt wieder freigegeben wird wird jemand das Zimmer betreten. Aber was ist, wenn 2 Personen nebeneinander gehen und es nur eine Unterbrechung gibt? Was ist wenn eine Person erst mit einem Arm und dann mit dem Bauch das zweite mal unterbricht? Dan muß aus dem leeren Zimmer jemand raus gehen damit niemand mehr im Zimmer ist und das Licht aus geht.

    Auch die Zeit der Unterbrechung bringt nichts. Einer hat es eilig zur Toilette und einer bleibt einen Moment in der Lichtschranke stehen.

    Da werden jede Menge Korrekturschalter nötig, um die Fehlinterprädationen auszugleichen. Und das macht auf Dauer keinen Spass.

  • Ich halte den Ansatz mit Lichtschranken & zählen auch fuer verfehlt. Die Fehlerquellen sind mannigfaltig. Ein Bewegungsensor sollte zB auch deine Couchgäste erfassen können, die sitzen ja nich nicht stocksteif da. Und wenn du einen Großzügigen Timeout spendierst, dann hat das zumindest gewisse Chancen.

    Alternativen sind natürlich auch noch Kamera-basierte Systeme, mit einer Software wie motion.


  • Bei "Rein" wird der Zähler der Anwesenden erhöht, bei "Raus" verringert. Bei null Anwesenden geht's Licht aus.

    und wenn sich der PI verzählt z.B -1 muss wieder einer rein damit der Zähler auf NULL steht und das Licht bleibt trotzdem AUS :)
    Hauptsache es gibt bei einer Fete keinen Überlauf im Zähler.
    kleiner Scherz

    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)

  • Interessante Idee. Ich denke aber, dass Bewegungsmelder den Lichtschranken vorzuziehen sind. Man benötigt mehrere die den ganzen Raum abdecken können.
    Noch besser geht es mit mehreren WEB-Kameras, die den ganzen Raum abdecken. Vom Leeren Raum Macht man dann ein referenzbild. Und wenn es anders ist, und sich kurz zuvor noch was bewegt hatte, dann ist wahrscheinlich noch einer im Raum.

    Ansonsten knn man Menschen noch am Geräusch, an der ansteigenden Luftfeuchtigkeit und an der Wärmeabgabe erkennen. Man muesste aber alle diese Fektoren gemeinsam einbeziehen. So a la Es ist bestimmt keiner mehr im Raum wenn:
    * Es total ruhig ist, keine Bewegung fesgestellt wird und die Luftfeuchtigkeit nicht ansteigt.
    * Keine Bewegung festgestellt wird, keine Türe geöffnet wurde und es in der letzten Minute auch kein Mensch detektiert wurde.
    * usw...
    Automatisch zusammengefügt:
    Ich habs: EInen Menschen detektiert man natuerlich am Gewicht auf dem Fussboden. Mit Entsprechend praeparierten Teppichen. As simple as that.

    Einmal editiert, zuletzt von wend (14. Februar 2017 um 18:42)

  • Und wenn du mit deinem Referenzbild die Tüte Chips aufgenommen hast, die ich danach verfresse, dann bleibt das Licht an, bis eine Dekorateur den Originalzustand wiederhergestellt hat.... Mal abgesehen von rauschen und Beleuchtungsunterschieden. Es gibt Gruende, warum solche Tools wie motion mit adaptiven Algorithmen arbeiten.

  • Hi Jar,

    und wenn sich der PI verzählt z.B -1 muss wieder einer rein damit der Zähler auf NULL steht und das Licht bleibt trotzdem AUS :)
    Hauptsache es gibt bei einer Fete keinen Überlauf im Zähler.
    kleiner Scherz


    Na, ein wenig Grenzbetrachtungen darf der TE auch wagen. Nach der String-Theorie wäre aber auch das möglich und wahrscheinlich ;)

    Gegen den Überlauf im Zähler hilft dann nur noch die Large-Integer-Arithmetik (LIA), wie sie vorbildlich in Icon implementiert ist. Da setzt der Arbeitsspeicher die Grenze.

    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

    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.

  • Hallo und vielen Dank für all die Antworten.

    Mit den zwei Lichtschranken hatte ich auch schon gespielt. Ggf. so auf Hüfthöhe, damit nicht jedes Bein als eine Person zählt. Aber da kann man ja ggf. im laufenden Betrieb ein wenig probieren, was sich so am besten macht.
    Vorteil der 2 Schranken wäre tatsächlich, dass ich die Richtung ob rein oder raus messen kann.

    Der Vorteil wäre für mich eben, dass ich nicht via timeout und Bewegungsmelder arbeiten müsste. Ich will ja schon, dass das blöde Licht ausgeht, wenn ich den Raum verlasse und nicht erst 20 Minuten später.
    Außerdem will ich damit vor Gästen angeben :D :-/ Oder so!

    Mit der Programmierung wird es denn so eine Sache. Um ein Gleichnis herzustellen... Mein Wissen über Programmieren ist gleich Niemand ist im Wohnzimmer - es quasi sehr dunkel!

    Aber ich würde mich als nicht hoffnungslos betiteln und mit irgendwas muss man ja anfangen. Also neben Hello World!

    Danke erst einmal!

  • Du solltest zumindest grob die Art der Erkennung festlegen, bevor du anfängst den Code dafür zu schreiben. Wie ich und andere schon erwähnt haben wird Python eine gute Wahl für dich sein (ist es eigentlich immer). Du kannst natürlich auch C/C++ nehmen, aber da wäre der Frust vorprogrammiert. Wenn du was exotisches willst, nimm Icon, da hast du auch gleich super Unterstützung von Andreas :lol: . Das mit der Kamera ist halt wie gesagt so ne Sache. Hast du irgendein Haustier kannste das eh knicken. Und eeeeeeewig langsam auf dem Pi wenn du Pech hast.

    Ganz allgemein darf halt nicht dieses Szenario eintreten:

    Zitat

    In einem Bus sitzen fünf Leute. Acht steigen aus. Wie viele müssen einsteigen, damit der Bus leer ist?

    Aber wenn du das sauber genug aufbaust und programmierst und niemand hektisch aufs Klo rennt oder eine Massenpanik in deinem Wohnzimmer entsteht und 10 auf einmal rausrennen, sollte das klappen.

    LG

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!