Einen Raspberry Pi mit der Funktion dtoverlay=gpio-shutdown in /boot/config.txt sauber runter fahren ist gut - aber aus ist er damit noch nicht.
Dafür gibt es noch das Overlay gpio-shutdown: eine Funktion, die am ende des Shutdown noch mal einen gpio-pin steuern kann, der dann z.B. ein Relais schaltet.
Als Schaltung kann man dafür ein Relais mit einem Pull-Up Wiederstand gegen +5V und an einen normalerweise als Eingang geschalteten GPIO-Pin schalten (hier GPIO 26 an Pin 37). Wenn der dann beim Herunterfahren des Pi auf 0V gezogen wird, schaltet das Relais ab.
Ein Taster, der den Schalter des Relais selbst kurz überbrückt dient als Einschalter. Sobald Spannung am Raspberry anliegt, sorgt der Pull-Up Wiederstand dafür, dass das Relais angezogen wird und bleibt.
Der zweite Taster zwischen GPIO 3 und 0V löst ein shutdown Signal aus. Wenn dann das Herunterfahren beendet ist, wird GPIO 26 auf 0V geschaltet und das Relais schaltet ab. Als loser Drahtverhau auf dem Tisch sieht das so aus:
Als Relais habe ich eine kompakte Platine mit Optokoppler genommen. Nicht, dass ich hier etwas glavanisch trennen will. Aber so kann man sicher sein, dass der GPIO-Pin und der Pull-Up Wiederstand auf jeden Fall nur eine LED als Last bedienen müssen und auch keine plötzlichen Spannungsspizten aus der Relais-Spule beim Ein- oder Ausschalten auf den Pi zurückschlagen.
(um nicht mit abgeschnittenen USB Kabeln hantieren zu müssen um die vom Relais geschalteten 5V in den Raspberry einzuspeisen: das geht gut über Pins an der 40-poligen Steckerleiste: GND/0V z.B. an Pin 39 und +5V an Pin 2)
Dazu sind dann 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
Mit einem modernen USB Netzteil, das laut Aufdruck 0,01W verbraucht wenn keinerlei Leistung am Ausgang abgenommen wird, sieht das auch Energie-mäßig schon ganz gut aus...
(c) Heiko Hellweg 2005 - 2009 top