我一直在编码一个AT客户端,使用ESP32 S2作为主机,并使用Nimbelink的Skywire Nano(nrf9160)作为由Serial AT Commands控制的LTE调制解调器。LTE模块反应灵敏,并且运行良好。 LTE调制解调器具有一个内部TCP堆栈,我们曾使用它成功地通过HTTP POST将数据发送到dweet.io,但我们并没有成功地将数据发送到私有MQTT服务器。
LTE模块使用一种称为Socket Dials(套接字拨号)的方法,这些是有助于将数据发送到Web的AT命令,它基本上包含以下三个命令:
示例:
at#xtcpconn=3,"node02.myqtthub.com",1883
我不是通信协议专家,所以找到正确的字符串发送方式有点困难,因为我还没有找到使用TCP套接字的类似示例。我已经尝试成功发送mosquitto_pub字符串,并且nimbelink仅提供了一个使用HTTP的示例,我希望有人可以对此提供帮助,或者至少向正确的方向发送。
at#xsocket = 3,1,1 #XSOCKET:3,6 好 at#xtcpconn = 3,“ node02.myqtthub.com”,1883 #XTCPCONN:1 好 at#xtcpsend = 3
mosquitto_pub -h node02.myqtthub.com -i集线器-u用户-P'密码'-t主题-m“ hello world” #XTCPSEND:104
好 袜子:3,HUP
编辑:添加了尝试的LTE日志