make temperature sensor optional

MAX31855-EH
Sebastian Steuer 2013-11-23 23:50:59 +01:00
rodzic 0d7edffca8
commit ee42970341
1 zmienionych plików z 22 dodań i 12 usunięć

34
oven.py
Wyświetl plik

@ -1,5 +1,5 @@
import threading,time,random,datetime,logging import threading,time,random,datetime,logging
from max31855 import MAX31855, MAX31855Error
log_format = '%(asctime)s %(levelname)s %(name)s: %(message)s' log_format = '%(asctime)s %(levelname)s %(name)s: %(message)s'
logging.basicConfig(level = logging.INFO, format = log_format) logging.basicConfig(level = logging.INFO, format = log_format)
@ -58,25 +58,35 @@ class Oven (threading.Thread):
return state return state
class TempSensor(threading.Thread): class TempSensor(threading.Thread):
try:
from max31855 import MAX31855, MAX31855Error
dummy = False
except ImportError:
log.warning("Could not initialize temperature sensor, using dummy values!")
dummy = True
def __init__(self,oven): def __init__(self,oven):
threading.Thread.__init__(self) threading.Thread.__init__(self)
self.temperature = 0 self.temperature = 0
self.oven = oven self.oven = oven
cs_pin = 27 if not TempSensor.dummy:
clock_pin = 22 cs_pin = 27
data_pin = 17 clock_pin = 22
units = "c" data_pin = 17
self.thermocouple = MAX31855(cs_pin, clock_pin, data_pin, units) units = "c"
self.thermocouple = MAX31855(cs_pin, clock_pin, data_pin, units)
def run(self): def run(self):
while True: while True:
time_delta = (20.0 - self.temperature)/40 if not TempSensor.dummy:
power_delta = 8.0*self.oven.power self.temperature = self.thermocouple.get()
else:
#self.temperature += (time_delta+power_delta) time_delta = (20.0 - self.temperature)/40
self.temperature = self.thermocouple.get() power_delta = 8.0*self.oven.power
self.temperature += (time_delta+power_delta)
time.sleep(1) time.sleep(1)