-
Notifications
You must be signed in to change notification settings - Fork 0
/
DataMonitor.py
96 lines (83 loc) · 3.28 KB
/
DataMonitor.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
import Adafruit_DHT
import RPi.GPIO as GPIO
import time, sys
import RawObject
import json
import datetime
import os
from daemon import Daemon
from RawObject import RawObject
## Setting up things
class DataMon (Daemon):
#class DataMon (object):
def run(self):
GPIO.setmode(GPIO.BOARD)
rainSensorPine = 11
tempSensor = Adafruit_DHT.DHT11
tempSensorPine = 22
refresh = 60
GPIO.setup(11, GPIO.IN)
print ("Aeolus Data Monitor\n")
pathSaveData = os.path.expanduser ("~") +"/SensorData"
while (True):
print ("Reading values from Sensors")
hum, temp = Adafruit_DHT.read_retry(tempSensor,
tempSensorPine)
#Get time closest as possible to sensor read call
currentdate = unicode(datetime.
datetime.now()
.strftime("%Y-%m-%d %H:%M:%S"))
rain = not GPIO.input(rainSensorPine)
print (temp)
if hum is not None and temp is not None:
rawDHT11 = {
"temp": temp,
"hum" : hum
}
rawYL83 = {
"rain" : rain
}
dht11Object = RawObject (rawDHT11,
"DHT11",
currentdate)
yl83Object = RawObject (rawYL83,
"YL83",
currentdate)
#print dht11Object.getJsonData()
self.dataSaver(dht11Object.getDate() + ".json",
pathSaveData,
dht11Object.getJsonData() )
self.dataSaver(yl83Object.getDate() + "C.json",
pathSaveData,
yl83Object.getJsonData() )
else:
print ("Couldn't retrieve information")
time.sleep (6) # sleeps for 6 seconds
def dataSaver (self,filename,path,data):
print "Saved data"
if os.path.isdir (path):
file = open (path +"/" + filename,"w")
file.write (data)
file.close
else:
os.mkdir (path)
self.dataSaver (filename,
path,data)
def main ():
daemon = DataMon ('/tmp/dsender.pid')
if len(sys.argv) == 2:
if 'start' == sys.argv[1]:
daemon.start()
elif 'stop' == sys.argv[1]:
daemon.stop()
elif 'restart' == sys.argv[1]:
daemon.restart()
else:
print "Unknown command"
sys.exit(2)
sys.exit(0)
else:
print "usage: %s start|stop|restart" % sys.argv[0]
sys.exit(2)
if __name__ == "__main__":
main()