前言
本文分成两个部分的配置介绍讲解:阿里云配置 ,ESP01配置。至于像STM32单片机之类的连接,只要阿里云与ESP01的通道打通后,STM32无非就是在与ESP01进行串口收发指令与信息,这个有时间的话会在写的。本文的目的主要还是能达到阿里云能与ESP01通信的效果。
准备材料
-
阿里云账号
-
正点原子的串口终端
-
ESP01+配套串口转接器
没有配套的转接器的话,也可以用ESP01和USB转串口模块接线在连接电脑,本质上都是同样的。
阿里云配置
既然要使用阿里云,那么肯定需要有阿里云账号之类的,这种默认需要的就不讲了,默认都是有阿里云账号且登录的。阿里云官网
-
首页搜索,找到物联网平台控制台入口。第一次开启物联平台是要选择同意开启的。
-
第一次开启公共实例也是要选择同意。目前新版的是不计费,不现时,限制数量用于测试用的。(这里我已经开启过了,并且也进行过一些测试了,不然刚创建肯定是0的)
-
点击
设备接入
,添加设备。在新建产品处,设置号名称
,在设置为自定义品类
后,确定就好。标准品种中,有着针对品种设备提取定义好的属性,大家感兴趣的可以在自行查看。 -
步骤3只是创建好了产品,创建完后,还要在产品中添加设备。(侧边栏,或者直接在产品后面,都能跳转到设备页面)
-
完成设备添加后,就可以点击设备,查看连接进行MQTT的关键信息。图中还有设备的DeviceName,在建立链接时需要到,具体看到步骤6。
当阿里云配置完成后,就能拿到MQTT的连接参数
图中的关键参数,
clientld
,username
,passwd
,mqttHostUrl
,port
,在下述客户端进行AT连接时会用到。 -
上述步骤1~5完成了产品,设备的创建及得到MQTT连接参数。但是关于MQTT的主题订阅以及发布,这个是还要创建授权的,非授权的主题交互请求将会被平台处理为无效请求。回退到产品 界面,点击查看 ,在点击Topic 类列表 ,选择自定义Topic ,这里就给出了给产品下的设备能对指定主题进行的发布/订阅的权限。还有需要注意的是,假如要链接主题
/k0yo34u8Cim/${deviceName}/user/main
,不是直接这个地址就行了,而是要把${deviceName}
替换成该产品下设备的名称。比如我们刚才在Demo下创建了一个ESP01,所以说名称就为:ESP01(在设备属性那里也可以查看deviceName,比如步骤5的截图中就有),则链接地址则为:/k0yo34u8Cim/ESP01/user/main
。
上述的阿里云配置步骤不需要百分百同样,只需要完成相关配置就行,达到配置功能就可以了。
ESP01配置
刷MQTT透传AT固件
不在过多展开描述烧录流程了,有相关的链接教程,大家头一次使用可以去参考参考,玩过的想必都知道烧录流程了,就不过多啰嗦了。
MQTT固件地址:安信可科技
AT固件烧录工具及步骤:AT固件烧录教程
AT指令配置及验证
在串口终端发送指令给ESP01S,通常响应或者提交正确都会回复
OK
,错误或者提交错误都会回复ERROR
,在下面就不在过多重复。还有下面的参数只是简单的描述命令的作用,详细的可以查看乐鑫官网的AT 命令集。我会根据我上述配好的阿里云的配置来,在每个命令的后面都给出示例。
步骤1~8是对ESP01(客户端)的配置方面的。步骤9~10就是MQTT常见的 订阅
, 发布
主题的功能了。
-
ESP01S复位
cAT+RST
-
恢复出厂设置
cAT+RESTORE
-
设置工作模式为Station(STA)模式
cAT+CWMODE=1
-
使得自身的NTP(网络时间协议)和阿里云的公共NTP服务器地址时间保持同步
cAT+CIPSNTPCFG=1,8,"ntp1.aliyun.com"
-
连接到指定的无线网络(Wi-Fi)
cAT+CWJAP="Wi-Fi名称","Wi-Fi密码"
-
配置MQTT客户端的用户参数
cAT+MQTTUSERCFG=0,1,"NULL","username","password",0,0,""
c// 示例: // AT+MQTTUSERCFG=0,1,"NULL","ESP01&k0yo34u8Cim","da98f76bc407767677ce894df36426677c131a01e25f86606fc8dc1f227d9bb8",0,0,""
-
设置MQTT客户端的Client ID
每个逗号前加
\
,格式化字符输出,否则会被认为是普通的参数分隔符。cAT+MQTTCLIENTID=0,"ClienID"
c// 示例: // AT+MQTTCLIENTID=0,"k0yo34u8Cim.ESP01|securemode=2\,signmethod=hmacsha256\,timestamp=1711004092669|"
-
建立与MQTT服务器的连接
cAT+MQTTCONN=0,"mqttHostUrl",1883,1
c// 示例: // AT+MQTTCONN=0,"iot-06z00a0w2xecf60.mqtt.iothub.aliyuncs.com",1883,1
-
订阅指定的MQTT主题
注意了主题(topic),在阿里云产品中,得到的通常给出的是这种地址
/k0yo34u8Cim/${deviceName}/user/main
需要把,${deviceName}
替换成设备的名称,假如设备名称为ESP01
,完整的则像这样的/k0yo34u8Cim/ESP01/user/main
。cAT+MQTTSUB=0,"订阅topic",1
c// 示例: // AT+MQTTSUB=0,"/k0yo34u8Cim/ESP01/user/main",1
-
发布消息到指定的MQTT主题
cAT+MQTTPUB=0,"发布topic","AJson格式内容",1,0
c// 示例: // AT+MQTTSUB=0,"/k0yo34u8Cim/ESP01/user/main","{LED}",1,0
串口终端,上述命令的全部演示,可以看到正常情况下,都是OK的。有几个要注意的地方就是,像串口,波特率等要选对,还有要勾上发送新行,每一个AT指令是什么就输入什么,千万不要在后面多一个空格之类的。
效果演示,对已经连接上的客户端设备,阿里云发送消息给ESP01客户端。
工程材料
MQTT透传AT固件+串口调试助手+导出串口调试导出的AT指令(.ini)
链接:https://pan.baidu.com/s/1tQ4WtzTNYUiMBHI_lIjoPA 提取码:3aoz