相关文章推荐
多情的芒果  ·  Cant figure out how ...·  10 月前    · 
坚韧的柑橘  ·  如何在Visual Studio ...·  11 月前    · 
想出家的墨镜  ·  Python-colormap颜色 – ...·  1 年前    · 
  • AT+MQTTUSERCFG :设置 MQTT 用户属性
  • AT+MQTTCLIENTID :设置 MQTT 客户端 ID
  • AT+MQTTUSERNAME :设置 MQTT 登陆用户名
  • AT+MQTTPASSWORD :设置 MQTT 登陆密码
  • AT+MQTTCONNCFG :设置 MQTT 连接属性
  • AT+MQTTCONN :连接 MQTT Broker
  • AT+MQTTPUB :发布 MQTT 消息(字符串)
  • AT+MQTTPUBRAW :发布 MQTT 消息(二进制)
  • AT+MQTTSUB :订阅 MQTT Topic
  • AT+MQTTUNSUB :取消订阅 MQTT Topic
  • AT+MQTTCLEAN :断开 MQTT 连接
  • MQTT AT 错误码
  • MQTT AT 说明
  • AT+MQTTUSERCFG :设置 MQTT 用户属性

    设置命令

    配置 MQTT 用户属性

    AT+MQTTUSERCFG=<LinkID>,<scheme>,<"client_id">,<"username">,<"password">,<cert_key_ID>,<CA_ID>,<"path">
    
  • 3: MQTT over TLS(校验 server 证书);
  • 4: MQTT over TLS(提供 client 证书);
  • 5: MQTT over TLS(校验 server 证书并且提供 client 证书);
  • 6: MQTT over WebSocket(基于 TCP);
  • 7: MQTT over WebSocket Secure(基于 TLS,不校验证书);
  • 8: MQTT over WebSocket Secure(基于 TLS,校验 server 证书);
  • 9: MQTT over WebSocket Secure(基于 TLS,提供 client 证书);
  • 10: MQTT over WebSocket Secure(基于 TLS,校验 server 证书并且提供 client 证书)。
  • <client_id>:MQTT 客户端 ID,最大长度:256 字节。
  • <username>:用户名,用于登陆 MQTT broker,最大长度:64 字节。
  • <password>:密码,用于登陆 MQTT broker,最大长度:64 字节。
  • <cert_key_ID>:证书 ID,目前 ESP-AT 仅支持一套 cert 证书,参数为 0。
  • <CA_ID>:CA ID,目前 ESP-AT 仅支持一套 CA 证书,参数为 0。
  • <path>:资源路径,最大长度:32 字节。
  • 每条 AT 命令的总长度不能超过 256 字节。
  • 每条 AT 命令的总长度不能超过 256 字节。
  • AT+MQTTUSERCFG 命令也可以设置 MQTT 客户端 ID,二者之间的差别包括:
    • AT+MQTTCLIENTID 命令可以用来设置相对较长的客户端 ID,因为 AT+MQTTUSERCFG 命令的长度受限;
    • 应在设置 AT+MQTTUSERCFG 后再使用 AT+MQTTCLIENTID
    • 每条 AT 命令的总长度不能超过 256 字节。
    • AT+MQTTUSERCFG 命令也可以设置 MQTT 用户名,二者之间的差别包括:
      • AT+MQTTUSERNAME 命令可以用来设置相对较长的用户名,因为 AT+MQTTUSERCFG 命令的长度受限。
      • 应在设置 AT+MQTTUSERCFG 后再使用 AT+MQTTUSERNAME
      • 每条 AT 命令的总长度不能超过 256 字节。
      • AT+MQTTUSERCFG 命令也可以设置 MQTT 密码,二者之间的差别包括:
        • AT+MQTTPASSWORD 可以用来设置相对较长的密码,因为 AT+MQTTUSERCFG 命令的长度受限;
        • 应在设置 AT+MQTTUSERCFG 后再使用 AT+MQTTPASSWORD
        • 设置 MQTT 连接属性

          AT+MQTTCONNCFG=<LinkID>,<keepalive>,<disable_clean_session>,<"lwt_topic">,<"lwt_msg">,<lwt_qos>,<lwt_retain>
          
        • <LinkID>:当前仅支持 link ID 0。
        • <keepalive>:MQTT ping 超时时间,单位:秒。范围:[0,7200]。默认值:0,会被强制改为 120 秒。
        • <disable_clean_session>:设置 MQTT 清理会话标志,有关该参数的更多信息请参考 MQTT 3.1.1 协议中的 Clean Session 章节。
          • 0: 使能清理会话
          • 1: 禁用清理会话
          • <lwt_topic>:遗嘱 topic,最大长度:128 字节。
          • <lwt_msg>:遗嘱 message,最大长度:64 字节。
          • <lwt_qos>:遗嘱 QoS,参数可选 0、1、2,默认值:0。
          • <lwt_retain>:遗嘱 retain,参数可选 0 或 1,默认值:0。
          • <LinkID>:当前仅支持 link ID 0。
          • <host>:MQTT broker 域名,最大长度:128 字节。
          • <port>:MQTT broker 端口,最大端口:65535。
          • <path>:资源路径,最大长度:32 字节。
          • <reconnect>
            • 0: MQTT 不自动重连;
            • 1: MQTT 自动重连,会消耗较多的内存资源。
            • <state>:MQTT 状态:
              • 0: MQTT 未初始化;
              • 1: 已设置 AT+MQTTUSERCFG
              • 2: 已设置 AT+MQTTCONNCFG
              • 3: 连接已断开;
              • 4: 已建立连接;
              • 5: 已连接,但未订阅 topic;
              • 6: 已连接,已订阅过 topic。
              • <scheme>
                • 1: MQTT over TCP;
                • 2: MQTT over TLS(不校验证书);
                • 3: MQTT over TLS(校验 server 证书);
                • 4: MQTT over TLS(提供 client 证书);
                • 5: MQTT over TLS(校验 server 证书并且提供 client 证书);
                • 6: MQTT over WebSocket(基于 TCP);
                • 7: MQTT over WebSocket Secure(基于 TLS,不校验证书);
                • 8: MQTT over WebSocket Secure(基于 TLS,校验 server 证书);
                • 9: MQTT over WebSocket Secure(基于 TLS,提供 client 证书);
                • 10: MQTT over WebSocket Secure(基于 TLS,校验 server 证书并且提供 client 证书)。
                • 通过 topic 发布 MQTT 字符串 消息,若要发布 二进制 消息,请使用 AT+MQTTPUBRAW 命令。

                  AT+MQTTPUB=<LinkID>,<"topic">,<"data">,<qos>,<retain>
                  
                • <LinkID>:当前仅支持 link ID 0。
                • <topic>:MQTT topic,最大长度:128 字节。
                • <length>:MQTT 消息长度,不同 ESP 设备的最大长度不同:
                  • 对于 ESP32 设备:最大长度受到可利用内存的限制;
                  • 对于 ESP8266 设备,最大长度受到可利用内存和 MQTT_BUFFER_SIZE_BYTE 宏的限制。该宏的默认值为 512,可在 build.py menuconfig 中设置它的值,以此更改对最大长度的限制。该宏的值 = 消息的最大长度 + MQTT 报头长度(取决于 topic 名称的长度)。
                  • <qos>:发布消息的 QoS,参数可选 0、1、或 2,默认值:0。
                  • <retain>:发布 retain。
                  • +MQTTSUB:<LinkID>,<state>,<"topic1">,<qos>
                    +MQTTSUB:<LinkID>,<state>,<"topic2">,<qos>
                    +MQTTSUB:<LinkID>,<state>,<"topic3">,<qos>
                    

                    MQTT AT 说明

                  • 一般来说,AT MQTT 命令都会在 10 秒内响应,但 AT+MQTTCONN 命令除外。例如,如果路由器不能上网,命令 AT+MQTTPUB 会在 10 秒内响应,但 AT+MQTTCONN 命令在网络环境不好的情况下,可能需要更多的时间用来重传数据包。
                  • 如果 AT+MQTTCONN 是基于 TLS 连接,每个数据包的超时时间为 10 秒,则总超时时间会根据握手数据包的数量而变得更长。
                  • 当 MQTT 连接断开时,会提示 +MQTTDISCONNECTED:<LinkID> 消息。
                  • 当 MQTT 连接建立时,会提示 +MQTTCONNECTED:<LinkID>,<scheme>,<"host">,port,<"path">,<reconnect> 消息。
  •