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.
Diff: main.cpp
- Revision:
- 0:d368632c8662
- Child:
- 1:de9966da02f1
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/main.cpp Thu Dec 06 17:44:24 2012 +0000 @@ -0,0 +1,104 @@ +#include "mbed.h" +#include "TextLCD.h" +#include "SCP1000.h" +#include "EthernetInterface.h" +#include "Websocket.h" + +DigitalOut myled(LED1); +TextLCD lcd(p24, p25, p26, p27, p28, p29, p30);; +AnalogIn light_in(p20); +AnalogIn temp_in(p19); +AnalogIn humid_in(p18); +SCP1000 scp1000(p11,p12,p13,p14); + +void splash(); +void splash() +{ + + lcd.cls(); + lcd.locate(0, 0); + lcd.printf("ku-make sensor"); + lcd.locate(0, 1); + lcd.printf("@kumajoi"); + wait(0.3); +} + +int main() +{ + splash(); + + const char apikey[] = "xxxxxxxxxxxxxxxxxxxxxx"; //your apikey + const char feed[]= "/feeds/00000"; //your feed URL + char cms[512]; + char recv[512]; + int token = 0; + EthernetInterface eth; + eth.init(); + eth.connect(); + wait(5); + lcd.cls(); + printf("IP Address is %s\n\r", eth.getIPAddress()); + lcd.printf("IP Address is %s\n\r", eth.getIPAddress()); + + while (1) { + Websocket ws("ws://api.cosm.com:8080/feeds/"); + ws.connect(); + if(ws.read(recv)) { + printf("rcv: %s\r\n", recv); + } + + float r_light, r_temp, r_humid, r_hpa; + float light, temp, humid, hpa; + + light = light_in; + temp = temp_in; + humid = humid_in; + hpa = scp1000.readPressure(); + + r_light = light * 3.3 * 5 / 0.013; + r_temp = temp * 3.3 * 100 - 60; + r_humid = humid * 3.3 * 100; + r_hpa = hpa / 100; + + + lcd.cls(); + lcd.locate(0, 0); + lcd.putc(0xB5); + lcd.putc(0xDD); + lcd.putc(0xC4); + lcd.putc(0xDE); + lcd.printf("%2.0f",r_temp); + lcd.putc(0xDf); + lcd.putc('C'); + lcd.printf(" %4.0fhPa", r_hpa); + lcd.locate(0, 1); + lcd.putc(0xBC); + lcd.putc(0xC2); + lcd.putc(0xC4); + lcd.putc(0xDE); + lcd.printf("%2.0f%% ",r_humid); + lcd.locate(9, 1); + lcd.printf("%4.0f", r_light); + lcd.putc(0xD9); + lcd.putc(0xB8); + lcd.putc(0xBD); + + myled = 1; + sprintf (cms,"{\"method\" : \"put\",\"resource\" : \"%s\",\"params\" : {},\"headers\" : {\"X-ApiKey\":\"%s\"},\"body\" :{\"version\" : \"1.0.0\",\"datastreams\" : [{\"id\" : \"3\",\"current_value\" : \"%4.0f\"},{\"id\" : \"4\",\"current_value\" : \"%4.0f\"},{\"id\" : \"5\",\"current_value\" : \"%3.0f\"},{\"id\" : \"6\",\"current_value\" : \"%3.0f\"}]},\"token\" : \"0x%d\"}\r\n",feed,apikey,r_hpa,r_light,r_temp,r_humid,token); + //set your ID and value + printf ("%s\r\n",cms); + token++; + int res = ws.send(cms); + myled= 0 ; + wait(5); + + if(ws.read(recv)) { + printf("rcv: %s\r\n", recv); + wait(1); + } + + ws.close(); + wait(300); + + } +} \ No newline at end of file