Hallo in die Runde,
ich habe, für jemanden der öfter mit Python programmiert (wahrscheinlich), ein kleines Problem.
Ich möchte gerne Daten von Sensoren abfragen und damit Relais schalten.
Im ersten Teil soll pro Sensor ein Relais geschaltet werden (was auch soweit funktioniert).
Danach würde ich gerne die Daten von mehreren Sensoren zusammen nehmen, um damit wiederum ein Relais zu schalten (mit or und and).
Und da fangen die Probleme an.
Egal was ich versuche, entweder kommt eine Fehlermeldung oder das Programm ignoriert die Zeilen einfach.
Wenn mir jemand weiter helfen könnte, was ich zwischen Zeile 80 und 86 ändern muss währe ich sehr dankbar.
#!/usr/bin/python3
import spidev
import time
import RPi.GPIO as gpio
gpio.setmode (gpio.BOARD)
gpio.setwarnings(False)
#output
gpio.setup (8, gpio.OUT)
gpio.setup (10, gpio.OUT)
gpio.setup (12, gpio.OUT)
gpio.setup (16, gpio.OUT)
gpio.setup (18, gpio.OUT)
gpio.setup (22, gpio.OUT)
gpio.setup (24, gpio.OUT)
gpio.setup (26, gpio.OUT)
gpio.setup (32, gpio.OUT)
gpio.setup (36, gpio.OUT)
gpio.setup (38, gpio.OUT)
gpio.setup (40, gpio.OUT)
Pumpe = 40
Sensor1 = 38
Sensor2 = 36
Sensor3 = 32
Sensor4 = 26
Sensor5 = 24
Sensor6 = 22
Sensor7 = 18
#Sensorwerte
#Sensor1
Low1 = 60.00
High1 = 80.00
#Sensor2
Low2 = 60.00
High2 = 80.00
spi = spidev.SpiDev()
spi.open(0,1)
spi.max_speed_hz = 5000
while True:
#Sensor1
antwort = spi.xfer([1,128,0])
if 0.1 <= antwort [1] <= 5:
wert1 = ((antwort[1] * 256) + antwort[2]) * 0.00476
fprozent1 = ((2.476 / wert1) * 100)
if fprozent1 <= Low1:
gpio.output (Sensor1, gpio.HIGH)
time.sleep (1)
elif fprozent1 >= High1:
time.sleep (1)
gpio.output (Sensor1, gpio.LOW)
#Sensor2
antwort = spi.xfer([1,144,0])
if 0.1 <= antwort [1] <= 5:
wert2 = ((antwort[1] * 256) + antwort[2]) * 0.00476
fprozent2 = ((2.476 / wert2) * 100)
if fprozent2 <= Low1:
gpio.output (Sensor2, gpio.HIGH)
time.sleep (1)
elif fprozent2 >= High2:
time.sleep (1)
gpio.output (Sensor2, gpio.LOW)
print ({fprozent1} |{fprozent2})
if [(fprozent1 <= Low1) or (fprozent2 <= Low2)]:
gpio.output (Pumpe, gpio.HIGH)
elif ([fprozent1 >= High1] and [Sensor2 >= High2]):
gpio.output (Pumpe, gpio.LOW)
time.sleep(1)
Alles anzeigen
Ich habe mir für den Anfang wohl leider etwas viel vorgenommen.
Vielen Dank schon mal für eure Hilfe
Stepo