Hallo und Moin,
Ich will mir für meine Chilipflanzen eine Box bauen, in der optimale Klimabedingungen herrschen. Da diese aus Mexico kommen und es sich um keine Zuchtsaat handelt, sind die halt ein wenig anfälliger aber unter optimalen Bedingungen halt auch um einiges Geschmacksvoller (weniger Schärfe, aber höheren Eigengeschmack). Aber ja eigentlich auch egal.
Es gibt im Groben zwei Phasen:
Vegetation und Fruchtphase, welche sich von dem Belichtungzeitraum unterscheiden.
Außerhalb des Belichtungszeitraumes sollen auch andere Temperaturen gehalten werden, dazu hab ich nun dieses Python Skript geschrieben (s.u.).
Das Script soll nun alle 15Minuten die Temperatur und Luftfeuchtigkeit messen und entsprechend agieren (Kühl und Heizmaßnahmen über Relais gesteuert), das Problem ist nur, dass die Werte, die nun gemessen werden komplett identisch sind und nicht neu erfasst werden.
Das sieht so aus, dass zu Anfang eine Temperatur von Bsp.: 19°C gemessen wird und dieser nun alle 15Min ausgegeben wird und sich nicht verändert, dabei soll das Script ja alle 15Min neu Messen.
Ich bin blutiger Anfänger und beschäftige mich nun bummelig eine Woche mit Python, daher habt bitte Nachsicht , auch wenn es tausende Gewächshaus Scripte gibt, wollte ich gerne selber eins schreiben, da mich Python sehr fasziniert und ich die Sprache gerne lernen möchte. Aus Google und der Suchfunktion bin ich leider auch nicht schlauer geworden.
Ich freu mich auf die Antworten und vielen Dank schonmal!
#!/usr/bin/env python
# coding: utf8
import RPi.GPIO as GPIO
import time
GPIO.setmode(GPIO.BOARD)
GPIO.setwarnings(False)
R1 = 40 #Licht
R2 = 38 #Luft
R3 = 36
R4 = 37
R5 = 35
R6 = 33
R7 = 32
R8 = 22
import Adafruit_DHT
sensor = Adafruit_DHT.DHT22
pin = 4
humidity, temperature = Adafruit_DHT.read_retry(sensor, pin)
def Luft_veg(): #Vegetationsphase (22-26Cel Temp)
t = -0.25 #steht fuer Zeit 1.5t = 1 Std 30 Min
humidity, temperature = Adafruit_DHT.read_retry(sensor, pin)
c = temperature
lf = humidity
d = 0
Veg_Tag = 50
while True:
t = t + 0.25
if t < 5: #0:00 Uhr - 04:59 Uhr
humidity, temperature = Adafruit_DHT.read_retry(sensor, pin)
humidity
temperature
if c < 16: #unter 16°C
print("Temp < 16 ; Heizen T",t, d, "Temp",c,"Grad", 'Luftfeuchtigkeit', lf)
time.sleep(900)
elif 16 <= c <= 20: #zwischen 16°C - 20°C
print("Temp im Opti-Bereich 16-20; Halten T",t, d, "Temp",c,"Grad", 'Luftfeuchtigkeit', lf)
time.sleep(900)
else: #ueber 20°C
print("Temp zu Hoch > 20 ; Kuehlen",t,"Std", "Tag",d, "Temp",c,"Grad", 'Luftfeuchtigkeit', lf)
time.sleep(900)
elif 5 <= t <=22: #05:00 Uhr - 21:59 Uhr
humidity, temperature = Adafruit_DHT.read_retry(sensor, pin)
humidity
temperature
if c < 22: #unter 22°C
print("Temp < 22 ; Heizen",t,"Std", "Tag",d, "Temp",c,"Grad", 'Luftfeuchtigkeit', lf)
time.sleep(900)
elif 22 <= c <= 26: #zwischen 22°C - 26°C
print("Temp im Opti-Bereich 22-26 ; Halten",t,"Std", "Tag",d, "Temp",c,"Grad", 'Luftfeuchtigkeit', lf)
time.sleep(900)
else: #über 26°C
print("Temp zu Hoch > 26 ; Kühlen",t,"Std", "Tag",d, "Temp",c,"Grad", 'Luftfeuchtigkeit', lf)
time.sleep(900)
elif t == 24: #Stundenzähler auf 0 zurücksetzen
t = -0.25
print("T reset")
if d < Veg_Tag:
d = d + 1
else:
print(Veg_Tag,"Tage Vegetationsphase abgeschlossen ; Wechsle zu Bluetephase")
Luft_Blu()
time.sleep(900)
else: #22:00 Uhr - 23:59 Uhr
humidity, temperature = Adafruit_DHT.read_retry(sensor, pin)
humidity
temperature
if c < 16: #unter 16°C
print("Temp < 16 ; Heizen",t,"Std", "Tag",d, "Temp",c,"Grad", 'Luftfeuchtigkeit', lf)
time.sleep(900)
elif 16 <= c <= 20: #zwischen 16°C - 20°C
print("Temp im Opti-Bereich 16-20; Halten",t,"Std", "Tag",d, "Temp",c,"Grad", 'Luftfeuchtigkeit', lf)
time.sleep(900)
else: #ueber 20°C
print("Temp zu Hoch > 20 ; Kühlen",t,"Std", "Tag",d, "Temp",c,"Grad", 'Luftfeuchtigkeit', lf)
time.sleep(900)
Luft_veg()
Display More
Die Funktion Luft_Blu ist quasi genau die gleiche wie Luft_veg, nur mit anderen Zeiten und Temperaturen