sho hashimoto
/
sensor_http_post
posted data are here => http://shokai.mag.keio.ac.jp/sensor-storage/shokai/cds/recent
main.cpp@1:f2d0019c7d6f, 2010-04-25 (annotated)
- Committer:
- shokai
- Date:
- Sun Apr 25 13:30:49 2010 +0000
- Revision:
- 1:f2d0019c7d6f
- Parent:
- 0:969bf1c3d310
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
shokai | 0:969bf1c3d310 | 1 | #include "mbed.h" |
shokai | 0:969bf1c3d310 | 2 | #include "HTTPClient.h" |
shokai | 0:969bf1c3d310 | 3 | #include <string> |
shokai | 0:969bf1c3d310 | 4 | using namespace std; |
shokai | 0:969bf1c3d310 | 5 | |
shokai | 0:969bf1c3d310 | 6 | Serial pc(USBTX, USBRX); |
shokai | 0:969bf1c3d310 | 7 | |
shokai | 0:969bf1c3d310 | 8 | DigitalOut led1(LED1); // blink |
shokai | 0:969bf1c3d310 | 9 | DigitalOut led2(LED2); // blink when http-post |
shokai | 0:969bf1c3d310 | 10 | DigitalOut led3(p11); // represent ADC value |
shokai | 0:969bf1c3d310 | 11 | |
shokai | 0:969bf1c3d310 | 12 | AnalogIn adc(p15); |
shokai | 0:969bf1c3d310 | 13 | float ain; |
shokai | 0:969bf1c3d310 | 14 | |
shokai | 0:969bf1c3d310 | 15 | HTTPClient http; // use DHCP |
shokai | 0:969bf1c3d310 | 16 | |
shokai | 1:f2d0019c7d6f | 17 | const string api_uri = "http://shokai.mag.keio.ac.jp/sensor-storage/shokai/cds/"; |
shokai | 0:969bf1c3d310 | 18 | const string mbed_name = "shokai-mbed01"; |
shokai | 0:969bf1c3d310 | 19 | const string sensor_name = "CdS"; |
shokai | 0:969bf1c3d310 | 20 | |
shokai | 0:969bf1c3d310 | 21 | void blink_led(DigitalOut led, int num){ |
shokai | 0:969bf1c3d310 | 22 | for(int i=0; i < num*2; i++){ |
shokai | 0:969bf1c3d310 | 23 | led = !led; |
shokai | 0:969bf1c3d310 | 24 | wait(0.1); |
shokai | 0:969bf1c3d310 | 25 | } |
shokai | 0:969bf1c3d310 | 26 | } |
shokai | 0:969bf1c3d310 | 27 | |
shokai | 0:969bf1c3d310 | 28 | void post_sensor_value(){ |
shokai | 0:969bf1c3d310 | 29 | blink_led(led2, 2); |
shokai | 0:969bf1c3d310 | 30 | char query[256] = ""; |
shokai | 0:969bf1c3d310 | 31 | char result[4096] = ""; // 4kb |
shokai | 0:969bf1c3d310 | 32 | sprintf(query, "name=%s&%s=%f", mbed_name.c_str(), sensor_name.c_str(), (float)ain); |
shokai | 0:969bf1c3d310 | 33 | pc.printf("post:%s => %s\n", query, api_uri.c_str()); |
shokai | 0:969bf1c3d310 | 34 | http.post(api_uri.c_str(), query, result, 4096); |
shokai | 0:969bf1c3d310 | 35 | pc.printf("%s\n", result); |
shokai | 0:969bf1c3d310 | 36 | blink_led(led2, 2); |
shokai | 0:969bf1c3d310 | 37 | } |
shokai | 0:969bf1c3d310 | 38 | |
shokai | 0:969bf1c3d310 | 39 | int main(void){ |
shokai | 0:969bf1c3d310 | 40 | led1 = 1; |
shokai | 0:969bf1c3d310 | 41 | int count = 0; |
shokai | 0:969bf1c3d310 | 42 | while(1) { |
shokai | 0:969bf1c3d310 | 43 | ain = adc; |
shokai | 0:969bf1c3d310 | 44 | pc.printf("sensor:%f\n", float(ain)); |
shokai | 0:969bf1c3d310 | 45 | led1 = !led1; // blink LED |
shokai | 0:969bf1c3d310 | 46 | if(ain > 0.1) led3 = 0; // represent CdS value |
shokai | 0:969bf1c3d310 | 47 | else led3 = 1; |
shokai | 0:969bf1c3d310 | 48 | if(count > 20){ |
shokai | 0:969bf1c3d310 | 49 | post_sensor_value(); |
shokai | 0:969bf1c3d310 | 50 | count = 0; |
shokai | 0:969bf1c3d310 | 51 | } |
shokai | 0:969bf1c3d310 | 52 | count++; |
shokai | 0:969bf1c3d310 | 53 | wait(0.5); |
shokai | 0:969bf1c3d310 | 54 | } |
shokai | 0:969bf1c3d310 | 55 | } |