Rev 3452 Rev 3621
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 #uncomment for debbug purposes
-   12 import logging
-   13 logging.basicConfig(level=logging.DEBUG)
-   14  
11   15  
12 #### Script Arguments ############################################### 16 #### Script Arguments ###############################################
13   17  
14 if len(sys.argv) != 2: 18 if len(sys.argv) != 2:
15 sys.stderr.write("Invalid number of arguments.\n") 19 sys.stderr.write("Invalid number of arguments.\n")
16 sys.stderr.write("Usage: %s #I2CPORT\n" % (sys.argv[0], )) 20 sys.stderr.write("Usage: %s #I2CPORT\n" % (sys.argv[0], ))
17 sys.exit(1) 21 sys.exit(1)
18   22  
19 port = eval(sys.argv[1]) 23 port = eval(sys.argv[1])
20   24  
21   25  
22 #### Sensor Configuration ########################################### 26 #### Sensor Configuration ###########################################
23   27  
24 cfg = config.Config( 28 cfg = config.Config(
-   29 i2c = {
25 port = port, 30 "port": port,
-   31 },
-   32  
26 bus = [ 33 bus = [
27 { 34 {
28 "type": "i2chub", 35 "type": "i2chub",
29 "address": 0x72, 36 "address": 0x72,
30 "children": [ 37 "children": [
31 { 38 {
32 "type": "i2chub", 39 "type": "i2chub",
33 "address": 0x70, 40 "address": 0x70,
34 "channel": 0, 41 "channel": 0,
35 "children": [ 42 "children": [
36 {"name": "barometer", "type": "altimet01" , "channel": 0, }, 43 {"name": "barometer", "type": "altimet01" , "channel": 0, },
37 {"name": "hum_temp", "type": "sht25" , "channel": 1, }, 44 {"name": "hum_temp", "type": "sht25" , "channel": 1, },
38 # {"name": "wind_direction", "type": "mag01" , "channel": 1, }, 45 # {"name": "wind_direction", "type": "mag01" , "channel": 1, },
39 # {"name": "thermometer", "type": "lts01" , "channel": 2, }, 46 # {"name": "thermometer", "type": "lts01" , "channel": 2, },
40 ], 47 ],
41 }, 48 },
42 # {"name": "barometer2", "type": "altimet01" , "channel": 6, }, 49 # {"name": "barometer2", "type": "altimet01" , "channel": 6, },
43 ], 50 ],
44 }, 51 },
45 ], 52 ],
46 ) 53 )
47   54  
48 cfg.initialize() 55 cfg.initialize()
49   56  
50 barometer = cfg.get_device("barometer") 57 barometer = cfg.get_device("barometer")
51 hum_temp = cfg.get_device("hum_temp") 58 hum_temp = cfg.get_device("hum_temp")
52 #wind_direction = cfg.get_device("wind_direction") 59 #wind_direction = cfg.get_device("wind_direction")
53 #thermometer = cfg.get_device("thermometer") 60 #thermometer = cfg.get_device("thermometer")
54 time.sleep(0.5) 61 time.sleep(0.5)
55   62  
56 #### Data Logging ################################################### 63 #### Data Logging ###################################################
57   64  
58 filename = datetime.datetime.now().isoformat() 65 filename = datetime.datetime.now().isoformat()
59   66  
60   67  
61 try: 68 try:
62 with open(filename+".log", "a") as f: 69 with open(filename+".log", "a") as f:
63 while True: 70 while True:
64 barometer.route() 71 barometer.route()
65 (t1, p1) = barometer.get_tp() 72 (t1, p1) = barometer.get_tp()
66 hum_temp.route() 73 hum_temp.route()
67 t2 = hum_temp.get_temp() 74 t2 = hum_temp.get_temp()
68 # t3 = thermometer.get_temp() 75 # t3 = thermometer.get_temp()
69 t3 = -200 76 t3 = -200
70 h1 = hum_temp.get_hum() 77 h1 = hum_temp.get_hum()
71 78
72   79  
73 sys.stdout.write(" Temperature: %.2f Pressure: %d TempSHT: %.2f HumSHT: %.1f TempLTS: %.2f" % (t1, p1, t2, h1, t3)) 80 sys.stdout.write(" Temperature: %.2f Pressure: %d TempSHT: %.2f HumSHT: %.1f TempLTS: %.2f" % (t1, p1, t2, h1, t3))
74 f.write("%d\t%.2f\t%d\t%.2f\t%.1f\t%.2f\n" % (time.time(),t1, p1, t2, h1, t3)) 81 f.write("%d\t%.2f\t%d\t%.2f\t%.1f\t%.2f\n" % (time.time(),t1, p1, t2, h1, t3))
75 sys.stdout.flush() 82 sys.stdout.flush()
76 time.sleep(10) 83 time.sleep(10)
77 except KeyboardInterrupt: 84 except KeyboardInterrupt:
78 sys.exit(0) 85 sys.exit(0)
79   86