Rev 3378 Rev 3379
1 #!/usr/bin/python 1 #!/usr/bin/python
2   2  
3 # Python driver for MLAB MAG01A module with HMC5888L Magnetometer sensor wrapper class 3 # Python driver for MLAB MAG01A module with HMC5888L Magnetometer sensor wrapper class
4   4  
5 import time 5 import time
6 import datetime 6 import datetime
7 import sys 7 import sys
8   8  
9 from pymlab import config 9 from pymlab import config
10   10  
11   11  
12 #### Script Arguments ############################################### 12 #### Script Arguments ###############################################
13   13  
14 if len(sys.argv) != 2: 14 if len(sys.argv) != 2:
15 sys.stderr.write("Invalid number of arguments.\n") 15 sys.stderr.write("Invalid number of arguments.\n")
16 sys.stderr.write("Usage: %s #I2CPORT\n" % (sys.argv[0], )) 16 sys.stderr.write("Usage: %s #I2CPORT\n" % (sys.argv[0], ))
17 sys.exit(1) 17 sys.exit(1)
18   18  
19 port = eval(sys.argv[1]) 19 port = eval(sys.argv[1])
20   20  
21   21  
22 #### Sensor Configuration ########################################### 22 #### Sensor Configuration ###########################################
23   23  
24 cfg = config.Config( 24 cfg = config.Config(
25 port = port, 25 port = port,
26 bus = [ 26 bus = [
27 { 27 {
28 "type": "i2chub", 28 "type": "i2chub",
29 "address": 0x72, 29 "address": 0x72,
30 "children": [ 30 "children": [
31 { 31 {
32 "type": "i2chub", 32 "type": "i2chub",
33 "address": 0x70, 33 "address": 0x70,
34 "channel": 0, 34 "channel": 0,
35 "children": [ 35 "children": [
36 {"name": "barometer", "type": "altimet01" , "channel": 0, }, 36 {"name": "barometer", "type": "altimet01" , "channel": 0, },
37 {"name": "hum_temp", "type": "sht25" , "channel": 1, }, 37 {"name": "hum_temp", "type": "sht25" , "channel": 1, },
38 # {"name": "wind_direction", "type": "mag01" , "channel": 1, }, 38 # {"name": "wind_direction", "type": "mag01" , "channel": 1, },
-   39 {"name": "thermometer", "type": "lts01" , "channel": 2, },
39 ], 40 ],
40 }, 41 },
41 # {"name": "barometer2", "type": "altimet01" , "channel": 6, }, 42 # {"name": "barometer2", "type": "altimet01" , "channel": 6, },
42 ], 43 ],
43 }, 44 },
44 ], 45 ],
45 ) 46 )
46   47  
47 cfg.initialize() 48 cfg.initialize()
48   49  
49 barometer = cfg.get_device("barometer") 50 barometer = cfg.get_device("barometer")
50 hum_temp = cfg.get_device("hum_temp") 51 hum_temp = cfg.get_device("hum_temp")
51 #wind_direction = cfg.get_device("wind_direction") 52 #wind_direction = cfg.get_device("wind_direction")
-   53 thermometer = cfg.get_device("thermometer")
52 time.sleep(0.5) 54 time.sleep(0.5)
53   55  
54 #### Data Logging ################################################### 56 #### Data Logging ###################################################
55   57  
56 filename = datetime.datetime.now().isoformat() 58 filename = datetime.datetime.now().isoformat()
57   59  
58   60  
59 try: 61 try:
60 with open(filename+".log", "a") as f: 62 with open(filename+".log", "a") as f:
61 while True: 63 while True:
62 barometer.route() 64 barometer.route()
63 (t1, p1) = barometer.get_tp() 65 (t1, p1) = barometer.get_tp()
64 hum_temp.route() 66 hum_temp.route()
65 t2 = hum_temp.get_temp() 67 t2 = hum_temp.get_temp()
-   68 t3 = thermometer.get_temp()
66 h1 = hum_temp.get_hum() 69 h1 = hum_temp.get_hum()
-   70
67   71  
68 sys.stdout.write(" Temperature: %.2f Pressure: %d TempSHT: %.2f HumSHT: %.1f " % (t1, p1, t2, h1,)) 72 sys.stdout.write(" Temperature: %.2f Pressure: %d TempSHT: %.2f HumSHT: %.1f TempLTS: %.2f" % (t1, p1, t2, h1, t3))
69 f.write("%d\t%.2f\t%d\t%.2f\t%.1f\n" % (time.time(),t1, p1, t2, h1,)) 73 f.write("%d\t%.2f\t%d\t%.2f\t%.1f\t%.2f\n" % (time.time(),t1, p1, t2, h1, t3))
70 sys.stdout.flush() 74 sys.stdout.flush()
71 time.sleep(10) 75 time.sleep(10)
72 except KeyboardInterrupt: 76 except KeyboardInterrupt:
73 sys.exit(0) 77 sys.exit(0)
74   78