Raspberry Pi - Wasserbenebelung mit zwei offenen Punkte im Quellcode
Hallo zusammen,
für den kommenden Sommer soll eine Wasserbenebelung auf dem Balkon für Kühlung sorgen.
Mein Plan sieht vor, dass ein Raspberry Pi eine 12V/DC Wasserpumpe mittels einem Ein/Aus-Schalter in Kombination mit zwei Taster für zwei Stufen schalten soll.
Mit meinen geringen Python-Kenntnisse habe ich es immerhin mal geschafft, dass mir der Schalter die Tasten freigibt und folglich die gewünschte Stufe (Taster 1 oder Taster 2) den Ausgang zum Relais schaltet.
Dennoch habe ich einen Fehler in dem Quellcode,:
Wird Taster 1 oder Taster 2 betätigt, schaltet der Ausgang für die gewünschte Zeit Ein und auch Aus, aber nur einmal. Es muss folglich der Taster "erneut" betätigt werden.
Des Weiteren ist unschön, dass beim Ausschalten des Schalters Ein/Aus der Ausgang gesetzt bleibt, bis die Zeit abgelaufen ist.
Es wäre super wenn ich Hilfe zu den zwei oben genannten Punkte bekommen könnte, im Moment stehe ich an einem Punkt wo es nicht weiter geht...
Hier mein Quellcode:
für den kommenden Sommer soll eine Wasserbenebelung auf dem Balkon für Kühlung sorgen.
Mein Plan sieht vor, dass ein Raspberry Pi eine 12V/DC Wasserpumpe mittels einem Ein/Aus-Schalter in Kombination mit zwei Taster für zwei Stufen schalten soll.
Mit meinen geringen Python-Kenntnisse habe ich es immerhin mal geschafft, dass mir der Schalter die Tasten freigibt und folglich die gewünschte Stufe (Taster 1 oder Taster 2) den Ausgang zum Relais schaltet.
Dennoch habe ich einen Fehler in dem Quellcode,:
Wird Taster 1 oder Taster 2 betätigt, schaltet der Ausgang für die gewünschte Zeit Ein und auch Aus, aber nur einmal. Es muss folglich der Taster "erneut" betätigt werden.
Des Weiteren ist unschön, dass beim Ausschalten des Schalters Ein/Aus der Ausgang gesetzt bleibt, bis die Zeit abgelaufen ist.
Es wäre super wenn ich Hilfe zu den zwei oben genannten Punkte bekommen könnte, im Moment stehe ich an einem Punkt wo es nicht weiter geht...
Hier mein Quellcode:
#!/usr/bin/python
#-*- coding:utf-8 -*-
import RPi.GPIO as GPIO
from time import sleep
import time
import os
Schalter_Kuehlung_EinAus = 22
Taster_Kuehlung_Stufe_1 = 23
Taster_Kuehlung_Stufe_2 = 24
Ausgang_Wasserpumpe = 17
GPIO.setmode(GPIO.BCM)
GPIO.setwarnings(False)
GPIO.setup(Schalter_Kuehlung_EinAus, GPIO.IN, pull_up_down=GPIO.PUD_UP)
GPIO.setup(Taster_Kuehlung_Stufe_1, GPIO.IN, pull_up_down=GPIO.PUD_UP)
GPIO.setup(Taster_Kuehlung_Stufe_2, GPIO.IN, pull_up_down=GPIO.PUD_UP)
GPIO.setup(Ausgang_Wasserpumpe, GPIO.OUT)
try:
while True:
if GPIO.input(Schalter_Kuehlung_EinAus) == True:
Status_Taster_Kuehlung_Stufe_1 = True
Status_Taster_Kuehlung_Stufe_2 = True
if Status_Taster_Kuehlung_Stufe_1 and GPIO.input(Taster_Kuehlung_Stufe_1) and not GPIO.input(Taster_Kuehlung_Stufe_2) == True:
GPIO.output(Ausgang_Wasserpumpe,GPIO.HIGH)
os.system('clear')
print "Wasserpumpe für 15 Sekunden eingeschaltet!"
time.sleep(15)
GPIO.output(Ausgang_Wasserpumpe,GPIO.LOW)
os.system('clear')
print "Wasserpumpe für 300 Sekunden ausgeschaltet!"
time.sleep(300)
if Status_Taster_Kuehlung_Stufe_2 and GPIO.input(Taster_Kuehlung_Stufe_2) and not GPIO.input(Taster_Kuehlung_Stufe_1) == True:
GPIO.output(Ausgang_Wasserpumpe,GPIO.HIGH)
os.system('clear')
print "Wasserpumpe für 30 Sekunden eingeschaltet!"
time.sleep(30)
GPIO.output(Ausgang_Wasserpumpe,GPIO.LOW)
os.system('clear')
print "Wasserpumpe für 120 Sekunden ausgeschaltet!"
time.sleep(120)
except KeyboardInterrupt:
GPIO.cleanup()
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 648147
Url: https://administrator.de/contentid/648147
Ausgedruckt am: 24.11.2024 um 07:11 Uhr