0

我一直在使用 ESP32 S2 作为主机和 Nimbelink 的 Skywire Nano (nrf9160) 作为由串行 AT 命令控制的 LTE 调制解调器编写 AT 客户端,LTE 模块响应迅速并且运行良好。LTE 调制解调器有一个内部 TCP 堆栈,我们使用它通过 HTTP POST 成功地将数据发送到 dweet.io,但我们还没有成功地向私有 MQTT 服务器发送相同的数据。

LTE 模块使用了一种叫做 Socket Dials 的方法,这些是 AT 指令,方便将数据发送到 Web,它基本上包含这三个指令:

  • AT#SOCKET 激活套接字
  • AT#TCPCONN 连接到一个 URL

例子:

at#xtcpconn=3,"node02.myqtthub.com",1883
  • AT#TCPSEND 打开一个 > 提示,您可以在其中输入要发送的任何内容

我不是通信协议专家,因此很难找到发送字符串的正确方法,因为我没有找到使用 TCP 套接字的类似示例。我尝试发送 mosquitto_pub 字符串但没有成功,nimbelink 只有一个使用 HTTP 的示例,我希望有人可以帮助我,或者至少让我朝着正确的方向前进。

at#xsocket=3,1,1 #XSOCKET: 3,6 OK at#xtcpconn=3,"node02.myqtthub.com",1883 #XTCPCONN: 1 OK at#xtcpsend=3

mosquitto_pub -h node02.myqtthub.com -i hub -u user -P 'password' -t topic -m "hello world"#XTCPSEND: 104

OK 袜子:3,HUP

编辑:添加了尝试的 LTE 日志

4

0 回答 0