The Hunting of the Snark


category: picategory: tech created: 25. Nov. 2023
modified: 26. Dec 2023
canonical: http://www.snark.de/index.cgi/0014

Ältere Raspberry Pi ohne Anmeldung herunterfahren Teil 2: Mit einem Relais ganz ausschalten

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. pi-power-2.jpg

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. pi-power-3.jpg 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