pdf-icon

Unit MQTT

SKU:U129

描述

UNIT MQTT是一款以太网MQTT通信模块,内嵌W5500以太网芯片, 采用UART通信接口(AT指令控制),集成RJ45自适应10/100M网口。支持4x Topic订阅。具备极低的网络延迟与高稳定性,适合应用于各种工业自动化、安防监控系统、自动测控系统、设备数据上云应用。

产品特性

  • 内嵌W5500以太网芯片
  • RJ45网口 10/100Mbps
  • 以太网MQTT通信
  • 支持4x Topic订阅
  • 低延迟
  • 开发方式:
    • AT指令, UART: 9600bps默认
    • 开发平台: UIFlow, Arduino

包含

  • 1x UNIT MQTT
  • 1x HY2.0-4P线缆(20cm)

应用

  • 远程数据采集/上云

规格参数

规格 参数
模组处理器 ARM  Cortex-M3
通信接口 UART: baud 9600bps 8N1 默认
MQTT 支持4x Topic订阅, 不支持MQTTS
网口 RJ45自适应10/100M网口
延时 延迟`10ms
待机工作电流 40.4mA
净重 22.4g
毛重 27.2g
产品尺寸 72 * 26 * 19 mm
包装尺寸 73 * 35 * 20 mm

管脚映射

M5Core TX(GPIO17) RX(GPIO16) VCC GND
UNIT MQTT RX TX VCC GND

案例程序

Arduino

UIFlow

如何在UIFlow2.0图形化编程平台中使用Unit mqtt以及相关API说明

相关视频

AT指令集

?注意:发送每一条命令的结尾需添加回车换行\r\n`

设置类 AT 指令

AT+NETMAC=MAC 地址``

  • 命令说明: 设置模块的 MAC 地址
  • MAC 地址必须是以下格式: XX-XX-XX-XX-XX-XX
//使用示例
AT+NETMAC=12-34-56-78-90-AB
+NETMAC=OK

