我将 Telit LE910 4G LTE 模块连接到一个 Teensy 板(Arduino 可以)。虽然我能够使用 HTTP 请求(POST 和 GET)将数据发送到我的 PHP 服务器,但由于服务器响应的必要延迟,我无法发送连续数据:
[...]
// SOCKET DIAL
LTESerial.print("AT#SD=1,0,80,\"SERVER IP\"\r\n");
delay(5000);
// POST
LTESerial.print("POST /server/index.php?data=");
LTESerial.print(random(1000));
LTESerial.print(" HTTP/1.1\r\n");
LTESerial.print("Host: SERVER IP\r\n\r\n");
delay(5000);
while (getResponse() > 0);
这只是一个例子(写在这里),但它在一定程度上说明了我在做什么。上面的代码应该放在一个 while 循环中,这样一旦数据上传到服务器上的 .txt 文件,模块就会重新连接到服务器并 POST 另一个数据点。
显然,我想避免这些延迟并尽可能快地将数据解析到服务器(只要数据可用)。这就是我选择 4G LTE 版本的原因。
调整延迟可能会给我额外的一秒左右,但我的项目包括“实时”绘制大量数据点,所以它对时间非常敏感。
关于如何在 4G 上向服务器发送连续数据流的任何想法?我正在考虑缓冲一些数据点并使用 FTP 上传数据,但我认为将文件上传到服务器甚至可能需要比现在更多的时间。
任何帮助深表感谢!