这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 活动中心 » 板卡试用 » 【E103-W12C-TB测评】2.MQTT通讯调试

共2条 1/1 1 跳转至

【E103-W12C-TB测评】2.MQTT通讯调试

高工
2025-04-23 21:36:58     打赏

第1章 使用模块实现MQTT功能

上一篇介绍模块相关的资源和辅助工具,熟悉开发板的基本功能。本篇对模块的MQTT功能进行测试。

1.1 模块MQTT功能测试

在连接开发板的AT串口后,使用瑞萨官方的上位机调试工具测试功能时,在AT指令对话框中出现ERROR:-1,查看手册,表明当前不存在该指令。

image.png

AT窗口中输入“AT+HELP”可以查看当前模块支持的AT指令列表,和瑞萨官方的指令对比下来发现两者的命名规则不同。

image.png

查看模块的AT指令说明文档,可以查看当前不同功能对应的AT指令和指令的使用方法。

1.2 模块连接外部MCUMQTT功能使用和测试

这里选择NUCLEO-F411RE开发板和模块通过串口通讯,为NUCELO-F411RE增加网络功能,实现MQTT应用。RT-Thread提供NUCLEO-F411RE开发板的支持,同时组件中有AT模块,在RT-Thread的基础上,添加额外的指令,可以快速开发AT应用。

1.2.1 创建RT-Thread工程

RT-Thread Studio中创建NUCELO-F411RE工程。

image.png

1.2.2 添加AT组件

image.png

在工程的可视化配置界面,点击“AT客户端”和“ulog日志”组件,图标由灰色变为彩色后,表示组件添加成功。

image.png

在图标的悬浮菜单中点击配置项,进入AT组件的配置界面,设置模块的配置项。

image.png

完成AT组件配置后,使能硬件串口中的uart6作为和开发板进行通讯的串口。

image.png

至此,模块的配置完成。

1.2.3 通过命令行测试AT指令

AT组件中开启了CLI命令行接口,通过这一接口,可以在开发板上直接对模块的AT功能进行测试。在main函数中添加AT初始化函数,指定uart6AT通讯使用的串口。

at_client_init("uart6", 512);

硬件上,模块的AT串口引脚根据原理图为GPIOA4A(TX)GPIOA5A(RX)

image.png

 

NUCLEO-F411REUART6(PA11TxPA12Rx)的配置引脚和硬件上的引脚位置如下。

 

image.png


image.png  

连接硬件,编译工程并下载到NUCLEO-F411RE中,通过串口连接开发板,进入到msh命令行界面。输入“at client”指令,可以进入到AT指令调试的命令行界面。

 

image.png

开发板、PC和手机连接到同一个Wifi网络,从而构成一个MQTT网络拓扑结构。首先,通过“ipconfig”命令行指令确定PCWifi网络的IP地址。

image.png

另外,MQTT测试需要MQTT服务器(Broker)作为信息中转的节点。首先,下载Mosquitto安装包

image.png

image.png

完成安装后,修改mosquitto安装目录下的mosquitto.conf文件。

1.          搜索“# listener port-number[ip address/host name/unix socket path]”文本,在其下一行添加“listener 1883”,用于表示MQTT服务器的监听端口号;

2.          搜索“# allow_anonymous false”,删除“#”注释符,或者在新的一行添加“allow_anonymous false”,用于禁止匿名登录,强制客户端通过凭证连接服务器。

3.          搜索“# passwd_file”,在其下一行添加“password_file pwfile.example”用于指定存储账号名称和密码的文件。

完成上述步骤后,在powershell(由于安装在C盘,需要以管理员身份打开powershell)中执行“./mosquito_passwd -c pwfile.example admin”添加名为admin的账号,同时在弹出的输入框中输入对应的密码。

image.png

重新打开Powershell,应用上述的改动,运行“.\mosquitto -c .\mosquitto.conf -v”来运行MQTT服务器。至此,在PC完成MQTT服务器的建立。

image.png

在手机上安装任意的MQTT工具,用于接收开发板发出的MQTT信息,这里选择MQTT Dashboard作为MQTT客户端工具。

APP中指定消息服务器的配置,指定服务器的地址、登录账户和密码。

image.png

创建切换按钮,订阅topic为“button”的消息。设定ONOFF状态下对应的消息值。具体的配置如下图。

image.png

image.png


通过AT指令建立MQTT客户端的初始化流程如下,通过使用AT组件中的命令行工具,可以在线对图中流程进行调试。

image.png

按照图中的流程,在AT命令行中依次输入对应的AT指令,保证输入正确后,可以完成MQTT客户端的连接。

MQTT初始化.png

完成上述连接后,通过AT指令发布消息,消息的topic为“button”,msg为“button is pressed”或者“button is released

AT命令行中输入移植指令,即可推送MQTT消失到网络中,同时手机APP客户端会根据发送的消息内容,改变控件的状态

发出按键按下的MQTT消息。

pressed_send.gif

发出按键释放的MQTT消息。

released_send.gif

 

1.3 总结

在借助RT-Thread中的AT调试工具,可以快速验证AT指令流的准确性,方便调试。开发板支持MQTT指令,在本地搭建MQTT网络,可以快速实现MQTT原型应用。


 





关键词: E103-W12C-TB     MQTT     调试RT-Th    

院士
2025-04-24 09:43:43     打赏
2楼

使用AT命令就可以 建立 MQTT连接 还真是方便啊


共2条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]