由于博客系统迁移,所以有一些文章无法找到,故此在此贴出,以帮助有需要的开发者。
-----------
应用场景:物联网洗衣机项目
传输机制:TCP透传
开发板: Air202 S5
GPRS通信出现的问题:
- 模块TCP连接状态为已连接,但是无法传送数据
- 铁皮干扰GPRS信号
解决方案:
对于问题(1),由于GPRS连接蜂窝网络,长时间没有数据传送蜂窝网络会认为是断开,此时模块的TCP连接没有收到FIN的帧。所以air202模块认为网络还是连接着,但是实际是无法传输数据的;需要做个心跳功能定时发送数据,我现在用的是90秒(官方的说是10分钟,但是我在宁波的网络测试3分钟有的时候都不行),在福州和宁波的网络测试都正常。
对于问题(2),天线需要远离环形的铁皮
为了确保模块运行可靠,应增添容错机制 ——在tcp透传demo的基础上面添加了一个4分钟没有检测到心跳信号就重启模块的检测程序。