ESP8266 AT指令连接阿里云物联网平台

模组:ESP-12F   ||   ESP-12S  ||   待补充 ...

平台:阿里云物联网平台

固件:ESP8266 MQTT透传AT固件

目录

一、烧录ESP8266 MQTT透传AT固件

二、部署阿里云物联网平台

三、连接阿里云物联网平台

四、ESP-12F模组烧录固件带来的问题


一、烧录ESP8266 MQTT透传AT固件

下载地址:https://docs.ai-thinker.com/esp8266/sdk

固件说明:推荐下载第二个AT固件,即 ESP8266 MQTT透传AT固件(AT口改为UART0),记得下载使用指导。不过需要提醒大家,这个固件是针对ESP-12S模组开发,应该可以完美运行于ESP-12S模组;但是,我发现在ESP-12F模组中,MQTT指令可以运行,而以前默认AT固件的某些基础命令则无法执行,一直ERRPOR。后面会提及这里。

两个固件都可以下载,区别不大,只是AT指令使用串口不同。如果有探究精神,可以选择ESP8266 MQTT默认透传AT固件,个人觉得那个固件很麻烦,AT指令需要一个串口,log需要一个串口,因为我也没调通那个固件。推荐第二个,只需要一个串口。

ESP8266 AT指令连接阿里云物联网平台_第1张图片

注意,不同模组的烧录参数、连线方式,这里就不细说。烧录成功后,开始测试AT指令连接阿里云物联网平台。

 

二、部署阿里云物联网平台

1. 创建产品  

点击“创建产品”,产品命名为“TestProduct”

ESP8266 AT指令连接阿里云物联网平台_第2张图片

ESP8266 AT指令连接阿里云物联网平台_第3张图片

2. 创建设备  

点击“添加设备”,选择产品为“TestProduct”,设备命名“TestDevice”

ESP8266 AT指令连接阿里云物联网平台_第4张图片

ESP8266 AT指令连接阿里云物联网平台_第5张图片

3. 生成物模型

选择“产品”,选择“功能定义”,选择“编辑草稿”

ESP8266 AT指令连接阿里云物联网平台_第6张图片

添加自定义功能

ESP8266 AT指令连接阿里云物联网平台_第7张图片

ESP8266 AT指令连接阿里云物联网平台_第8张图片

发布上线

ESP8266 AT指令连接阿里云物联网平台_第9张图片

三、连接阿里云物联网平台

说明:阿里云物联网平台有多种连接方式,官方比较推荐使用SDK方式连接,因为这样通信比较安全,官方SDK帮你做了很多处理。作为测试,我们选用开放协议自主接入方式,使用MQTT-TCP连接通信,使用MQTT AT 指令连接上云

文档:https://help.aliyun.com/document_detail/73742.html?spm=a2c4g.11174283.6.593.349f1668tBCTLM

1. MQTT 连接参数的计算(强烈推荐先使用方法3,新手自己推算比较麻烦,示例方法3)

查看产品参数、设备参数

ESP8266 AT指令连接阿里云物联网平台_第10张图片

一键复制,保存在文本中,待用

ESP8266 AT指令连接阿里云物联网平台_第11张图片

方法1:阅读文档,可以自己计算

ESP8266 AT指令连接阿里云物联网平台_第12张图片ESP8266 AT指令连接阿里云物联网平台_第13张图片

Hash在线计算工具:https://1024tools.com/hmac

ESP8266 AT指令连接阿里云物联网平台_第14张图片

 

方法2:使用安信可在线生成工具

在线地址:https://www.ai-thinker.com/service/mqttPassword

工具说明:安信可在线生成工具,默认不使用timestamp连接参数,默认哈希函数 hmasha1

ESP8266 AT指令连接阿里云物联网平台_第15张图片

方法3:使用阿里云物联网平台配置工具

链接:https://pan.baidu.com/s/1SrEbNda0V3abT7EZXaE4sw 
提取码:rfa0 

工具界面:
ESP8266 AT指令连接阿里云物联网平台_第16张图片

参数计算:

ESP8266 AT指令连接阿里云物联网平台_第17张图片

复制下来,保存在文本中,待用

{
  "ProductKey": "a1TGuTWhjR8",
  "DeviceName": "TestDevice",
  "DeviceSecret": "D5JIkQ5iAuhRjJuGbSgGlpYd3mmjOhPX"
}

连接域名:a1TGuTWhjR8.iot-as-mqtt.cn-shanghai.aliyuncs.com:1883

ClientId: 123456|securemode=3,signmethod=hmacsha1,timestamp=789|

Username: TestDevice&a1TGuTWhjR8

Password: 0EE972B6F5075EEFB0569DBC8871D0FE7FABD7C3

2. 阿里云物联网平台的连接

指令查看(下载AT固件的使用指导手册)

ESP8266 AT指令连接阿里云物联网平台_第18张图片

连接过程:

//ESP12F  MQTT AT ALIYUN   2020-06-06

//1.连接上云

AT+RST

AT+RESTORE

