Python: Update Sensor Data to Variable -
i have temperature , pressure gauge want use track temperature on time with. since may end multiple sensors on time, want able reference bmp085 sensor tp. in other words, call tp.temp or tp.pressure obtain current temperature, etc. problem tp.temp or .pressure not updating each time call it. suggestions?
#!/usr/bin/env python #temperature logger bmp085 temperature , pressure sensor on raspberry pi adafruit_bmp085 import bmp085 time import sleep import pickle, sys, os class tps(): def __init__(self): #temperature/pressure sensor setup self.bmp = bmp085(0x77) self.temp = self.bmp.readtemperature()*1.8+32 self.pressure = self.bmp.readpressure()*0.0002953 class data(): def __init__(self): self.tp = tps() self.savedata() def savedata(self): # if os.path.exists("data.dat")==true: # if os.path.isfile("data.dat")==true: # filehandle = open ( 'data.dat' ) # olddata = pickle.load ( filehandle ) # filehandle.close() print self.tp.temp, self.tp.pressure sleep(4) print self.tp.temp, self.tp.pressure # newdata = [self.tp.temp, self.tp.pressure] # self.datadump = [olddata] # self.datadump.append(newdata) # filehandle = open ( 'data.dat', 'w' ) # pickle.dump ( self.datadump, filehandle ) # filehandle.close() data()
that's because called bmp.readtemperature() , bmp.readpressure() functions once - in tps.__init__. in print statements @ end, you're twice reading values functions returned, rather getting updated values.
here's example of how updated values:
class tps(): def __init__(self): #temperature/pressure sensor setup self.bmp = bmp085(0x77) self.temp = none self.pressure = none # if want initialize tps object sensor data, can call updater method here. self.updatetempandpressure() # here's function can call whenever want updated data sensor def updatetempandpressure(self): self.temp = self.bmp.readtemperature()*1.8+32 self.pressure = self.bmp.readpressure()*0.0002953 class data(): def __init__(self): self.tp = tps() self.savedata() def savedata(self): # call method gets updated data sensor self.tp.updatetempandpressure() print self.tp.temp, self.tp.pressure sleep(4) # call update method again self.tp.updatetempandpressure() print self.tp.temp, self.tp.pressure data()
Comments
Post a Comment