Hallo an alle,
Ich möchte ein Schildkrötenterrarium automatisiert Heizen. Dafür sollen zwei Relais angesteuert werden, wenn ein bestimmter Temperaturwert bzw Luftfeuchtigkeit überschritten wird.
Als Temperatursensor verwende ich den DHT22.
Folgendes Python Programm habe ich entwickelt. Jedoch habe ich das Problem, dass der Wert des Sensor nicht aktualisiert wird. Das bedeutet wenn das Programm gestartet wird, wird einmal die Temperatur eingelesen und dann nicht mehr aktualisiert.
Hat jemand von euch eine Idee woran das liegt?
Viele Grüße aus Leipzig
Python
#!/usr/bin/python
import sys
import time
import RPi.GPIO as GPIO
import Adafruit_DHT
# RPi.GPIO Layout verwenden (wie Pin-Nummern)
GPIO.setmode(GPIO.BOARD)
# Pin 18 (GPIO 18) auf Output setzen
GPIO.setup(18, GPIO.OUT)
GPIO.setup(23, GPIO.OUT)
# PIN Auf VCC
GPIO.output(18, GPIO.HIGH)
while True:
sensor_args = { '11': Adafruit_DHT.DHT11,
'22': Adafruit_DHT.DHT22,
'2302': Adafruit_DHT.AM2302 }
if len(sys.argv) == 3 and sys.argv[1] in sensor_args:
sensor = sensor_args[sys.argv[1]]
pin = sys.argv[2]
else:
print('usage: sudo ./Adafruit_DHT.py [11|22|2302] GPIOpin#')
print('example: sudo ./Adafruit_DHT.py 2302 4 - Read from an AM2302 connected to GPIO #4')
sys.exit(1)
humidity, temperature = Adafruit_DHT.read_retry(sensor, pin)
if humidity is not None and temperature is not None:
print('Temp={0:0.1f}* Humidity={1:0.1f}%'.format(temperature, humidity))
else:
print('Failed to get reading. Try again!')
sys.exit(1)
"""Regelung der Temperatur"""
time.sleep(10.0)
print temperature
if temperature < 27.0:#Hier maximale Temperatur angeben
GPIO.output(18, GPIO.LOW)
else :
GPIO.output(18, GPIO.HIGH)
if humidity > 27.0:#Hier maximale Feuchtigkeit angeben
GPIO.output(23, GPIO.LOW)
else:
GPIO.output(23, GPIO.HIGH)
Alles anzeigen