AT 工程:https://github.com/espressif/esp-at
AT 文档:https://docs.espressif.com/projects/esp-at/zh_CN/latest/

ESP-AT 应用: AT+MQTT 对接阿里云 IoT 物联网平台

本文介绍如何通过 AT 指令对接阿里云 IoT 物联网平台.

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

当前阿里云 IoT 物联网平台 iotkit-embedded 支持三种 MQTT 方式接入阿里云, 分别是:

  • MQTT 基于设备秘钥认证方式 (包括一机一密,一型一密,子设备动态注册)
  • MQTT 基于 ID2 认证方式
  • MQTT 基于 X.509 证书认证方式

本文以 AT+MQTT 基于设备秘钥认证方式,展示一机一密具体过程。

准备

读者需根据 阿里云物联网平台文档中心, 获取 MQTT 连接参数:

  • ClientID
  • 用户名
  • 密码
  • 服务器地址
  • 服务器端口

建议:
多阅读几遍 阿里云物联网平台文档中心, 实际操作, 加深印象, 尤其是下面文档:

MQTT 基于设备秘钥认证方式(一机一密)

当前 AT+MQTT 连接阿里云,是基于设备秘钥认证方式, 基于 TCP, 无证书认证方式。
MQTT 连接需要使用上述准备阶段中的: ClientID, 用户名, 密码, 服务器地址, 服务器端口.

AT+MQTT 对接阿里云指令参考

AT+CWMODE=1
AT+CWJAP="ssid","password"
AT+CIPSNTPCFG=1,8,"ntp1.aliyun.com"
AT+CIPSNTPTIME?

AT+MQTTUSERCFG=0,1,"","","",0,0,""
AT+MQTTUSERNAME=0,"esp-at-001&a1nYdyIs7du"
AT+MQTTPASSWORD=0,"02CE99D94D22B22CD2A6033098B96C0ED157C3F127CFBBE41D5A131A5B0B1886"
AT+MQTTCLIENTID=0,"a1nYdyIs7du.esp-at-001|timestamp=2524608000000\,_v=sdk-c-3.0.1\,securemode=3\,signmethod=hmacsha256\,lan=C\,gw=0\,ext=0|"
AT+MQTTCONN=0,"a1nYdyIs7du.iot-as-mqtt.cn-shanghai.aliyuncs.com",1883,1

AT+MQTTSUB=0,"/a1nYdyIs7du/esp-at-001/user/get",1
AT+MQTTPUB=0,"/a1nYdyIs7du/esp-at-001/user/get","hello\, aliyun!",1,0

注意:

  1. AT+MQTTUSERCFG 中第二参数为 1, 即基于 TCP, 无证书校验的方式
  2. AT+MQTTCLIENTID 中第二参数为准备阶段的 ClientID
  3. AT+MQTTUSERNAME 中第二参数为准备阶段的 用户名
  4. AT+MQTTPASSWORD 中第二参数为准备阶段的 密码
  5. AT+MQTTCONN=0,"<endpoint>",1883,1 中, endpoint 为准备阶段的 服务器名称, 端口 1883 不可更改
  6. 阿里云使用受限的 MQTT topic, 注意阅读 自定义Topic 中介绍
  7. 设备发布到阿里云的 MQTT 消息, 需用户 配置 AMQP 服务端订阅 等方式去接收

示例 LOG

正常交互 LOG 如下:

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

  • Aliyun 物联网平台 LOG
    在这里插入图片描述

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