AT+NETSTATICIP=IP 地址,子网掩码,网关``

  • 命令说明: 设置模块的静态 IP 地址(AT+NETSTATICIP=IP 地址,子网掩码,网关) ?注意:当 DHCP 功能开启时,静态 IP 的设置将不会被启用brIP 地址`(文本),表示本地的 IP 地址,可以使 IP 地址或者域名`br子网掩码(文本),必须是 IP 地址格式br``网关`(文本),必须是 IP 地址格式
//使用示例
AT+NETSTATICIP="192.168.0.101","255.255.255.0","192.168.0.1"
+NETSTATICIP=OK

AT+NETDHCPEN=1/0``

  • 命令说明: 启动/关闭 DHCP 功能 1/0``br1:开启 DHCP 功能br0:关闭 DHCP 功能
//使用示例
AT+NETDHCPEN=1
+NETDHCPEN=OK

AT+MQCLIENTID=客户端名称``

  • 命令说明: 设置 MQTT 服务器 br``客户端名称``br(文本)MQTT 客户端名称
//使用示例
AT+MQCLIENTID="CLIENT ID"
+MQCLIENTID=OK

AT+MQKEEP=心跳时长``

  • 命令说明: 设置连接到 MQTT 服务器的心跳时间长度br``心跳时长``br自动发送 PINGREQ 包的时间间隔,单位:秒,范围 5~300
//使用示例
AT+MQKEEP=500
+MQKEEP=OK

AT+MQSUBSCRIBE=主题序号,1/0,主题名称,服务质量``

  • 命令说明: 设置向 MQTT 服务器订阅的主题,本模块可以同时向服务器订阅 4 个主题,通过该命令修改订阅主题后不会立即订阅主题或者取消订阅,于下一次连接到 MQTT 时生效br``主题序号数字 1-4 br``1/01 开启该主题的订阅, 0 关闭改主题的订阅,当改参数为 0 时,后面两个参数必须为空br``主题名称(文本)服务质量必须是 0,1,2 其中一个
//使用示例
AT+MQSUBSCRIBE=1,1,"sub",0
+MQSUBSCRIBE=OK

AT+MQSERVER=服务器地址,服务器端口``

  • 命令说明: 设置 MQTT 服务器的地址和端口号br``服务器地址``br(文本),可以使 IP 地址或者域名br``服务器端口数字 0~65535
//使用示例
AT+MQSERVER="xxx.mqttserver.com",1883
+MQSERVER=OK

AT+MQUSERPWD=用户名,密码``

  • 命令说明: br设置用户名和密码用户名(文本)MQTT 用户名br``密码(文本)MQTT 登陆密码
//使用示例
AT+MQUSERPWD="user","123456"
+MQUSERPWD=OK

AT+MQAUTO=1/0``

  • 命令说明: br设置上电时是否直接连接到服务器br``1/00:上电时不直接启动连接, 1:上电时根据配置好的参数直接启动连接
//使用示例
AT+MQAUTO=1
+MQAUTO=OK

AT+MQRESETCFG

  • 命令说明: 设置恢复与 MQTT 相关的出厂设置br
//使用示例
AT+MQRESETCFG
+MQRESETCFG=OK

AT+MQPUBLISH=主题,消息,服务质量``

  • 命令说明: 发布 MQTT 消息br``主题(文本),要发布的消息的主题名称br``消息(文本),要发布的消息,该参数允许的最大长度为 1000br``服务质量QOS,必须是 0,1,2,可以选择不发送该参数,此时 QOS 为 0

AT+BAUD=波特率``

  • 命令说明: 设置串口波特率br``波特率波特率只能是以下的数值/4800/9600/19200/34800/115200/230400
//使用示例
AT+BAUD=115200
+BAUD=OK

AT+SAVE

  • 命令说明: 设置保存参数, 在配置完成MQTT参数后,需要执行SAVE命令, 并且执行一次RESET软复位, 配置才会生效
//使用示例
AT+SAVE
+SAVE=OK

AT+RESET

  • 命令说明: 设置模块软复位, 在配置完成MQTT参数后,需要执行SAVE命令, 并且执行一次RESET软复位, 配置才会生效
//使用示例
AT+RESET
+RESET=OK

查询类 AT 指令

AT

  • 命令说明: 测试与模块通信是否成功, 响应:AT
//使用示例
AT
AT

AT+MQSUBSCRIBE=主题序号?

  • 命令说明: 查询订阅的主题, 响应: +MQSUBSCRIBE=OK:主题序号,开启/关闭,主题名称,服务质量等级``br``主题序号只能是 1~4 其中一个br``开启/关闭为 1 时表示当前订阅开启,为 0 是表示当订阅无效br``主题名称``服务等级质量只能是 0,1,2 其中一个表示 MQTT 服务质量中的 QOS0,QOS1,QOS2
//使用示例
AT+MQSUBSCRIBE=1?
+MQSUBSCRIBE=OK:1,1,"/topic",0

AT+MQAUTO?

  • 命令说明: 查询上电时是否直接启动连接, 响应: +MQAUTO=OK:开启/关闭0:上电时不直接启动连接, 1:上电时根据配置好的参数直接启动连接
//使用示例
AT+MQAUTO?
+MQAUTO=OK:1

AT+NETMAC?

  • 命令说明: 查询模块当前的 MAC 地址, 响应: +NETMAC=OK:MAC 地址 格式为:XX-XX-XX-XX-XX-XX
//使用示例
AT+NETMAC?
+NETMAC=OK:12-34-56-78-90-AB

AT+NETSTATICIP?

  • 命令说明: 查询模块的静态 IP 设置, 响应:+NETSTATICIP=OK:静态 IP 地址,子网掩码,网关
//使用示例
AT+NETSTATICIP?
+NETSTATICIP=OK:"192.168.1.2","255.255.255.0","192.168.1.1"

AT+NETDHCPEN?

  • 命令说明: 查询 DHCP 功能启动/关闭, 响应: +NETDHCPEN=OK:启动/关闭 1:开启 DHCP 功能 , 0:关闭 DHCP 功能
//使用示例
AT+NETDHCPEN?
+NETDHCPEN=OK:1

AT+MQCLIENTID?

  • 命令说明: 查看 MQTT 的客户端名称, 响应:+MQCLIENTID=OK:客户端 IP
//使用示例
AT+MQCLIENTID?
+MQCLIENTID=OK:"clientID" 

AT+MQSERVER?

  • 命令说明: 查询 MQTT 服务器地址和端口号, 响应:+MQSERVER=OK:服务器地址,服务器端口号
//使用示例
AT+MQSERVER?

+MQSERVER=OK:"192.168.1.55",1883

AT+MQUSERPWD?

  • 命令说明: 查询已经设置的 MQTT 服务器的用户名和密码, 响应:+MQUSERPWD=OK:用户名,密码
//使用示例
AT+MQUSERPWD?
+MQUSERPWD=OK:"USER","123456" 

AT+MQKEEP?

  • 命令说明: 查询连接到 MQTT 服务器的心跳间隔时间长度, 响应:+MQKEEP=OK:心跳间隔
//使用示例
AT+MQKEEP?
+MQKEEP=OK:60

AT+BAUD?

  • 命令说明: 查询串口的波特率, 响应: +BAUD=OK:波特率 默认波特率为 9600
//使用示例
AT+BAUD?
+BAUD=OK:9600

AT+VERSION?

  • 命令说明: 查询当前版本号,响应:+VERSION=OK:当前固件版本号
//使用示例
AT+VERSION?
+VERSION=OK:1.0

AT+MQSTATUS?

  • 命令说明: 查询 MQTT 连接中/连接已经断开br响应:+MQSTATUS=OK:连接状态
//使用示例
AT+MQSTATUS?
+MQSTATUS=OK:1

AT+NETIP?

  • 命令说明: 查询模块的当前实际的 IP 地址br响应:+NETIP=OK:IP 地址,子网掩码,网关,DNS 服务器地址
//使用示例
AT+NETIP?
+NETIP=OK:"192.168.2.121","255.255.255.0","192.168.2.1","192.168.2.1"

主动上发的 AT 指令


//网络未连接
+NETUNCONNECT

//MQTT 服务器未连接
+MQUNCONNECT
 
//与 MQTT 服务器连接成功
+MQCONNECT

//接收到主题消息
+MQRECV:`主题`,`长度`,`消息`

指令错误时返回的错误代码


//参数内容错误
ERROR:Error Param

//参数数量不符合要求
ERROR:Error Param Num

//参数的长度过长,每个参数字段要求小于 128 字节(发布消息最大为 1000 字节)
ERROR:Parma is too long

//未能连接到网络
ERROR:Unconnected

//MQTT 服务器通信出错
ERROR:MQTT Connect Fail

//发布消息时服务器未响应(Qos1 和 Qos2)
ERROR:MQTT Publish Fail