3

我无法通过以太网屏蔽从我的 Arduino Mega 上传数据到 Cosm。我尝试了其中一个教程示例 ( DatastreamUpload.ino)。我使用了 Cosm 在注册时提供给我的 API 密钥和 feed ID,并将init()函数更改为使用静态 IP 地址,如下所示:

    byte mac[] = {0x90, 0xA2, 0xDA, 0x0D, 0xD3, 0x45 };
    IPAddress ip(192,168,0, 110);
    IPAddress gateway(192,168,0, 1);
    IPAddress subnet(255, 255, 255, 0);

然后:

    Ethernet.begin(mac, ip, gateway, subnet);

这是串行监视器的输出:

读取传感器值 452.00
上传到 Cosm
cosmclient.put 返回 -1

读取传感器值 451.00
上传到 Cosm
cosmclient.put 返回 -1

读取传感器值 378.00
上传到 Cosm
cosmclient.put 返回 -3

读取传感器值 352.00
上传到 Cosm
cosmclient.put 返回 -3

有人对此有解决方案吗?

4

2 回答 2

0

不出所料,你链接到的 ino 看起来 100% 洁净,我很难看到与我使用的不同的东西。

作为预防措施,我会输入 int ret=0; 在循环的开始

我知道您只有一个传感器,但建议您仔细将其识别为 sensorId0

我有一个缓冲区

const int bufferSize = 100; char bufferValue[bufferSize]; CosmDatastream datastreams[] = { CosmDatastream(sensorId0, strlen(sensorId0), DATASTREAM_FLOAT),

完整的瓶子于去年 10 月在 cosm 论坛上发布。

我不使用那个 ip、网关和子网的东西。大概是把水搅浑了。

于 2013-04-25T08:02:26.253 回答
0

目前缺乏这方面的文档,需要查看源代码才能找到。这些错误代码定义HttpClient.h如下:

// The end of the headers has been reached.  This consumes the '\n'
static const int HTTP_SUCCESS =0;
// Could not connect to the server
static const int HTTP_ERROR_CONNECTION_FAILED =-1;
// This call was made when the HttpClient class wasn't expecting it
// to be called.  Usually indicates your code is using the class
// incorrectly
static const int HTTP_ERROR_API =-2;
// Spent too long waiting for a reply
static const int HTTP_ERROR_TIMED_OUT =-3;
// The response from the server is invalid, is it definitely an HTTP
// server?
static const int HTTP_ERROR_INVALID_RESPONSE =-4;
于 2013-04-23T21:51:14.717 回答