WIZ820ioのインターフェースをEthetnetInterfaceのsocket互換に作り直して、cosmへのデータを送信しています。
cosmのベータ版ではあるが、httpプロトコルではなくてtcpプロトコルにJSON形式を載せています。
更に、DNSやDHCPを使わずにIPアドレス固定で接続することも可能です。
下のグラフは一週間の大気圧センサの値です。
あまり精度はよくないが先週末からの低気圧が通過したのがわかります。
参考:
Socket Server
https://cosm.com/docs/beta/socket_server/
IP Addresses
https://cosm.com/docs/v2/ip_addresses.html
#include "mbed.h" #include "WIZ820ioInterface.h" #include "MPL115A1.h" SPI spi(PTD2,PTD3,PTD1); // SPI_0 MPL115A1 bar(spi, PTA13); // spi, cs WIZ820ioInterface eth(&spi,PTD0,PTD5); // spi, cs, reset #define qq(...) #__VA_ARGS__ const char* format = qq( { "method" : "put", "resource" : "/feeds/12345678", "headers" : {"X-ApiKey":"APIKEYAPIKEYAPIKEYAPIKEYAPIKEYAPIKEYAPIKEYAPIKEY"}, "body" : { "datastreams" : [ {"id":"6", "current_value":"%.2f"}, {"id":"7", "current_value":"%.2f"} ] } } ); void cosm() { char buf[512]; snprintf(buf, sizeof(buf), format, bar.readPressure() * 10, bar.readTemperature()); TCPSocketConnection sock; sock.set_blocking(false); int ret = sock.connect("173.203.98.29", 8081); // cosm tcp server if (ret < 0) { return; } sock.send(buf, strlen(buf)); } int main() { eth.init(); eth.connect(); while(1) { cosm(); wait_ms(30*1000); } }
(2013/4/12)
---
0 件のコメント:
コメントを投稿