LED Sonnenauf/Unter-gang

Heute ist Stammtischzeit:
Jeden Donnerstag 20:30 Uhr hier im Chat.
Wer Lust hat, kann sich gerne beteiligen. ;)
  • Hallo
    Ich versuche die ganze zeit eine einfache aber erweiterbare Methode zum programmieren eines Variablen Sonnenauf und Untergang nach zeit zu programmieren.

    Für den Anfang würde es mir jedoch reichen wenn ich bei Programm start die (derzeit) 3 LEDs anegehen und nach einer Zeit wieder Ausgehen und ausbleiben.

    ich wollte mir einer:

    Code
    try:
       while True:
           for c in range(0, 101, 2):
               p.ChangeDutyCycle(c)
               q.ChangeDutyCycle(c)
               time.sleep(0.1)

    Arbeiten macht das sinn?

    Kann mir jemand auf die Sprünge helfen und mir zeigen wie sowas aussehen muss?

    Danke
    Alex


  • Hallo,
    kann Dir mit meinem Bastel ev. weiter helfen.
    Wenn Lichtschalter zum Beispiel um 16.00h eingeschaltet wird, wartet script bis um 16.30h, zählt dann die delayzeit fuer aktuelle Woche in sec. dazu und schaltet dann das Licht zur gewuenschten Daemmerungszeit ein. Daemmerungszeit kann fuer 52 Wochen genau eingestellt werden.

    Wird Lichtschalter nach 16.30h eingesczeiltet wartet scipt bis 16.30h +delayzeit.
    Wird Lichtschalter nach 16.30 + delyizeit eingeschaltet startet es sofort.
    /bin/led/aus ist das script um das Licht zu einem Zeitpunkt z.B. 23.00h wieder auszuschalten.

    Fuer Sonnenaufgang kann es ähnlich uebernommen werden.


    script: Daemmerung


    Script Daemmerung wird von einem Python script "LedeinbeiDaemmerung.py" gestartet.


    script aus

    Bash
    #!/bin/bash
    
    
    #Alle Lichter ausschalten
    
    
    echo -n -e "\x39\x00\x55" | nc -u -q 1 192.168.0.6 8899 #All off
    sleep .5
    echo -n -e "\x39\x00\x55" | nc -u -q 1 192.168.0.20 8899 #All off second controller
    sleep 1


    Verwende Limitlessled Lampen, und bei mir funktioniert das so sehr gut. Ein Profiprogrammierer macht das natuerlich viel compakter und besser.
    Dies sind meine Bescheidenen Kentnisse. CPU-Last ca. 5%.
    Wie Du leds auf dem PiFace board zum leuchten brings, findest Du hier im tollen Forum.
    Sollte ein Profi eine besser Loeusung haben (bin sicher die gibts) wir er sich bei Dir melden und mir sagen ich soll es auch anders machen.
    Gruss
    gwaag


  • Möchtest du deine LED's immer Zeitgenau an den aktuellen Sonnen- Auf und Untergang koppeln?
    Hat dein Pi Internetzugriff?

    Internet zugriff ja
    und nein nicht mit dem aktuellen auf und untergang gekoppelt
    Ziel ist es später irgendwannmal(ich fang ja erst an damit) eine art Aquarium/terrarium computer zu bauen.
    oder eine art wecker/keller beleuchtung um tageslicht zu simulieren oder oder oder hab da mehrere ideen.

    für den Anfang würde es mir reichen wenn ich die zeit im script selbst einstelle.

  • Auf Basis von pigpio hatte ich mal das folgende genutzt:

    [code=php]
    #!/usr/bin/python
    #
    # Copyright (C) 2016 by meigrafd (meiraspi@gmail.com) published under the MIT License
    #
    import pigpio
    import time

    ## CONFIG - START
    RED_PIN = 16
    GREEN_PIN = 20
    BLUE_PIN = 21
    STEPS = 1 # number of color changes per step (more is faster, less is slower)
    ## CONFIG - END

    io = pigpio.pi()

    def updateColor(color, step):
    color += step
    if color > 255:
    return 255
    if color < 0:
    return 0
    return color

    def setLights(pin, brightness):
    realBrightness = int(int(brightness) * (float(bright) / 255.0))
    io.set_PWM_dutycycle(pin, realBrightness)

    bright = 255
    R = 255
    G = 0
    B = 0

    setLights(RED_PIN, R)
    setLights(GREEN_PIN, G)
    setLights(BLUE_PIN, B)

    while True:
    if R == 255 and G < 255 and B == 0:
    G = updateColor(G, STEPS)
    setLights(GREEN_PIN, G)

    elif R > 0 and G == 255 and B == 0:
    R = updateColor(R, -STEPS)
    setLights(RED_PIN, R)

    elif R == 0 and G == 255 and B < 255:
    B = updateColor(B, STEPS)
    setLights(BLUE_PIN, B)

    elif R == 0 and G > 0 and B == 255:
    G = updateColor(G, -STEPS)
    setLights(GREEN_PIN, G)

    elif R < 255 and G == 0 and B == 255:
    R = updateColor(R, STEPS)
    setLights(RED_PIN, R)

    elif R == 255 and G == 0 and B > 0:
    B = updateColor(B, -STEPS)
    setLights(BLUE_PIN, B)

    setLights(RED_PIN, 0)
    setLights(GREEN_PIN, 0)
    setLights(BLUE_PIN, 0)

    time.sleep(0.5)
    io.stop()
    [/php]

    Aber eine Zeit wann das starten soll ist da nicht enthalten.

    Hast du überhaupt RGB oder sind deine 3 LEDs einfach nur irgendwelche einfachen?

    Und wie sähe es aus wann und wie du das Script ausführen willst? Also soll es zB um 18 Uhr einfach nur dunkler werden und um 07 Uhr wieder heller? Oder eher untypische Zeiten wie 18:33 Uhr?


  • Auf Basis von pigpio hatte ich mal das folgende genutzt:


    Aber eine Zeit wann das starten soll ist da nicht enthalten.

    Hast du überhaupt RGB oder sind deine 3 LEDs einfach nur irgendwelche einfachen?

    Und wie sähe es aus wann und wie du das Script ausführen willst? Also soll es zB um 18 Uhr einfach nur dunkler werden und um 07 Uhr wieder heller? Oder eher untypische Zeiten wie 18:33 Uhr?

    Danke für RGB Led´s habe ich das auch schon so ähnlich gefunden.

    Es handelt sich um 3 Led´s im test später sollen es 3 Led controller mit je 14 Led´s sein wobei das prinzip ja das gleiche sein soll da der Controller genau so funktioniert wie die LED zum testen.

    Ich bin derzeit soweit das ich anfangs die Dauer des Aufgangs einstellen kann, jedoch harpert es an der Uhrzeit´s angabe da ich diese ja Variable halten will möchte ich das untern über ein linux befehl steuern.
    Meine idee war das ganze über eine if abfrage zu steuern und diese loopen zu lassen bis die Uhrzeit für ein und ausschalten erreicht ist. Meint ihr das Funktioniert?

    Einmal editiert, zuletzt von Xanaden (13. November 2016 um 21:36)

Jetzt mitmachen!

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