野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 10899|回复: 7

有做过物联网终端的吗?用STM32与2G模组通过MQTT协议与服务器自动收发数据,有些问...

[复制链接]
发表于 2019-5-31 23:40:19 | 显示全部楼层 |阅读模式
各位,小弟最近正在用STM3F103RCT6与2G模组通过MQTT协议收发数据。STM32F103终端模块(以下简称模块)通过串口向2G模组发AT指令来链接MQTT服务器,并实现收发数据。
现在有些问题请指教:
当模块与MQTT服务器正常链接后,会有心跳包数据(“+CSCON:1”和“+CSCON:0”这两串数据),心跳包貌似没有固定的接收时间,两串数据的间隔时间也不一定。模块链接服务器后,需要发送一些信息给服务器,发送信息成功会返回一串数据,比如:“AT+CGACT   OK”或者“AT+CGACT   ERROR:”;但是“AT+CGACT”与“OK”可能间隔几ms,甚至有些AT指令要等好几秒才能接到返回信息,中间还有可能返回心跳包数据,我是需要判断这些AT的返回信息来执行各种操作的,所以经常因为串口返回的信息部分丢失造成判断失败,模块运行不稳定。
总体来说,就是103串口接收的数据不规律,时间间隔不一定,还有可能中间夹杂其他数据,利用串口开始接收第一个数据计时一段时间(比如3s)后读取串口数据,也有可能无法读取完整的数据,需要判断AT指令是否执行正确往往要判断2G模组返回数据的最后部分。
大家有没有做过类似的项目啊???求分享下经验!!!

回复

使用道具 举报

发表于 2019-6-1 22:49:37 | 显示全部楼层
帮顶
回复

使用道具 举报

发表于 2019-6-3 10:41:29 | 显示全部楼层
呃,大概只能自己想办法处理了咯,把发送部分和接收部分分开处理OK和ERROR设置在发送部分,然后用switch来建立流程,不知道行不行
回复 支持 反对

使用道具 举报

发表于 2019-6-3 15:54:28 | 显示全部楼层
可以试试 RT-Thread 的 at devie 来处理AT命令哈,解析这种类型的AT消息都处理得比较好。
http://packages.rt-thread.org/itemDetail.html?package=at_device

如果用上SAL组件 ,就直接可以用MQTT组件了。


楼主用哪个2G模块?目前已有这些模块可以直接支持,同类型的应该也可以比较方便的对接。
TIM截图20190603155349.png
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-6-3 21:18:28 | 显示全部楼层
aozima 发表于 2019-6-3 15:54
可以试试 RT-Thread 的 at devie 来处理AT命令哈,解析这种类型的AT消息都处理得比较好。
http://packages ...

用的上海移柯的L651模块,请问你用过吗?
回复 支持 反对

使用道具 举报

发表于 2019-6-4 10:31:39 | 显示全部楼层
chenbao 发表于 2019-6-3 21:18
用的上海移柯的L651模块,请问你用过吗?

没用过,你可以对比下看看。
回复 支持 反对

使用道具 举报

发表于 2019-6-4 15:40:42 | 显示全部楼层
aozima 发表于 2019-6-4 10:31
没用过,你可以对比下看看。

老吴还是很有空嘛~
回复 支持 反对

使用道具 举报

发表于 2019-6-13 09:07:02 | 显示全部楼层
能加下好友吗,我想请教一下MQTT移植的问题
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2024-5-7 23:49 , Processed in 0.073602 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表