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.
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:
Zurück: Raspberry Pi | Update: 03.02.2023 |