ich möchte die fünf Magnetventile meiner Gartenbewässerung über ein Python-Skript steuern (geöffnet werden sie, wenn Spannung anliegt, liegt keine an, werden sie geschlossen). Die Magnetventile werden über die GPIOs gesteuert, in dem ich je Ventil ein Relais schließen und öffnen können muss, so dass die Ventile ihre 24 V (über einen Trafo) Spannung beziehen.
Testweise habe ich bisher immer nur ein Magnetventil geöffnet, dessen GPIO hart kodiert im Skript auf LOW und nach x Minuten wieder auf HIGH gesetzt wurde.
Da die Bewässerung fertig gebaut ist würde ich nun auch gerne die elektrische Steuerung der Ventile verwenden und hierfür einige Szenarien durchspielen um u.a. zu schauen, wieviele Kreisläufe ich parallel laufen lassen kann, wie lange ich jeden bewässern möchte,... bevor ich es komplett automatisieren und z.B. per Cronjob morgens um 5 Uhr die Bewässerung starten lasse.
Hierfür müsste ich mein Skript nun umbauen / erweitern, dass es als Argument beim Aufruf sowohl den jeweiligen GPIO, als auch dessen Zustand (High|Low) entgegen nimmt. Grundsätzlich kein Problem. Allerdings will ich ja nicht alle Ventile gleichzeitig öffnen bzw. schließen. D.h., es kann sein, dass ich GPIO 2 und 3 unmittelbar nacheinander auf LOW setze, aber GPIO 3 nach 30 Minuten auf HIGH und GPIO 2 erst nach 50 Minuten auf HIGH setze.
Mein bisheriges Skript sieht so aus:
Code: Alles auswählen
#!/usr/bin/python
import RPi.GPIO as GPIO
import time
try:
GPIO.setmode(GPIO.BCM)
pinList = [2, 3, 4, 17, 27]
for i in pinList:
GPIO.setup(i, GPIO.OUT)
GPIO.output(i, GPIO.HIGH)
GPIO.output(2, GPIO.LOW)
time.sleep(0.5 * 60) # One minute
GPIO.output(2, GPIO.HIGH)
GPIO.output(3, GPIO.LOW)
time.sleep(0.5 * 60) # One minute
GPIO.output(3, GPIO.HIGH)
except KeyboardInterrupt:
# here you put any code you want to run before the program
# exits when you press CTRL+C
print("\n", 'Fehler') # print value of counter
except:
print("Other error or exception occurred!")
finally:
GPIO.cleanup() # this ensures a clean exit
print('QUIT')
Könnt ihr mir diese Sorge nehmen oder wie würdet ihr das lösen? So lange ich die Ventile manuell steuere kann ich ja auch noch händisch eingreifen. Wenn es aber irgendwann automatisiert läuft und nach dem 50.Start auf einmal die Ventile nicht mehr schließt, weil sich der Raspi verrannt hat, komme ich Abends heim und habe nen Schwimmteich...

Vielen Dank und viele Grüße
Dirk