Arduino+W5100 通过LeweiClient上传数据,不用再理解http了-乐联网应用
本帖最后由 laoliu1982 于 2013-3-3 10:15 编辑之前用W5100,参考cosm client的程序,上传,感觉对于不了解http的爱好者用起来不是很友好,比如计算content-length的时候,不容易描述清楚,最近把http post的过程封装成了LeweiClient 类库,去掉了类似content-length 的计算过程,终于让数据上传乐联网不用再了解http 的相关细节了。
作者说明:created by aozima(@wuyangyong )for art (RT-Thread)
modifyed by @grissiomfor arduino
代码已经更新到 https://github.com/lewei50/leweiclient可能与这里的不一致,以github上面为准
需要把 LeweiClient 两个文件(leweiclient.c leweiclient.h )放到 librariesLeWei 里并且在 IDE 里引用,USER_KEY需要修改
LeweiClient 下载地址
/*
lewei50 open platform sensor client
This code is in the public domain.
*/
#include <LeweiClient.h>
#include <SPI.h>
#include <Ethernet.h>
#define LW_USERKEY "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
#define LW_GATEWAY "01"
//delay between updates
#define POST_INTERVAL (10*1000)
LeWeiClient *lwc;
const unsigned long postingInterval = 10*1000;
void setup() {
// start serial port:
Serial.begin(9600);
// hope no exception here
lwc = new LeWeiClient(LW_USERKEY, LW_GATEWAY);
}
void loop() {
// read the analog sensor:
//int sensorReading = analogRead(A0);
// if there's incoming data from the net connection.
// send it out the serial port.This is for debugging
// purposes only:
if (lwc) {
Serial.print("*** start data collection ");
lwc->append("BH", 123);
lwc->append("DS1", 456);
Serial.print("*** start either net send ");
lwc->send();
Serial.print("*** stop either net send ");
delay(POST_INTERVAL);
}
}
欢迎更多人使用乐联网平台 :更多技术交流请加入乐为物联技术支持群:59162154 或者 关注我们的新浪微博 @乐为物联 辛苦了,顺求有空做个28j60版的:lol 好强!!! 支持!!!! wasdpkj 发表于 2013-1-17 23:59 static/image/common/back.gif
辛苦了,顺求有空做个28j60版的
这两天就发一个28J60的 编译报错
E:\arduino-1.0.2\libraries\leweiclient\LeweiClient.cpp: In constructor 'LeWeiClient::LeWeiClient(const char*, const char*)':
E:\arduino-1.0.2\libraries\leweiclient\LeweiClient.cpp:51: error: 'rt_kprintf' was not declared in this scope
E:\arduino-1.0.2\libraries\leweiclient\LeweiClient.cpp:55: error: 'rt_kprintf' was not declared in this scope
E:\arduino-1.0.2\libraries\leweiclient\LeweiClient.cpp: In member function 'int LeWeiClient::append(const char*, int)':
E:\arduino-1.0.2\libraries\leweiclient\LeweiClient.cpp:67: error: 'rt_malloc' was not declared in this scope
E:\arduino-1.0.2\libraries\leweiclient\LeweiClient.cpp:89: error: 'rt_realloc' was not declared in this scope
E:\arduino-1.0.2\libraries\leweiclient\LeweiClient.cpp:104: error: 'rt_kprintf' was not declared in this scope
E:\arduino-1.0.2\libraries\leweiclient\LeweiClient.cpp: In member function 'int LeWeiClient::append(const char*, double)':
E:\arduino-1.0.2\libraries\leweiclient\LeweiClient.cpp:115: error: 'rt_malloc' was not declared in this scope
E:\arduino-1.0.2\libraries\leweiclient\LeweiClient.cpp:118: error: 'rt_kprintf' was not declared in this scope
E:\arduino-1.0.2\libraries\leweiclient\LeweiClient.cpp:131: error: 'rt_kprintf' was not declared in this scope
E:\arduino-1.0.2\libraries\leweiclient\LeweiClient.cpp:139: error: 'rt_realloc' was not declared in this scope
E:\arduino-1.0.2\libraries\leweiclient\LeweiClient.cpp:142: error: 'rt_kprintf' was not declared in this scope
E:\arduino-1.0.2\libraries\leweiclient\LeweiClient.cpp:155: error: 'rt_kprintf' was not declared in this scope
E:\arduino-1.0.2\libraries\leweiclient\LeweiClient.cpp: In member function 'int LeWeiClient::send()':
E:\arduino-1.0.2\libraries\leweiclient\LeweiClient.cpp:182: error: 'rt_kprintf' was not declared in this scope
E:\arduino-1.0.2\libraries\leweiclient\LeweiClient.cpp:189: error: 'rt_kprintf' was not declared in this scope
E:\arduino-1.0.2\libraries\leweiclient\LeweiClient.cpp:202: error: 'rt_free' was not declared in this scope 太惭愧了,直接把rt-thread的art板上面跑的给传上来了,已经更新附件,谢谢muggle 封装成库才好用。。。顺便建议,写一下库语法的教程。。。。。 麻烦问一下“LeWeiClient *lwc;”编译的时候总是报错,是怎么胡思hi呢 http不靠谱... 为了服务器偶尔要查询下设备状态就得让设备自己没事一直去轮询...多本末导致啊 alex ,这不是控制用的啊
页:
[1]