RPi.GPIO

RPi.GPIO benutze ich, wenn ein Relais zeitabhängig automatisch gesteuert werden soll, z. B. über Cron.
Man kann es genau so von jedem anderen Programm direkt aufrufen lassen.

Mit GPIO Zero lässt sich dieses Verhalten so nicht darstellen. Wie ich feststellen musste, ist es nicht möglich, mit GPIO Zero ein Programm zu schreiben, dass direkt aufgerufen wird, ein Relais einschaltet und sich dann beendet. Immer, wenn das Programm beendet wird, fällt das Relais wieder ab.

Programme

Damit Sie schnell ein Erfolgserlebnis sehen, habe ich Ihnen ein komplettes Programmpaket zusammengestellt. Dieses können Sie einfach abändern. Sie können die Programme direkt mit Thonny aufrufen.

Bild relais-rpi-gpio-zip

Aufbau der Dateien:

#!/usr/bin/python3
Der Zweck ist es, den Ort des Interpreters zu definieren. Durch Hinzufügen der Zeile #!/usr/bin/python3 am Anfang des Skripts können wir file.py auf einem Unix-System ausführen und es wird automatisch erkannt, dass es sich um ein Python-Skript handelt.

#!/usr/bin/env python3

 Die Bibliothek RPi.GPIO wird in Python mit folgendem Befehl importiert:

import RPi.GPIO as GPIO

RuntimeWarning ausschalten, da die Relais auch noch über GPIO Zero / Flask angesteuert werden.

# RuntimeWarning ausschalten
­­GPIO.setwarnings(False)

BCM-Bezeichnung der Pins verwenden

#GPIO Modus (BOARD / BCM)
GPIO.setmode(GPIO.BCM)

Pin 26 wird als Ausgang definiert.
Pin 26 wird auf LOW gesetzt. (Relais einschalten, da Minus geschaltet wird.)

GPIO.setup(26, GPIO.OUT)
GPIO.output(26, GPIO.LOW)

Pin 26 wird auf HIGH gesetzt. (Relais ausschalten, da Minus geschaltet wird.)

GPIO.setup(26, GPIO.OUT)
GPIO.output(26, GPIO.HIGH)

 Kein GPIO.cleanup setzen, da sonst der gesetzte Wert wieder gelöscht wird.

# KEIN GPIO.cleanup

Relais / Pinzuordnungen:

Relais 1 Pin 26
Relais 2 Pin 20
Relais 3 Pin 21

Für die Ansteuerungen der anderen Relais einfach neue Dateien anlegen:

rel-2-ein.py und rel-2-aus.py ändern auf Pin 20
rel-3-ein.py und rel-3-aus.py ändern auf Pin 21


Beispiel für Relais 1:

Die Beispiele können Sie direkt in Thonny reinkopieren und ausführen.

Relais 1 EIN

Dateiname: rel-1-ein.py

#!/usr/bin/env python3

import RPi.GPIO as GPIO
# Relais 1 Pin 26

# RuntimeWarning ausschalten
GPIO.setwarnings(False)

GPIO.setmode(GPIO.BCM)
GPIO.setup(26, GPIO.OUT)
GPIO.output(26, GPIO.LOW)

# KEIN GPIO.cleanup

# Status Pin abfragen
# GPIO.input(26)

Relais 1 AUS

Dateiname: rel-1-aus.py

#!/usr/bin/env python3

import RPi.GPIO as GPIO
# Relais 1 Pin 26

# RuntimeWarning ausschalten
GPIO.setwarnings(False)

GPIO.setmode(GPIO.BCM)
GPIO.setup(26, GPIO.OUT)
GPIO.output(26, GPIO.HIGH)

# KEIN GPIO.cleanup

# Status Pin abfragen
# GPIO.input(26)

Programm ausführen:

Wechseln Sie in das Verzeichnis, wo Sie die Dateien gespeichert haben (Beispiel):

pi@raspi-4-klaus:~ $ cd /home/pi/Spyder-Projects/relais-rpi.gpio

Führen Sie das Programm aus:

pi@raspi-4-klaus:~/Spyder-Projects/relais-rpi.gpio $ python rel-2-ein.py

Bei Youtube gibt es auch noch ein Video zu diesem Thema:


Weiter: Raspberry PiUpdate: 03.02.2023