Skip to content
This repository was archived by the owner on Dec 9, 2022. It is now read-only.

Commit ccfb94b

Browse files
committed
readSensor now close serial conection directly after read input to make sure
closeing is never forgotten, temp.plot now generates correctly even between 00:00-02:00
1 parent 7fcea46 commit ccfb94b

4 files changed

Lines changed: 23 additions & 20 deletions

File tree

readSensor.py

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,23 +5,24 @@ def readSensor():
55
ser.open()
66
ser.flushInput() # flush old input before getting new
77
input = ser.readline()
8+
ser.close()
89
try:
910
sensor = re.split(" Sensor: | ", input)[1]
1011
except:
1112
#print "Incorretly formated:", input
12-
ser.close()
1313
return readSensor()
1414

1515
if sensor == "Temp":
16-
id = re.split("Sensor: | ID: | Temp: |C\r\n", input)[2]
17-
value = re.split("Sensor: | ID: | Temp: |C\r\n", input)[3]
16+
try:
17+
id=re.split("Sensor: | ID: | Temp: |C\r\n", input)[2]
18+
value=re.split("Sensor: | ID: | Temp: |C\r\n", input)[3]
19+
except:
20+
return readSensor()
1821
elif sensor == "Error":
1922
print input
2023
else:
2124
print "Incorretly formated:", input
2225

23-
ser.close()
24-
2526
return value, id, sensor
2627

2728
def main():

sensorLogger.py

Lines changed: 16 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -28,17 +28,19 @@ def logging():
2828
except:
2929
print "ID:", id, "not found in sensorLookUp, please add"
3030

31-
32-
conn = sqlite3.connect("/home/simon/logger/sensors.db")
33-
c = conn.cursor()
34-
for name in sensorReadings:
35-
#date, time, value, sensor, name
36-
c.execute("insert into sensors values(?, ?, ?, ?, ?)",\
37-
[date, time, sensorReadings[name][1], \
38-
sensorReadings[name][0], name])
39-
40-
conn.commit();
41-
c.close()
31+
try:
32+
conn = sqlite3.connect("/home/simon/logger/sensors.db")
33+
c = conn.cursor()
34+
for name in sensorReadings:
35+
#date, time, value, sensor, name
36+
c.execute("insert into sensors values(?, ?, ?, ?, ?)",\
37+
[date, time, sensorReadings[name][1], \
38+
sensorReadings[name][0], name])
39+
40+
conn.commit();
41+
c.close()
42+
except:
43+
return False
4244
print "Successfully written readings to db at:", date, time
4345
return True # succesfully logged
4446

@@ -49,9 +51,9 @@ def main():
4951
minutesToday = timetuple[3] * 60 + timetuple[4]
5052
#if its time to logg and not allready logged
5153
if minutesToday % loggTime == 0 and lastLoged != minutesToday:
52-
lastLoged = minutesToday
53-
logging()
54-
os.system("gnuplot temp.plot")
54+
if logging():
55+
lastLoged = minutesToday
56+
os.system("gnuplot temp.plot")
5557
time.sleep(30) # sleep 30 seconds
5658

5759

sensors.db

99 KB
Binary file not shown.

temp.plot

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,4 +12,4 @@ set yrange [0:*]
1212
set xdata time
1313
set timefmt x "%H:%M"
1414
set format x "%H:%M"
15-
plot "< sqlite3 sensors.db \"SELECT time, value from sensors where date = date('now') and name = 'outdoor';\"" using 1:2 title "outdoor", "< sqlite3 sensors.db \"SELECT time, value from sensors where date = date('now') and name = 'indoor';\"" using 1:2 title "indoor"
15+
plot "< sqlite3 sensors.db \"SELECT time, value from sensors where date = date('now', 'localtime') and name = 'outdoor';\"" using 1:2 title "outdoor", "< sqlite3 sensors.db \"SELECT time, value from sensors where date = date('now', 'localtime') and name = 'indoor';\"" using 1:2 title "indoor"

0 commit comments

Comments
 (0)