Wenn man schon ein Relais einsetzt, das Netzspannung schalten kann, warum dann nicht gleich das Netzteil des Pi "an der Quelle" schalten? Damit kann gleich eine andere Netzspannungskomponente, die mit dem Pi zusammen genutzt wird, mit geschaltet werden: der 3D Drucker, der Scanner, ...
z.B. hat OctoPrint eine Option, nach dem Ende des Drucks den Pi herunterzufahren. Mit dieser Lösung schaltet man gleich den 3D-Drucker mit aus.
Die Logik ist eigentlich die gleiche wie in Ältere Raspberry Pi ohne Anmeldung herunterfahren Teil 2: Mit einem Relais ganz ausschalten : Ein Einschalt-Taster überbrückt den Schaltkontakt eines Relais. Aber in dieser Schaltung wird nicht der 5V Strang der Stromversorgung über das Relais geschaltet, sondern die Netzspannung, an der das Netzteil des Pi selbst erst nach dem Einschalten mit Strom versorgt wird.
Sobald dadurch die Versorgungsspannung des Pi hergestellt ist, hält dieser den Steuerkontakt des Relais (über einen Pull-Up Wiederstand) aktiv und das Relais bleibt eingeschaltet. Und das so lange, bis ein GPIO-Pin des Pi diesen Steuerkontakt zum Ausschalten auf 0V herunter zieht.
Um diese Schaltfunktion ganz am Ende des Herunterfahrens des Betriebssystems auszulösen gibt es ein Raspbian Modul: gpio-poweroff. Wenn das Herunterfahren nicht über die Kommandozeile oder irgendein Web-Interface ausgelöst werden soll, kann mit dem Modul gpio-shutdown ein zusätzlicher Taster an einem GPIO-Pin diese Funktion auslösen.
Zusammen sind also wieder folgende Einträge in /boot/config.txt notwendig:
dtoverlay=gpio-poweroff,gpiopin=26,active_low=0,input=0,active_delay_ms=3000 dtoverlay=gpio-shutdown,gpio_pin=3,active_low=1,gpio_pull=up
Hier ist das ganze noch mal als loser Aufbau auf dem Tisch zu sehen: der Einschalt-Taster, der das Relais überbrückt muss dabei für Netzspannung geeignet sein und auch den Einschaltstrom aller angeschlossenen Verbraucher schalten können.
Weil die Einschalt-Funktion und das Signal zum Herunterfahren vollkommen unabhängig voneinander sind, und sich auch zeitlich nicht überlappen, kann auch ein einziger Taster mit zwei unabhängigen (und gut voneinander isolierten) Kontakten verwendet werden. Dann schaltet der erste Tastendruck den Pi ein. weiteres Drücken bis zum Abschluss des Boot-Vorgangs bewirkt erst mal nichts. Wenn der Boot-Vorgang abgeschlossen ist, löst ein neus Tippen auf den Taster das Herunterfahren und das abschließende Ausschalten aus.
... jetzt fehlt nur noch ein passendes Gehäuse...
ACHTUNG: Netzspannung kann lebensgefährlich sein. Immer die notwendigen Vorsichtsmaßnahmen ergreifen um sicherzustellen, dass aktive Kontakte nicht versehentlich berührt werden!!!
Update 07. Januar 2024 - das Gehäuse:
ich glaube nicht, dass irgend jemand das genau so übernehmen kann - man müsste schon genau die selben Microschalter, Lüsterklemmen, Relais-Platinen und sogar die selbe Baumarkt-Steckdose haben, damit es genau so passt... Zur Inspiration: hier das FreeCad Modell.
anyway: ich habe mit FreeCad eine Grundplatte entworfen, in die diese Elemente und ein Raspberry Pi 4 genau reinpassen (blau). Dazu denn eine etwas schräge Frontplatte, die alle Elemente genau so in ihre Einpassungen drückt, dass innen keine Schrauben notwendig sind (gelb) und dann noch eine haltende Klammer an der Rückseite, die (mit Schrauben aus der Bodenplatte) alles zusammenhält (schwarz).
Hier ein paar Fotos:
Zwischendurch (zwischen dem 2. und 3. Foto) musste ich dann doch noch was an der Halterung der Microschalter ändern. Es klappt eben doch nie so, wie geplant...
Dazu kamen dann noch drei zusätzlich Buttons und eine 2-farbige LED im Power-Button. Weil der Raspberry ja nicht nur an- und aus-gehen soll, sondern auch noch eine Aufgabe bekommen wird. Damit sieht der Kabelsalat, der von der Frontblende ausgeht, doch etwas wirrer aus.
(c) Heiko Hellweg 2005 - 2009 top