AT+CWMODE=1

AT+CIPSNTPCFG=1,8,"ntp1.aliyun.com"

AT+CWJAP="WiFi名字","WiFi密码"

AT+MQTTUSERCFG=0,1,"NULL","用户名","密码",0,0,""

AT+MQTTCLIENTID=0,"ClienId"    //clientId第二个参数注意每个逗号后加分隔符“\”,例如:t|securemode=3\,signmethod=hmacsha1\,

AT+MQTTCONN=0,"连接域名",1883,1    //连接域名中的端口号已经被提到后面了,所以删去“:1883”

//2.断开连接(先别断开,我们还要做通信测试)

AT+MQTTCLEAN=0

参考示例: 

ESP8266 AT指令连接阿里云物联网平台_第19张图片

此时,我们已经成功连接上阿里云物联网平台,可以查看到设备处于在线状态,下面就可以进行通信啦 

ESP8266 AT指令连接阿里云物联网平台_第20张图片

3. 阿里云物联网平台的通信

(1)查看设备的Topic列表,选择物模型通信Topic,可以看到有很多Topic,(当然,你也可以选择自定义Topic)

ESP8266 AT指令连接阿里云物联网平台_第21张图片

(2)打开在线调试,我们可以进行调试真实设备

ESP8266 AT指令连接阿里云物联网平台_第22张图片

(3)打开运行状态,我们可以看到云端设备的实时状态

ESP8266 AT指令连接阿里云物联网平台_第23张图片

(4)下面,开始进行通信测试

//MQTT指令示例: SUB  PUB  

//1. 订阅
AT+MQTTSUB=0,"topic",1 

//2. 发布
AT+MQTTPUB=0,"topic","test",1,0
//Topic列表

//属性设置
/sys/a1TGuTWhjR8/TestDevice/thing/service/property/set
/sys/a1KIUPF4pAV/TestDevice/thing/service/property/set_reply

//属性上报
/sys/a1TGuTWhjR8/TestDevice/thing/event/property/post
/sys/a1TGuTWhjR8/TestDevice/thing/event/property/post_reply

//事件上报
/sys/a1TGuTWhjR8/TestDevice/thing/event/${tsl.event.identifer}/post
/sys/a1TGuTWhjR8/TestDevice/thing/event/${tsl.event.identifer}/post_reply

//服务调用	
/sys/a1TGuTWhjR8/TestDevice/thing/service/${tsl.service.identifer}
/sys/a1TGuTWhjR8/TestDevice/thing/service/${tsl.service.identifer}_reply
//1.订阅设备属性设置

AT+MQTTSUB=0,"/sys/a1TGuTWhjR8/TestDevice/thing/service/property/set",1

++ESP8266    订阅设备属性设置

 

--云端    下发设备属性设置指令

ESP8266 AT指令连接阿里云物联网平台_第24张图片

++ESP8266    接收到设备属性设置指令


 


//2.订阅云端响应属性上报
AT+MQTTSUB=0,"/sys/a1TGuTWhjR8/TestDevice/thing/event/property/post_reply",1


//3.上报设备属性信息

// 上报参考格式:
AT+MQTTPUB=0,"/sys/a1TGuTWhjR8/TestDevice/thing/event/property/post","test",1,0

// 上报JSON格式:
AT+MQTTPUB=0,"/sys/a1TGuTWhjR8/TestDevice/thing/event/property/post","{\"method\":\"thing.service.property.set\"\,\"id\":\"2012934115\"\,\"params\":{\"PowerSwitch\":0}\,\"version\":\"1.0.0\"}",1,0

//注意:JSON格式,,字符串遇到逗号(,)和双引号(“)需要加转义字符


++ESP8266    上报设备属性信息

可以看到上报设备信息错误,因为我们在定义产品时选择的AJSON数据格式

上报数据成功,并且成功接收到云端的反馈信息

ESP8266 AT指令连接阿里云物联网平台_第25张图片

ESP8266 AT指令连接阿里云物联网平台_第26张图片

当上报为"1"时,运行状态实时刷新

ESP8266 AT指令连接阿里云物联网平台_第27张图片

 

四、ESP-12F模组烧录固件带来的问题

笔者发现,烧录了ESP8266 MQTT透传AT固件后,有些基础 AT指令运行失败,可能时裁剪了或者怎么滴,我没有ESP-12S模组,无法查找问题来自哪里,有可能是不能完美适配ESP-12F模组,如下图

ESP8266 AT指令连接阿里云物联网平台_第28张图片

 

但是,通过查看使用指导手册里面的指令,发现还是能满足我们的需求,所以我不是很在意这些,够用就好啊。

另外,如果大家测试完后想恢复出厂默认AT固件,可以下载出厂默认 AT 固件,烧录即可,掌握烧录方法不虚。

ESP8266 AT指令连接阿里云物联网平台_第29张图片

嘿嘿,下一篇:《STM32F103 通过 ESP8266 AT指令连接阿里云物联网平台》  

你可能感兴趣的:(项目开发归档)