Gelöst: Raspberry Pi nach Shutdown einschalten wenn TV eingeschaltet wird


  • ja der Optokoppler hat noch einen 220Ohm Vorwiderstand erhalten.
    Wollte nicht extra einen neuen schaltplan uploaden.


    Kein Problem. Ich war mal so frei und habe das in meine Zeichnung übernommen. Die Platine muss ich noch ein klein wenig optimieren. Aber so wie es aussieht, wird sie nicht größer werden, sondern beidseitig bestückt. Dann könnte man Deine Lösung optional mit auflöten. Könnte man den 10K Pullup, den Du eingezeichnet hast, nicht weg lassen, wenn man den internen Pullup aktiviert?


    edit: Platinenentwurf hinzu gefügt

  • Könnte man den 10K Pullup, den Du eingezeichnet hast, nicht weg lassen, wenn man den internen Pullup aktiviert?


    Wenn man die Möglichkeit hat und ein Widerstand wird in jedem Fall benötigt, ist es besser dies Hardwareseitig zu machen, also ein eigenen Widerstand anzubringen, da man sonst den via Software auch mal vergessen könnte. Außerdem kommt es auf den jeweiligen GPIO an wie hoch der Wert des Internen ist, weil nicht alle internen Widerstände identisch sind.



    //EDIT: Es gäbe noch eine Möglichkeit bezüglich des Codes und zwar nicht add_event_detect zu verwenden sondern wait_for_edge. Der Clou ist, dass das Script an dieser Stelle solange pausiert/blockiert bis ein Interrupt ausgelöst wird und dann erst die Zeilen danach ausgeführt werden.
    Auch kann man den Code problemlos für sowohl python2 als auch python3 verwenden. Durch Importierung von "print_function" gewährleistet man die Kompatibilität von print zwischen python2 und python3, denn in python2 ist das ein Statement in python3 aber eine Funktion, also nicht wirklich kompatibel.
    Allerdings sollte man nicht "os.system" nutzen sondern besser "subprocess.call", das Module importierst du auch schon, nutzt es aber nicht? :fies:
    [code=php]
    #!/usr/bin/python


    from __future__ import print_function
    import RPi.GPIO as GPIO
    from subprocess import call


    GPIO.setmode(GPIO.BCM)
    GPIO.setwarnings(False)
    GPIO.setup(25, GPIO.IN, pull_up_down=GPIO.PUD_DOWN)


    GPIO.wait_for_edge(25, GPIO.RISING)
    print("shutting down!")
    call("sudo shutdown -h now", shell=True)
    [/php]


    Man könnte dies auch noch erweitern sodass man den GPIO-Pin dem Script beim ausführen optional als Parameter übergibt, so wäre es flexibler ohne das Script bearbeiten zu müssen.
    [code=php]
    #!/usr/bin/python


    from __future__ import print_function
    import RPi.GPIO as GPIO
    from subprocess import call
    import sys


    if sys.argv[1]:
    gpioPin = int(sys.argv[1])
    else:
    gpioPin = 25


    GPIO.setmode(GPIO.BCM)
    GPIO.setwarnings(False)
    GPIO.setup(gpioPin, GPIO.IN, pull_up_down=GPIO.PUD_DOWN)


    GPIO.wait_for_edge(gpioPin, GPIO.RISING)
    print("shutting down!")
    call("sudo shutdown -h now", shell=True)
    [/php]

  • Da bin ich ganz bei euch und praktiziere das im Allgemeinen auch so, dass ich den Pullup lieber in Hardware als in Software umsetze. Aber in diesem Fall würde es bedeuten, dass ich erst noch die 3,3V vom RasPi zur Platine ziehen müsste. Das wäre noch ein Kabel mehr. Je mehr Kabel desto mehr Fehlerquellen für einen unbedarften Anwender. Schlimmstenfalls wird ein derber Kurzschluss produziert. Ob die Schaltug auf dem RasPi, die die 3,3V bereit stellt, dagegen gesichert ist, entzieht sich meiner Kenntnis. Worst Case würde diese gehimmelt.


    Wäre es denn möglich, dass Du Deinen Code um den Pullup ergänzt? Dann könnte der interessierte Anwender ihn 1:1 übernehmen. Passieren kann dann nichts. Schlimmstenfalls läuft es nicht wunschgemäß.

  • Ich werde mir das heute Abend nochmal anschauen. und mich melden wenn ich was weiß wegen dem Pullup.


    Edith:
    Ich will mich schonmal entschuldigen, ich habe dieses Wochenende kaum Zeit mich darum zu kümmern. Mit dem Pullup weglassen bin ich noch auf keine Lösung gekommen,
    allerdings versuche ich auch gerade die ganze Schaltung zu entkoppeln, ich hätte lieber alles hinter dem Optokoppler was an den PI geht. Wenn ich da Erfolge vermelden kann melde ich mich wieder.

  • so hab nun auch den stecker im betrieb. meine frage, ich habe mir ambilight gebastelt. ist es möglich mit dem stecker das vor dem herunterfahren des pis sich das ambilight ausschaltet? bzw die LEDs schwarz werden?


    oder vllt gibt es die möglichkeit das netzteil (vom Ambilight) mit einer schaltung mit abzuschalten? (wäre mir persönlich lieber)

  • Bevor Du an der Strippe zappelst, mach ich das. Wenn Du Dir aber 230V zutraust, dann machst Du es zum Beispiel so:


    Alte Funksteckdose ausschlachten, ein geeignetes 5V Relais mit Antiparalleldiode auf eine Lochrasterplatine setzen und an die Schaltseite eine passende Schraubklemme anlöten, in die dann das Kabel der Phase gesteckt wird. Aderendhülsen verwenden!!


    Ein Kabel an das Relais löten, an dessen Ende ein USB-Stecker angebracht wird. Zur Zugentlastung einfach innerhalb des Gehäuses einen Knoten ins Kabel machen. Alternativ einfach ein vorhandenes USB-Kabel passend ablängen. Wenn nun der TV eingeschaltet wird, wird die USB-Buchse mit 5V versorgt, wodurch das Relais anzieht und die Phase durchschaltet. Wird der TV abgestellt, gibt es keine Spannung mehr auf der USB-Buchse, wodurch das Relais abfällt.


    Dass die umgebaute Funksteckdose in die Steckdose gesteckt wird und in das Gehäuse dann das 230V Netzteil für das Ambilight kommt, muss ich nicht extra erwähnen, oder?

  • zutrauen schon wenn ich einen schaltplan habe :D


    gerade gefunden:

    External Content www.youtube.com
    Content embedded from external sources will not be displayed without your consent.
    Through the activation of external content, you agree that personal data may be transferred to third party platforms. We have provided more information on this in our privacy policy.


    sollte doch das selbe sein und man kann später alles in einem kasten verbauen

  • Viel zu kompliziert. Wozu willst Du da noch einen Arduino einsetzen?


    Deine Vorgabe war: "Wenn TV an, dann Strom für Ambilight an. Wenn TV aus, dann Strom für Ambilight aus"
    Das ist mit meinem Vorschlag, eine alte Funksteckdose auszuschlachten und ein Relais dort zu verbauen, gelöst. Der Vorteil meines Vorschlages ist, dass es bedienungssicher in einem geeigneten Gehäuse untergebracht wäre. So besteht keine Gefahr für den Bediener.


    Wenn Du aber alles zusammen in ein großes Gehäuse verbauen willst, dann ist die Vorgehensweise identisch, mit dem Unterschied, dass Du kein Funksteckdosengehäuse benötigst.

  • Okay war ja nur eine idee und dachte das man statt des arduino den Pi nimmt.


    wie müste denn die schaltung aussehen? Funksteckdosen hab ich genug

  • Du kannst natürlich auch den RasPi dafür nehmen. Der muss dann per Script den GPIO, an dem das Relais hängt, beim Hochfahren einschalten und beim Shutdown abschalten. Aber der GPIO liefert nur 3,3V und nicht 5V. Auch sollte (wie ich kürzlich lernte) der GPIO nicht mit viel mehr als 2mA belastet werden.


    Daher wäre das Problem mit dem oben ausführlich beschriebenen Aufbau, der an Hardware bis auf die Strippen und die Platine nur ein Relais und eine Diode enthält, am einfachsten und schnellsten zu lösen.


  • Du kannst natürlich auch den RasPi dafür nehmen. Der muss dann per Script den GPIO, an dem das Relais hängt, beim Hochfahren einschalten und beim Shutdown abschalten. Aber der GPIO liefert nur 3,3V und nicht 5V. Auch sollte (wie ich kürzlich lernte) der GPIO nicht mit viel mehr als 2mA belastet werden.


    Daher wäre das Problem mit dem oben ausführlich beschriebenen Aufbau, der an Hardware bis auf die Strippen und die Platine nur ein Relais und eine Diode enthält, am einfachsten und schnellsten zu lösen.


    wie gesagt, ichs elber habe keine anhung wie ich das verkabeln/löten muss. mit schaltplan wäre das denke ich kein problem für mich :)

  • Ich kann bei der übersichtlichen "Schaltung" nicht verstehen, was Du für einen Plan benötigst.
    So (den unteren Teil wegdenken) wird die Diode parallel zum Relais angeschlossen: https://www.mikrocontroller.ne…files/4/4f/Relais_npn.png
    An die DC-Seite des Relais wird das USB-Kabel gelötet. Auf der AC-Seite wird die Phase per Klemme befestigt. Das ist im Grunde schon alles.

  • ist es möglich mit dem stecker das vor dem herunterfahren des pis sich das ambilight ausschaltet? bzw die LEDs schwarz werden?


    Ich habe auch Ambilight, und es gibt eine Möglichkeit die Leds ausschalten. Nutze ich momentan.