Upload to cosm (pachube) from mbed.
Dependencies: EthernetInterface SCP1000 WebSocketClient mbed-rtos mbed
thank you for http://mbed.org/forum/bugs-suggestions/topic/3956/ thread.
Use AMS302,LM61BIZ,CHS-GSS,SCP-1000 and StarBoard Orange.
main.cpp@4:2e051261aef7, 2013-02-09 (annotated)
- Committer:
- kumajoi
- Date:
- Sat Feb 09 20:10:09 2013 +0000
- Revision:
- 4:2e051261aef7
- Parent:
- 3:80228f6bc21a
for MakeFaireTokyo2012
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
kumajoi | 3:80228f6bc21a | 1 | #include "mbed.h" |
kumajoi | 3:80228f6bc21a | 2 | #include "TextLCD.h" |
kumajoi | 3:80228f6bc21a | 3 | #include "SCP1000.h" |
kumajoi | 3:80228f6bc21a | 4 | #include "EthernetInterface.h" |
kumajoi | 3:80228f6bc21a | 5 | #include "Websocket.h" |
kumajoi | 3:80228f6bc21a | 6 | |
kumajoi | 3:80228f6bc21a | 7 | DigitalOut myled(LED1); |
kumajoi | 3:80228f6bc21a | 8 | TextLCD lcd(p24, p25, p26, p27, p28, p29, p30);; |
kumajoi | 3:80228f6bc21a | 9 | AnalogIn light_in(p20); |
kumajoi | 3:80228f6bc21a | 10 | AnalogIn temp_in(p19); |
kumajoi | 3:80228f6bc21a | 11 | AnalogIn humid_in(p18); |
kumajoi | 3:80228f6bc21a | 12 | SCP1000 scp1000(p11,p12,p13,p14); |
kumajoi | 3:80228f6bc21a | 13 | |
kumajoi | 3:80228f6bc21a | 14 | void splash(); |
kumajoi | 3:80228f6bc21a | 15 | void splash() |
kumajoi | 3:80228f6bc21a | 16 | { |
kumajoi | 3:80228f6bc21a | 17 | |
kumajoi | 3:80228f6bc21a | 18 | lcd.cls(); |
kumajoi | 3:80228f6bc21a | 19 | lcd.locate(0, 0); |
kumajoi | 3:80228f6bc21a | 20 | lcd.printf("ku-make sensor"); |
kumajoi | 3:80228f6bc21a | 21 | lcd.locate(0, 1); |
kumajoi | 3:80228f6bc21a | 22 | lcd.printf("@kumajoi"); |
kumajoi | 3:80228f6bc21a | 23 | wait(0.3); |
kumajoi | 3:80228f6bc21a | 24 | } |
kumajoi | 3:80228f6bc21a | 25 | |
kumajoi | 3:80228f6bc21a | 26 | int main() |
kumajoi | 3:80228f6bc21a | 27 | { |
kumajoi | 3:80228f6bc21a | 28 | splash(); |
kumajoi | 3:80228f6bc21a | 29 | |
kumajoi | 3:80228f6bc21a | 30 | const char apikey[] = "xxxxxxxxxxxxxxxxxxxxxx"; //Change your apikey |
kumajoi | 3:80228f6bc21a | 31 | const char feed[]= "/feeds/00000"; //Change your feed URL |
kumajoi | 3:80228f6bc21a | 32 | char cms[512]; |
kumajoi | 3:80228f6bc21a | 33 | char recv[512]; |
kumajoi | 3:80228f6bc21a | 34 | int token = 0; |
kumajoi | 3:80228f6bc21a | 35 | EthernetInterface eth; |
kumajoi | 3:80228f6bc21a | 36 | eth.init(); |
kumajoi | 3:80228f6bc21a | 37 | eth.connect(); |
kumajoi | 3:80228f6bc21a | 38 | wait(5); |
kumajoi | 3:80228f6bc21a | 39 | lcd.cls(); |
kumajoi | 3:80228f6bc21a | 40 | printf("IP Address is %s\n\r", eth.getIPAddress()); |
kumajoi | 3:80228f6bc21a | 41 | lcd.printf("IP Address is %s\n\r", eth.getIPAddress()); |
kumajoi | 3:80228f6bc21a | 42 | |
kumajoi | 3:80228f6bc21a | 43 | while (1) { |
kumajoi | 3:80228f6bc21a | 44 | Websocket ws("ws://api.cosm.com:8080/feeds/"); |
kumajoi | 3:80228f6bc21a | 45 | ws.connect(); |
kumajoi | 3:80228f6bc21a | 46 | if(ws.read(recv)) { |
kumajoi | 3:80228f6bc21a | 47 | printf("rcv: %s\r\n", recv); |
kumajoi | 3:80228f6bc21a | 48 | } |
kumajoi | 3:80228f6bc21a | 49 | |
kumajoi | 3:80228f6bc21a | 50 | float r_light, r_temp, r_humid, r_hpa; |
kumajoi | 3:80228f6bc21a | 51 | float light, temp, humid, hpa; |
kumajoi | 3:80228f6bc21a | 52 | |
kumajoi | 3:80228f6bc21a | 53 | light = light_in; |
kumajoi | 3:80228f6bc21a | 54 | temp = temp_in; |
kumajoi | 3:80228f6bc21a | 55 | humid = humid_in; |
kumajoi | 3:80228f6bc21a | 56 | hpa = scp1000.readPressure(); |
kumajoi | 3:80228f6bc21a | 57 | |
kumajoi | 3:80228f6bc21a | 58 | // If you want, please change the value. |
kumajoi | 3:80228f6bc21a | 59 | r_light = light * 3.3 * 5 / 0.013; |
kumajoi | 3:80228f6bc21a | 60 | r_temp = temp * 3.3 * 100 - 60; |
kumajoi | 3:80228f6bc21a | 61 | r_humid = humid * 3.3 * 100; |
kumajoi | 3:80228f6bc21a | 62 | r_hpa = hpa / 100; |
kumajoi | 3:80228f6bc21a | 63 | |
kumajoi | 3:80228f6bc21a | 64 | |
kumajoi | 3:80228f6bc21a | 65 | lcd.cls(); |
kumajoi | 3:80228f6bc21a | 66 | lcd.locate(0, 0); |
kumajoi | 3:80228f6bc21a | 67 | lcd.putc(0xB5); |
kumajoi | 3:80228f6bc21a | 68 | lcd.putc(0xDD); |
kumajoi | 3:80228f6bc21a | 69 | lcd.putc(0xC4); |
kumajoi | 3:80228f6bc21a | 70 | lcd.putc(0xDE); |
kumajoi | 3:80228f6bc21a | 71 | lcd.printf("%2.0f",r_temp); |
kumajoi | 3:80228f6bc21a | 72 | lcd.putc(0xDf); |
kumajoi | 3:80228f6bc21a | 73 | lcd.putc('C'); |
kumajoi | 3:80228f6bc21a | 74 | lcd.printf(" %4.0fhPa", r_hpa); |
kumajoi | 3:80228f6bc21a | 75 | lcd.locate(0, 1); |
kumajoi | 3:80228f6bc21a | 76 | lcd.putc(0xBC); |
kumajoi | 3:80228f6bc21a | 77 | lcd.putc(0xC2); |
kumajoi | 3:80228f6bc21a | 78 | lcd.putc(0xC4); |
kumajoi | 3:80228f6bc21a | 79 | lcd.putc(0xDE); |
kumajoi | 3:80228f6bc21a | 80 | lcd.printf("%2.0f%% ",r_humid); |
kumajoi | 3:80228f6bc21a | 81 | lcd.locate(9, 1); |
kumajoi | 3:80228f6bc21a | 82 | lcd.printf("%4.0f", r_light); |
kumajoi | 3:80228f6bc21a | 83 | lcd.putc(0xD9); |
kumajoi | 3:80228f6bc21a | 84 | lcd.putc(0xB8); |
kumajoi | 3:80228f6bc21a | 85 | lcd.putc(0xBD); |
kumajoi | 3:80228f6bc21a | 86 | |
kumajoi | 3:80228f6bc21a | 87 | myled = 1; |
kumajoi | 3:80228f6bc21a | 88 | // If you want, change the ID, Number of digits. |
kumajoi | 4:2e051261aef7 | 89 | sprintf (cms,"{\"method\" : \"put\",\"resource\" : \"%s\",\"params\" : {},\"headers\" : {\"X-ApiKey\":\"%s\"},\"body\" :{\"version\" : \"1.0.0\",\"datastreams\" : [{\"id\" : \"0\",\"current_value\" : \"%4.0f\"},{\"id\" : \"1\",\"current_value\" : \"%3.0f\"},{\"id\" : \"2\",\"current_value\" : \"%3.0f\"},{\"id\" : \"3\",\"current_value\" : \"%4.0f\"}]},\"token\" : \"0x%d\"}\r\n",feed,apikey,r_light,r_temp,r_humid,r_hpa,token); |
kumajoi | 3:80228f6bc21a | 90 | |
kumajoi | 3:80228f6bc21a | 91 | printf ("%s\r\n",cms); |
kumajoi | 3:80228f6bc21a | 92 | token++; |
kumajoi | 3:80228f6bc21a | 93 | int res = ws.send(cms); |
kumajoi | 3:80228f6bc21a | 94 | myled= 0 ; |
kumajoi | 3:80228f6bc21a | 95 | wait(5); |
kumajoi | 3:80228f6bc21a | 96 | |
kumajoi | 3:80228f6bc21a | 97 | if(ws.read(recv)) { |
kumajoi | 3:80228f6bc21a | 98 | printf("rcv: %s\r\n", recv); |
kumajoi | 3:80228f6bc21a | 99 | wait(1); |
kumajoi | 3:80228f6bc21a | 100 | } |
kumajoi | 3:80228f6bc21a | 101 | |
kumajoi | 3:80228f6bc21a | 102 | ws.close(); |
kumajoi | 3:80228f6bc21a | 103 | // If you want, change the Interval. |
kumajoi | 3:80228f6bc21a | 104 | wait(300); |
kumajoi | 3:80228f6bc21a | 105 | |
kumajoi | 3:80228f6bc21a | 106 | } |
kumajoi | 0:d368632c8662 | 107 | } |