我使用一个Teensy板(可以用Arduino)连接了Telit LE910 4G LTE模块。虽然我能够使用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上传数据,但我认为上传文件到服务器甚至可能比现在还要花更多的时间。
非常感谢任何帮助!