[原创] 安信可NB-IoT模组测评——使用MQTT发送消息

tobot   2021-12-25 22:39 楼主

MQTT协议是物联网上非常常用的一个协议,作为客户端一般可以支持订阅和发布两种动作中至少一种,安信可NB-IoT模块的AT指令集中将两种动作分别使用AT+ECMTSUBAT+ECMTPUB实现了消息的订阅和发布。

在我之前的计划中,安信可NB-IoT模块需要将环境监控信息发往服务器,因此只需要AT+ECMTPUB功能就可以了,为了配合调试,我使用了Python下的paho-mqtt模块,在电脑上订阅对应主题。

选择Internet上免费的mqtt服务平台 broker.emqx.io

一般来说,MQTT客户端在连接环节需要5个基本参数,包括连接地址(Host)、端口(Port)、clientIDMQTT 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的主题消息,其代码如下:

image-20211225223837-1.png  

/test作为常用的主题名,订阅后可能会有服务器记录的其它消息输出,比如我使用时出现了hello,可以不用管它。

执行上述代码后,不关闭窗口,可以一直监控主题为/test的消息。

如之前文中所述,我板上的CH340不可用,所以另接了uart接口,为了调试方便,我直接通过python写脚本来进行输出调试。

image-20211225223837-2.png  

执行代码后,可以看到全部AT指令都成功了。

image-20211225223837-3.png  

在电脑订阅的消息端可以看到

image-20211225223837-4.png  

其中tobot就是刚才通过AT指令集发布的消息。

回复评论 (3)

AT+ECMTPUB功能和用了Python下的paho-mqtt模块,有什么不同呢

点赞  2021-12-27 07:17
引用: Jacktang 发表于 2021-12-27 07:17 AT+ECMTPUB功能和用了Python下的paho-mqtt模块,有什么不同呢

at指令集和paho-mqtt模块功能上可以做到类似,但at指令集相对简单,两者都支持pub(发布)和sub(订阅)。

在这个试验中,我使用的NB-Iot模块做发布,paho-mqtt做订阅

后续也是希望让NB-IoT模块来读传感器,电脑来显示。

点赞  2021-12-27 13:10
引用: tobot 发表于 2021-12-27 13:10 at指令集和paho-mqtt模块功能上可以做到类似,但at指令集相对简单,两者都支持pub(发布)和sub(订阅) ...

好 ,明白了。

点赞  2021-12-28 07:18
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复