ESP-AT 应用: AT+MQTT 对接微软 Azure IoT 云

AT+MQTT 对接微软 Azure IoT 云

本文介绍如何通过 AT 指令对接微软云(Azure IoT).

AT+MQTT 指令说明参考 AT+MQTT 介绍

准备

读者需根据 Azure IoT 中心文档, 获取 MQTT 连接参数:

  • ClientID
  • 用户名
  • 密码
  • IoT 中心名称

建议:
多阅读几遍 Azure IoT 文档, 加深印象, 尤其是下面文档:

MQTT 基于密码方式的 TLS 对接 Azure IoT

当前 AT+MQTT 连接微软云是基于 TLS, 无证书认证方式;
MQTT 连接需要使用上述准备阶段中的: ClientID, 用户名, 密码, IoT 中心名称.

编译烧写 AT 固件

按照 AT README.md 重新编译烧写 AT 固件

AT+MQTT 对接 Azure IoT 指令参考
AT+CWMODE=1
AT+CWJAP="ssid","password"
AT+CIPSNTPCFG=1,8,"ntp1.aliyun.com"
AT+CIPSNTPTIME?

AT+MQTTUSERCFG=0,2,"NULL","NULL","NULL",0,0,""
AT+MQTTCLIENTID=0,"esp-at-chenwu"
AT+MQTTUSERNAME=0,"esp.azure-devices.cn/esp-at-chenwu/?api-version=2018-06-30"
AT+MQTTPASSWORD=0,"SharedAccessSignature sr=esp.azure-devices.cn%2Fdevices%2Fesp-at-chenwu&sig=NDbisVUPd7fXZtOQvfbiq2v8ZDPsZGBvgnp95vWfIGY%3D&se=1577475654"

AT+MQTTCONN=0,"esp.azure-devices.cn",8883,1

AT+MQTTSUB=0,"devices/esp-at-chenwu/messages/devicebound/#",1
AT+MQTTPUB=0,"devices/esp-at-chenwu/messages/events/","hello",1,0

注意:

  1. AT+MQTTUSERCFG 中第二参数为 2, 即基于 TLS, 无证书校验的方式
  2. AT+MQTTCLIENTID 中第二参数为准备阶段的 ClientID
  3. AT+MQTTUSERNAME 中第二参数为准备阶段的 用户名
  4. AT+MQTTPASSWORD 中第二参数为准备阶段的 密码
  5. AT+MQTTCONN=0,"<endpoint>",8883,1 中, endpoint 为准备阶段的 IoT 中心名称, 端口 8883 不可更改
  6. Azure IoT 使用受限的 MQTT topic, 注意阅读Azure IoT 中心文档中介绍
  7. 设备发布到 Azure IoT 的 MQTT 消息, 需用户自己通过开通消息路由等方式去接收

示例 LOG

正常交互 LOG 如下:

  • ESP 设备端 LOG
    在这里插入图片描述

  • Azure IoTLOG
    在这里插入图片描述

发布了57 篇原创文章 · 获赞 76 · 访问量 12万+

猜你喜欢

转载自blog.csdn.net/espressif/article/details/103736743