Hallo, ich habe jetzt mein Python Script geschrieben, welches erst die Temperatur ausließt und anschließend einen Motor für unterschiedlich lange zeit (je nach Temperatur) anschaltet. Doch es funktioniert nicht.
Python
#!/usr/bin/python
# -*- coding: utf-8 -*-
import time
import RPi.GPIO as GPIO
import os
import sys
import time
# //////////////////////////////////////////////////////
# ////////////////////SETUP BEGIN///////////////////////
GPIO.setmode(GPIO.BOARD)
GPIO.setup(31, GPIO.OUT)
GPIO.setup(35, GPIO.OUT)
# ////////////////////SETUP END/////////////////////////
# //////////////////////////////////////////////////////
# //////////////////////////////////////////////////////
# ////////////////////SCRIPT BEGIN//////////////////////
def aktuelleTemperatur():
file = open('/sys/bus/w1/devices/28-000007fa6c0f/w1_slave')
filecontent = file.read()
file.close()
stringvalue = filecontent.split('\n')[1].split(' ')[9]
temperature = float(stringvalue[2:]) / 1000
rueckgabewert = '%6.2f' % temperature
return rueckgabewert
def tmpmgr():
if aktuelleTemperatur < 27:
if aktuelleTemperatur < 26:
if aktuelleTemperatur < 25:
if aktuelleTemperatur < 24:
if aktuelleTemperatur < 23:
GPIO.output(31, GPIO.HIGH)
GPIO.output(35, GPIO.LOW)
time.sleep(30)
GPIO.output(31, GPIO.LOW)
GPIO.output(35, GPIO.HIGH)
time.sleep(1)
else:
GPIO.output(31, GPIO.HIGH)
GPIO.output(35, GPIO.LOW)
time.sleep(25)
GPIO.output(31, GPIO.LOW)
GPIO.output(35, GPIO.HIGH)
time.sleep(1)
else:
GPIO.output(31, GPIO.HIGH)
GPIO.output(35, GPIO.LOW)
time.sleep(15)
GPIO.output(31, GPIO.LOW)
GPIO.output(35, GPIO.HIGH)
time.sleep(1)
else:
GPIO.output(31, GPIO.HIGH)
GPIO.output(35, GPIO.LOW)
time.sleep(7)
GPIO.output(31, GPIO.LOW)
GPIO.output(35, GPIO.HIGH)
time.sleep(1)
else:
GPIO.output(31, GPIO.LOW)
GPIO.output(35, GPIO.HIGH)
time.sleep(30)
GPIO.output(31, GPIO.HIGH)
GPIO.output(35, GPIO.LOW)
time.sleep(1)
time.sleep(1)
# ////////////////////SCRIPT END////////////////////////
# //////////////////////////////////////////////////////
Alles anzeigen
Doch warum wird immer die letzte else bedingung ausgeführt? Wenn ich nur das erste Script zur Temperaturabfrage nehme, zeigt es mir 23°C an, und wenn ich dann wieder das Zweite Script dazu nehme, wird wieder die letzte else abfrage ausgeführt (
Code
GPIO.output(31, GPIO.LOW)
GPIO.output(35, GPIO.HIGH)
time.sleep(30)
GPIO.output(31, GPIO.HIGH)
GPIO.output(35, GPIO.LOW)
time.sleep(1)
time.sleep(1)
) .
WARUM?
Vielen Dank!