mbed Weather Platform firmware http://mbed.org/users/okini3939/notebook/mbed-weather-platform-firmware/
Dependencies: EthernetNetIf SDHCFileSystem I2CLEDDisp Agentbed NTPClient_NetServices mbed BMP085 HTTPClient ConfigFile I2CLCD
Diff: main.cpp
- Revision:
- 2:4125fe2283ef
- Parent:
- 1:86d4b7431fbe
- Child:
- 3:60f5f6d5f765
--- a/main.cpp Mon Dec 13 15:28:59 2010 +0000 +++ b/main.cpp Mon Dec 13 16:40:19 2010 +0000 @@ -14,6 +14,7 @@ //#include "I2CLCD.h" #include "ConfigFile.h" #include "SDFileSystem.h" +#include "MSCFileSystem.h" #include "EthernetNetIf.h" #include "NTPClient.h" #include "HTTPClient.h" @@ -28,6 +29,7 @@ ConfigFile conf; DigitalOut led1(LED1), led2(LED2), led3(LED3), led4(LED4); SDFileSystem sd(p5, p6, p7, p8, "sd"); +MSCFileSystem *usb; // Sensors float pres, temp, humi, light, anemo, vane, rain, uv, moist, temp2; @@ -62,14 +64,18 @@ float f; f = ain * 5.0; // V - return f / ((3.3 - f) / 10.0); // k ohm + f = f / ((3.3 - f) / 10.0); // k ohm + if (f < 0) f = 0; + return f; } float get_uv (AnalogIn &ain) { float f; f = ain * 5.0 / 100000; // A - return f / 0.000384; // mW/cm2 + f = f / 0.000384; // mW/cm2 + if (f < 0) f = 0; + return f; } void action (char *buf) { @@ -100,6 +106,8 @@ conf.load("/sd/weather.cf"); + pc.printf("Interval: %d sec\r\n", conf.interval); + if (conf.ipaddr[0]) { // use ethernet @@ -140,17 +148,29 @@ if (conf.filetype) { // seq num - fp = fopen("/sd/weather.seq", "r"); + + if (conf.filetype == 1) { + strcpy(filename, "/sd"); + } else + if (conf.filetype == 2) { + usb = new MSCFileSystem("usb"); + strcpy(filename, "/usb"); + } + strcat(filename, "/weather.seq"); + + // load + fp = fopen(filename, "r"); if (fp) { fscanf(fp, "%d", &seq); fclose(fp); } seq ++; - fp = fopen("/sd/weather.seq", "w"); + // save + fp = fopen(filename, "w"); if (fp) { fprintf(fp, "%d", seq); fclose(fp); - // create csv filename + // csv filename if (conf.filetype == 1) { sprintf(filename, "/sd/w%05d.csv", seq); } else @@ -171,7 +191,6 @@ led1 = 1; init(); pc.printf(VERSION "\r\n\r\n"); - pc.printf("[%s|%s|%s|%s]\r\n", conf.pachube_apikey, conf.pachube_feedid, conf.twitter_user, conf.twitter_pwd); if (conf.filetype) { strcpy(buf, "date,pres(hPa),temp(`C),humi(%%),anemo(m/s),vane(`),rain(mm),light(lx),uv(mW/cm2),moist(kohm),\r\n");