我有点明白了使用一些现有的代码上面的工作,但它仍然不是最佳的。这可能对其他人有用。
这是我做过什么:
1)I插口拨一次(初始化期间)
2)后段的循环中运行无限。现在的5秒延迟降低到200毫秒,我加了一些标题,就像这样:
//unsigned long data = random(1000000000000000, 9999999999999999);
LTESerial.print("POST /index.php?data=");
LTESerial.print(data);
LTESerial.print(" HTTP/1.1\r\n");
LTESerial.print("Host: ADDRESS\r\n");
LTESerial.print("Connection: keep-alive\r\n\r\n");
delay(200);
while (getResponse() > 0);
3)原来我WAMP的服务器(PHP)的最大HTTP请求,超时和方面有其局限性为默认喜欢。我不得不在php.ini内增加这些数字(我将它们改为无限制)。
但是,虽然我能够“连续”向我的服务器发送数据,但延迟200毫秒仍然很多。如果可能的话,我希望看到一些与串行通信接近的东西。
另外,查看序列监视器时,我得到:
[...]
408295030
4238727231
3091191349
2815507344
----------->(THEN SUDDENLY)
HTTP/1.1 200 OK
Date: Thu, 02 Jun 2
2900442411
016 19:29:41 GMT
Server: Apache/2.4.17 (Win32) PHP/5.6.15
X-P16
3817418772
Keep-Alive: timeout=5
Connection: Keep-Alive
Content-Type: te
86026031
HTTP/1.1 200 OK
Date: Thu, 02 Jun 2016 19:29:4
3139838298
75272508
[...]
----------->(After 330 iterations/POSTs, I get)
NO CARRIER
NO CARRIER
NO CARRIER
NO CARRIER
所以我的问题是: 1)如何消除200毫秒的延迟呢?
2)如果我的数据点具有不同的大小,则延迟也必须改变。如何动态地做到这一点?
3)为什么它停在330-ish迭代?如果数据只有4位数字,则不会发生这种情况。
4)为什么我突然从服务器得到响应?
我希望有人可以将它用于他们自己的项目,但是这不足以满足我的需求。有任何想法吗?