DM9051 通过 MQTT 连接阿里云平台
1. 环境简介
作业平台:Windows
硬体环境:AT-START-F423 (AT32F423) 开发板 + DM9051 开发板
开发工具:Keil uVision 5
调试工具:Wireshark、串口调试助手
连接平台:阿里云_华东 2 (https://www.aliyun.com)
MCU BSP 版本: 2.0.4
系统架构如下:
3. 连接阿里云
3.1 阿里云平台设置
3.1.1 申请阿里云帐号,以阿里云帐号登入后,需开通物联网平台。
3.1.2 以阿里云帐号进入物联网平台,需进行以下作业:
a. 创建产品
b. 添加设备
c. 定义设备的 Topic
d. 获取 MQTT 连接参数
3.1.3 创建产品
初步进入控制台后,需要创建产品。点击左侧设备管理下的產品页面创建新产品。产
品相当於某一类设备的集合,使用者可以根据产品管理其设备等。
产品名称:对产品命名,例如可以填写产品型号。产品名称在帐号内保持唯一。
productKey:阿里云物联网平台为产品颁发的全域唯一识别码。
3.1.4 添加设备
创建完产品之后,為该产品添加设备。进入左侧设备管理页面下的设备,点击添加设
备。
设备证书:添加设备之后,物联网套件为设备颁发的唯一识别码,设备证书用于设备
认证以及设备通信。
deviceName:使用者自订设备唯一识别码,用于设备认证以及设备通信,使用者保证
产品内唯一。
deviceSecret:物联网平台為设备颁发的设备秘钥,用于认证加密,与 deviceName
或者 deviceId 成对出现。
3.1.5 输入设备的 Topic
添加设备之后,可以输入设备的 Topic。点击 Topic 列表。
创建产品之后,物联网平台都会為产品预设定义三个 Topic 类。在添加设备之后,每
个设备都会预设有三个 Topic。如果想要增加、修改、删除 Topic,请到消息通信重新
定义 Topic 类。设备可以基于 Topic 清单中的 Topic 进行 Pub/Sub 通信。
3.1.6 获取 MQTT 连接参数
以上步骤完成后,可在设备信息页面找到 MQTT 连接参数,点击查看,即可获取
MQTT 连接所需之所有参数。
3.2 源码
提供完整 demo code。Source code 包括 LWIP, DNS, MQTT 和 DM9051。
Code name:AT32F423_Fw204_DM9051_lwip212_MQTT_20240117.zip
链接:
https://download.csdn.net/download/qq1667532/89022776
3.3 注意事项
3.3.1 阿里云物联网平台的设置要先完成,否则连线无法成功。
3.3.2 需要在 IoT 平台上撰写脚本(MNS),才能实现同一个产品下设备间的通讯
3.3.3 keepalive 时间需要设置超过 60 秒以上,否则会拒绝连接。
4. MQTT Client 网络设置
在源码 netconf.c 设置 MAC 地址及 IP 地址。
在源码 mqtt_client.c 设置 MQTT 连线参数。
5.1 从网页得到阿里云 MQTT 连线参数:
将 MQTT 连线参数填入预设值,或是开机之后透过 uart command 来设定 1~3:
1. 预设 uart_cid
2. 预设 uart_username
3. 预设 uart_password
4. @main.c 把预设网址填入 : DOMAIN_NAME
6.1 可在阿里云日志服务中查询相关设备的相关消息。
6.2 Demo: AT32F423 (PUB) 把 AT32F423(SUB) 开发板上 LED3 灯亮起。