mbed Weather Station for Weatherduino on mbeduino http://mbed.org/users/okini3939/notebook/weatherduino-on-mbed/

Dependencies:   mbed

Committer:
okini3939
Date:
Tue Oct 12 16:44:01 2010 +0000
Revision:
2:920a4e65129d
Parent:
1:23400c328a71

        

Who changed what in which revision?

UserRevisionLine numberNew contents of line
okini3939 0:6e444b317905 1 #include "mbed.h"
okini3939 0:6e444b317905 2 #include "BMP085.h"
okini3939 0:6e444b317905 3 #include "SHT.h"
okini3939 0:6e444b317905 4 #include "WeatherMeters.h"
okini3939 0:6e444b317905 5
okini3939 0:6e444b317905 6 I2C i2c(p9, p10);
okini3939 0:6e444b317905 7
okini3939 0:6e444b317905 8 BMP085 bmp085(i2c, BMP085_oss4);
okini3939 0:6e444b317905 9 SHT sht11(p24, p12, SHT_high); // sclock, data
okini3939 0:6e444b317905 10 WeatherMeters wmeters(p30, p17, p21); // anemo, vane, rain
okini3939 0:6e444b317905 11
okini3939 0:6e444b317905 12 DigitalOut myled(LED1);
okini3939 0:6e444b317905 13 Serial pc(USBTX, USBRX);
okini3939 1:23400c328a71 14 AnalogIn photo(p18);
okini3939 2:920a4e65129d 15 AnalogIn moist(p16);
okini3939 2:920a4e65129d 16 AnalogIn uv(p15);
okini3939 1:23400c328a71 17
okini3939 1:23400c328a71 18 float get_photo (AnalogIn &ain) {
okini3939 1:23400c328a71 19 float f;
okini3939 1:23400c328a71 20
okini3939 1:23400c328a71 21 f = ain * 5.0 / 1000; // A
okini3939 2:920a4e65129d 22 return f / 0.0000026; // lx
okini3939 2:920a4e65129d 23 }
okini3939 2:920a4e65129d 24
okini3939 2:920a4e65129d 25 float get_moist (AnalogIn &ain) {
okini3939 2:920a4e65129d 26 float f;
okini3939 2:920a4e65129d 27
okini3939 2:920a4e65129d 28 f = ain * 5.0; // V
okini3939 2:920a4e65129d 29 return f / ((3.3 - f) / 10.0); // k ohm
okini3939 2:920a4e65129d 30 }
okini3939 2:920a4e65129d 31
okini3939 2:920a4e65129d 32 float get_uv (AnalogIn &ain) {
okini3939 2:920a4e65129d 33 float f;
okini3939 2:920a4e65129d 34
okini3939 2:920a4e65129d 35 f = ain * 5.0 / 100000; // A
okini3939 2:920a4e65129d 36 return f / 0.000384; // mW/cm2
okini3939 1:23400c328a71 37 }
okini3939 0:6e444b317905 38
okini3939 0:6e444b317905 39 int main() {
okini3939 0:6e444b317905 40 while(1) {
okini3939 0:6e444b317905 41 myled = 1;
okini3939 0:6e444b317905 42
okini3939 0:6e444b317905 43 bmp085.update();
okini3939 0:6e444b317905 44 pc.printf("p:%6.2f hPa / t:%6.2f C\n", bmp085.get_pressure(), bmp085.get_temperature());
okini3939 0:6e444b317905 45
okini3939 0:6e444b317905 46 sht11.update(SHT_high);
okini3939 0:6e444b317905 47 pc.printf("t:%6.2f C / h:%6.2f %%\n", sht11.get_temperature(), sht11.get_humidity());
okini3939 0:6e444b317905 48
okini3939 0:6e444b317905 49 pc.printf("a:%6.2f m/s / v:%6.2f / r:%6.2f mm\n", wmeters.get_windspeed(), wmeters.get_windvane(), wmeters.get_raingauge());
okini3939 0:6e444b317905 50
okini3939 2:920a4e65129d 51 pc.printf("l:%6.2f lx\n", get_photo(photo));
okini3939 2:920a4e65129d 52 pc.printf("l:%6.2f k ohm\n", get_moist(moist));
okini3939 2:920a4e65129d 53 pc.printf("l:%6.2f mW/cm2\n", get_uv(uv));
okini3939 1:23400c328a71 54
okini3939 0:6e444b317905 55 myled = 0;
okini3939 0:6e444b317905 56 wait(10);
okini3939 0:6e444b317905 57 }
okini3939 0:6e444b317905 58 }