Benutzer-Werkzeuge

Webseiten-Werkzeuge


rpihard

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
rpihard [2019/01/10 11:02]
edenhofer
rpihard [2019/01/10 11:06] (aktuell)
edenhofer
Zeile 46: Zeile 46:
  
 ---- ----
 +
 +====== Ein- / Ausschalter ======
 +
 +V 1.00
 +
 +Mit dieser einfachen Schaltung und ein paar Zeilen Python-Code ist es möglich, den Raspberry Pi mit einer Taste ein- bzw. wieder auszuschalten.
 +
 +{{::​rpi_e_a.jpg?​400|}}
 +
 +Das Relais hat eine Versorgungsspannung von 5V und besitzt zwei Umschaltkontakte. Die Stromversorgung bekommt das Relais über den USB Port, da dieser im Ruhezustand des Raspberry stromlos ist.\\
 +
 +Im stromlosen Zustand ist der Taster direkt mit den beiden Anschlüssen **RST** verbunden. Durch Drücken des Tasters werden diese kurzgeschlossen,​ wodurch der Raspberry startet. Dies gilt für alle Raspberry'​s bis zur Version 3. Ab 3+ muss der mit RUN bezeichnete Pin auf einen der **RST** Anschlüsse gelegt werden, der andere **RST**-Anschluss muss auf Masse gelegt werden.\\
 +
 +Nachdem der Raspberry gestartet ist, wird das Relais über den USB-Anschluss mit Strom versorgt, wodurch dieses die Kontakte umschaltet.\\
 +
 +Jetzt liegt der Taster einerseits auf Masse (GND), andererseits am GPIO26, der über einen Pull-Up Widerstand auf einen eindeutigen **HIGH**-Pegel gezogen wird. Wird nun der Taster betätigt, wird der **GPIO-Port 26** auf **LOW** gelegt. Das wird durch die Software erkannt und der Raspberry wird geordnet heruntergefahren.
 +
 +<file plain halt.py>
 +#​!/​usr/​bin/​python3
 +# Datei /​home/​pi/​halt.py
 +import os, sys, time, RPi.GPIO as gpio
 +gpio.setmode(gpio.BCM) ​    # Pin-Nummern des P1/​J8-Headers
 +gpio.setup(21,​ gpio.IN) ​   # Pin 21 ist mit Reset-Button verbunden
 +while True:
 +  if gpio.input(21) == 0:
 +    os.system("​init 0")
 +    sys.exit()
 +  time.sleep(0.3)
 +</​file>​
 +
 +Das Script muss mit **chmod 655 halt.py** ausführbar gemacht werden. In der ''/​etc/​rc.local''​ vor exit eine Zeile mit dem Inhalt ''/​home/​pi/​halt.py &''​ einfügen, um das Script zum Ende des Bootprozesses zu starten. Durch das **&** am Schluss wird das Script im Hintergrund ausgeführt.
 +
 +<​code>​
 +# Datei /​etc/​rc.local
 +...
 +/​home/​pi/​halt.py &
 +...
 +exit 0
 +</​code>​
 +
 +----
 +
  
rpihard.1547114523.txt.gz · Zuletzt geändert: 2019/01/10 11:02 von edenhofer