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

  • Es gibt eine neue Version des Projektes. Ziel war es, die Platine in ein möglichst kleines Gehäuse zu bekommen, daher bin ich auf die Bauteilgröße 0603 umgestiegen. Da der Optokoppler viel zu groß ist, habe ich die "Shutdown"-Funktion weg gelassen. Dafür ist die Lösung sehr kompakt geworden, wie man auf den Bildern sehen kann.


    Wie fast immer, habe ich mehr Platinen als Bedarf. Wer also diese oder die bisherige Lösung haben möchte, kann mich weiterhin gerne per PN anschreiben.

  • Ich bin da einen ganz anderen weg gegangen. Da ich auf meinem Samsung TV das Problem habe das er auch mal spontan Spannung auf den USB Port gibt und davon auch der Raspberry angeht womit, er wiederum über HDMI CEC den TV anschaltet. Habe ich entschieden einen ATtiny85 zu nutzen an diesem ist ein TSOP 31238, sich "Resetet" werden soll der Raspberry nur wenn der TV eine Spannung auf den USB Port gibt und auch der Power Knopf an der Fernbedienung benutzt wird. Das ganze ist noch in der Entwicklung aber funktioniert schon soweit.


    Meine Ursprüngliche Idee war es diese Schaltung in einem externen Gehäuse zu verbauen und dem Atiny mit der Spannung des TV zu versorgen so würde der Raspberry nur angehen wenn, zu dem Signal auch die Spannung ist. Jetzt möchte ich ein Board für den Raspberry Bauen an dem ich die Bauteile mit dem 3V3 Pin Versorge (weniger Verbrauch). Nur muss ich noch jetzt einen Pin des Attiny dafür benutzen dass, er erkennt ob der TV Spannung hat.


    Code des Attiny mit der Arduino IDE:


    Wenn ihr möchtet mache ich ein Schaltplan dazu ;)

  • Da wird Dein TV wohl zwischendurch in die Welt (wahrscheinlich nach Hause) funken, wodurch der USB-Port mit Spannung versorgt wird. Deine Idee finde ich gut. Aber ich verstehe nicht, wieso Du den Tiny nun doch dauerhaft mit Spannung versorgen willst, statt wie im ersten Gedanken die 5V vom USB zu nutzen.


    Könntest Du Dein Bild mal hier im Forum hochladen? Ich kann es nicht öffnen.


    Ein Schaltplan ist immer eine prima Sache. Zeig mal her. Soll der Tiny direkt auf der Stiftleiste des RasPi montiert werden?

  • Mein erster Gedanke war es den Raspberry direkt an die GPIO Stiftleiste zu montieren. Leider hat dies in der Praxis nicht so toll funktioniert da ich nur eine Lochrasterplatine mit einer kaschierten Seite habe. Die Buchsenleiste ist mit der Kaschierung abgebrochen. Jetzt verbau ich das alles doch in einem eigenen Gehäuse.


    Den Raspberry als Stromversorgung des Tiny habe ich wegen der Erweiterungsmöglichkeit genommen falls ich noch was machen möchte.
    Noch eine idee die ich hatte wäre es die Datenleitung des TSOP noch parallel an den Pi zu schalten so könnte er auch IR empfangen.


    Hier der neue verwendete Code:


    Die Schaltung funktioniert super. Selten kann es nur passieren das sich die Schaltung aufhängt und nicht Schaltet aber, dass ist jetzt nur einmal geschehen.
    Hier ist noch der Schaltplan und Bilder der Platine (nicht ganz Sauber geworden :D ).


    (IR Empfänger war extern über das Kabel verbunden)

  • Ich finde den Lösungsansatz sehr gut. Daher habe ich dazu ein kleines Platinchen entwickelt, dass direkt auf den RasPi gesetzt werden kann. Die kleinen Schaltungsfehler, die ich in der Zeichnung von DragonPi gefunden habe, habe ich beseitigt. Damit jeder die Möglichkeit hat, den Tiny zu flashen, habe ich ihn ausnahmsweise nicht als SMD-Version genommen, sondern gesockelt. Die Spannungsversorgung läuft über den RasPi, so dass der Tiny ständig läuft. Die Spannung des USB-Anschlusses kann als zusätzliche Bedingung unten rechts angeschlossen werden. Der Reset Anschluss ist direkt über dem RUN Anschluss des RasPi3 positioniert. Wer eine andere RasPi Version hat, müsste ein Jumperkabel verwenden.


    Wie (fast) immer habe ich mehr Platinen als Bedarf. Wer eine haben möchte, kann sich gerne per PN bei mir melden.


    edit 22.06.2017:
    Um das Signal der Fernbedienung auslesen zu können, benötigt man einen Arduino. Mit dem RasPi geht das sicherlich auch. Das müsste dann aber jemand anderes beschreiben. Die Vorgehensweise mit dem Arduino ist sehr einfach. Zuerst fügt man die Library "IRremote.h" hinzu, sofern sie noch nicht vorhanden ist. An dieser Stelle geht mein Dank mal wieder an dreamshader, der mir erklärt hat, wieso man "long" und nicht "char" für die Variable nimmt. :danke_ATDE: 

    Kleiner Sketch für einen Arduino, um den HEX-Wert des IR-Signales einer Fernbedienung zu ermittlen.

     
    Der Sensor TSOP31236 wird mit 3V3 oder 5V, Masse und der Signalleitung (an Pin 2) an den Arduino angeschlossen.
     
    Es muss der serielle Monitor geöffnet werden. Dort sollte nach dem Übertragen dieses Sketches
    "ready..." zu lesen sein.
     
    Nun drückt man die Taste der Fernbedienung, auf die die Schaltung [i]künftig reagieren soll. Der Code [/i]
    wird im seriellen Monitor angezeigt. Den so ermittelten Wert schreibt man in die Variable "IR_Wert".
    Hierbei muss 0x immer vorgestellt werden. Die Zahlen 1234 werden durch den ermittelten
    Wert ersetzt. Eventuell auftauchende Zeichenfolgen "FFFFFFFF" können ignoriert werden.
     
    Der so geänderte Sketch wird nun wieder auf den Arduino gespielt. Drückt man nun abermals die
    Taste der Fernbedienung, sollte die auf dem Arduino Uno on Board an Pin 13 angeschlossene LED
    zwei mal kurz aufblinken. Dies ist die Bestätigung für eine korrekte Eingabe.
     
    Den so bestätigen IR_Wert muss man nun in den zweiten Sketch für den ATtiny übertragen.


    Der zweite Sketch für den ATtiny folgt in den nächsten Tagen. Aktuell ist die Zeit etwas knapp.

  • "Ollemo" pid='140914' dateline='1426232834' schrieb:


    Nagut, dann will ich mal. Die Schaltung ist ziemlich einfach. Es werden 5 Standardbauteile benötigt, die man zusammen für unter 50 Cent bei Reichelt bekommt. Wer zu Hause ein wenig bastelt, hat sie sowieso in der Bastelkiste liegen:


    ...


    Danke.

    Ich bin erst seit kurzem RasPi Nutzer.
    Raspberry Pi 3, Raspbian Jessie (Pi-Controle, Pi-Hole, Kodi)
    Rechtschreibfehler sind beabsichtigt, und wurden zur allgemeinen Belustigung hinzugefügt.

  • Hallo zusammen,

    ich habe die Schaltung von der ersten Seite nachgebaut - auch ohne Optokoppler - wer wird schon feige sein.

    Eingangs sei erwähnt, dass ich es unglücklich finde, dass der Raspberry durch die Schaltung jedesmal resettet (wenn er schon läuft), wenn man das USB-Kabel einsteckt. Ich sollte dem ganzen wohl noch einen Pull-Up spendieren, der von den 3,3V des Raspberrys versorgt wird um das abzustellen - hole ich mal nach.


    Ich habe eingezeichneten Widerstand R4 durch einen Spannungsteiler ersetzt. Den Mittelabgriff des Spannungsteilers habe ich auf den Raspberry GPIO-Pin12 geführt.

    Geht der über USB-angeschlossene Fernseher aus, erkenne ich da über ein script und fahre den Raspberry runter.

    Als Status-Anzeige habe ich noch an GPIO-Pin4 eine Led mit Vorwiderstand gelötet.

    Diese schalte ich per Script beim hochfahren an, detektiere ich einen Pegelwechsel an GPIO-Pin12 von High nach Low blinke ich eine Minute und fahre dann runter.

    Die minute Wartezeit habe ich nur eingebaut, falls das mit der Erkennng mal nicht funktioniert - dann hab' ich noch eine Minute, das Script zu deaktivieren :-)

    Ich hab' das zuerst für die Jessie-Distribution geschrieben (in Python unter Verwendung der GPIO-LIB) - das fuktioniert ohne jede Zusatzinstallation.

    allerdings nicht unter Libreelec/Openelec, da dort die GPIO-Lib nicht vorhanden ist.

    Ich habe mal beide Versionen hier reinkopiert - falls die jemand verwenden möchte.

    in libreelec packt man den Inhalt am besten in /storage/.config/autostart.sh

    In Jessie kann man es in die rc.local einhängen (vor dem exit mit "python ./home/pi/Desktop/shutdown.py")


    Beide Scripte funktionieren auch ohne USB-Anschluss. Wenn der Stecker nicht im Fernseher steckt, verhält sich der raspberry wie gewohnt, da auf eine negative Flanke gewartet wird, die nicht da sein kann, wenn er nicht am Fernseher angeschlossen ist


    So fährt der raspberry sauber hoch- und runter und leuchtet auch noch passend :-)


    Achja: er IR-Empfänger hat natürlich nichts mit dem Rest der Schltung zu tun.



    autostart.sh


    shutdown.py

  • Hallo,

    ich bin absoluter Neuling und ich hoffe ihr verzeiht die vielleicht blöde Frage. ;)

    Ich habe die Schaltung lt. dem Schaltplan von #91 nachgebaut. Schaltet man den TV ein startet der Raspberry aber beim ausschalten des TV's funktioniert das shutdown nicht.

    Ich habe in diesem Thread mehrmals was von einem Skript im Autostart gelesen, muß man für das herunterfahren auch softwareseitig was machen und wenn ja wie?


    Danke! :)

  • Hallo nochmals,



    ich habe jetzt tagelang recherchiert und probiert, ich bekomme das mit dem Script einfach nicht hin.
    Wäre jemand so gnädig mit wenigen Worten zu beschreiben was ich im Putty nach dem login mit folgendem Script machen muss?


    Ich denke das Sript sollte so passen?

    (Libreelec 8, 10K Pullup, Pin11 - GPIO17)



    Danke!