AT
工程:https://github.com/espressif/esp-at
AT
文档:https://docs.espressif.com/projects/esp-at/zh_CN/latest/
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 固件
按照 编译 ESP-AT 工程文档 重新编译烧写 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
注意:
AT+MQTTUSERCFG
中第二参数为2
, 即基于 TLS, 无证书校验的方式AT+MQTTCLIENTID
中第二参数为准备阶段的ClientID
AT+MQTTUSERNAME
中第二参数为准备阶段的用户名
AT+MQTTPASSWORD
中第二参数为准备阶段的密码
AT+MQTTCONN=0,"<endpoint>",8883,1
中,endpoint
为准备阶段的IoT 中心名称
, 端口8883
不可更改Azure IoT
使用受限的MQTT topic
, 注意阅读Azure IoT 中心文档中介绍- 设备发布到
Azure IoT
的 MQTT 消息, 需用户自己通过开通消息路由等方式去接收
示例 LOG
正常交互 LOG
如下:
-
ESP
设备端LOG
-
Azure IoT
端LOG