MQTT协议是物联网上非常常用的一个协议,作为客户端一般可以支持订阅和发布两种动作中至少一种,安信可NB-IoT模块的AT指令集中将两种动作分别使用AT+ECMTSUB和AT+ECMTPUB实现了消息的订阅和发布。
在我之前的计划中,安信可NB-IoT模块需要将环境监控信息发往服务器,因此只需要AT+ECMTPUB功能就可以了,为了配合调试,我使用了Python下的paho-mqtt模块,在电脑上订阅对应主题。
选择Internet上免费的mqtt服务平台 broker.emqx.io。
一般来说,MQTT客户端在连接环节需要5个基本参数,包括连接地址(Host)、端口(Port)、clientID(MQTT client ID)、用户ID(Username)、token(Password)。而在这个平台上,可以使用无需用户名密码(或者写成“”),直接订阅或者发布消息。
在电脑上安装mqtt方法只需要一条命令:
pip3 install paho-mqtt
关于paho-mqtt模块的具体使用和例程可以参考
https://vimsky.com/examples/detail/python-module-paho.mqtt.client.html
在这里不展开。
在电脑上执行订阅/test的主题消息,其代码如下:
/test作为常用的主题名,订阅后可能会有服务器记录的其它消息输出,比如我使用时出现了hello,可以不用管它。
执行上述代码后,不关闭窗口,可以一直监控主题为/test的消息。
如之前文中所述,我板上的CH340不可用,所以另接了uart接口,为了调试方便,我直接通过python写脚本来进行输出调试。
执行代码后,可以看到全部AT指令都成功了。
在电脑订阅的消息端可以看到
其中tobot就是刚才通过AT指令集发布的消息。
引用: Jacktang 发表于 2021-12-27 07:17 AT+ECMTPUB功能和用了Python下的paho-mqtt模块,有什么不同呢
at指令集和paho-mqtt模块功能上可以做到类似,但at指令集相对简单,两者都支持pub(发布)和sub(订阅)。
在这个试验中,我使用的NB-Iot模块做发布,paho-mqtt做订阅
后续也是希望让NB-IoT模块来读传感器,电脑来显示。
引用: tobot 发表于 2021-12-27 13:10 at指令集和paho-mqtt模块功能上可以做到类似,但at指令集相对简单,两者都支持pub(发布)和sub(订阅) ...
好 ,明白了。