天天看点

ESP-01S+AT指令基于MQTT协议连接阿里云步骤一、报文制作二、IP获取 三、连接阿里云

目录

一、报文制作

1、连接报文

构建步骤:

构建后的信息(需转为十六进制):

报文信息(十六进制):

组合后的报文:

2、订阅报文

报文内容:

构建后的订阅报文(十六进制):

3、PIN报文

4、断开连接

二、IP获取

使用MQTT连接的域名组成:

替换后的域名:

域名转IP:

三、连接阿里云

 1、 硬件连接:(与串口)

2、发送AT指令步骤:

前提是已经在阿里云创建好项目产品,完成添加设备及相关设置。

一、报文制作

报文组成:固定报文+可变报文+负载报文。

固定报文:控制类型+剩余长度(所有报文都有)

1、连接报文

报文内容:

        可变报文:协议名+协议级别+连接标志+保持连接时间;

        负载报文:客户端ID+用户名+密码(信息前分别用两字节表示长度)。

        固定报文和可变报文在MQTT手册中查看,基本可以固定不变。因此重点在负载报文。在阿里云官网中有对客户端ID+用户名+密码的说明(去掉timestamp项后):

客户端ID:clientId+"|securemode=3,signmethod=hmacsha1|";

用户名:deviceName+"&"+productKey;

密码:clientId12345deviceNamedeviceproductKeypk(示例,其中12345为clientId,device为deviceName,pk为productKey,此密码需要加密后才能使用)

在阿里云创建好的设备信息界面:

ESP-01S+AT指令基于MQTT协议连接阿里云步骤一、报文制作二、IP获取 三、连接阿里云

构建步骤:

1)clientId和deviceName替换为自己设备的DeviceName;

2)productKey替换为自己设备的ProductKey;

3)密码加密:

百度搜索在线加密链接,使用hmacsha1进行加密,密钥是设备信息中的DeviceSecret(点击复制)。

构建后的信息(需转为十六进制):

客户端ID:  NBIOT02|securemode=3,signmethod=hmacsha1|;

用户名:    NBIOT02&a1zqBbogNSH;

密码:       clientIdNBIOT02deviceNameNBIOT02productKeya1zqBbogNSH;

加密后密码:c4fecfa9c70c7cf10797d852723094dfe7c97484(使用该密码);

报文信息(十六进制):

固定报文:10 ??(剩余长度暂定,字节单位)

可变报文:00 04 4D 51 54 54 04 C2 00 64 (保持连接时间64,为100秒)

负载:00 29 4E 42 49 4F 54 30 32 7C 73 65 63 75 72 65 6D 6F 64 65 3D 33 2C 73 69 67 6E 6D 65 74 68 6F 64 3D 68 6D 61 63 73 68 61 31 7C 00 134E 42 49 4F 54 30 32 26 61 31 7A 71 42 62 6F 67 4E 53 48 00 28 63 34 66 65 63 66 61 39 63 37 30 63 37 63 66 31 30 37 39 37 64 38 35 32 37 32 33 30 39 34 64 66 65 37 63 39 37 34 38 34

组合后的报文:

10 74 00 04 4D 51 54 54 04 C2 00 64 00 29 4E 42 49 4F 54 30 32 7C 73 65 63 75 72 65 6D 6F 64 65 3D 33 2C 73 69 67 6E 6D 65 74 68 6F 64 3D 68 6D 61 63 73 68 61 31 7C 00 13 4E 42 49 4F 54 30 32 26 61 31 7A 71 42 62 6F 67 4E 53 48 00 28 63 34 66 65 63 66 61 39 63 37 30 63 37 63 66 31 30 37 39 37 64 38 35 32 37 32 33 30 39 34 64 66 65 37 63 39 37 34 38 34

2、订阅报文

报文内容:

        固定报文:82 ??(剩余长度暂定,字节单位);

        可变报文:报文标识符00 0A(固定);

        负载报文:长度(两字节表示)+订阅主题+服务质量;

ESP-01S+AT指令基于MQTT协议连接阿里云步骤一、报文制作二、IP获取 三、连接阿里云

订阅选择的主题:/sys/a1zqBbogNSH/NBIOT02/thing/service/property/set;

服务质量 01;

构建后的订阅报文(十六进制):

82 38 00 0A 00 33 2F 73 79 73 2F 61 31 7A 71 42 62 6F 67 4E 53 48 2F 4E 42 49 4F 54 30 32 2F 74 68 69 6E 67 2F 73 65 72 76 69 63 65 2F 70 72 6F 70 65 72 74 79 2F 73 65 74 01

3、PIN报文

每隔一段时间发送一个PIN报文,用于保持设备与服务器的连接。

报文内容:C0 00 (仅有固定报文)

服务器回复:D0 00 表示发送成功。

4、断开连接

报文:E0 00 (仅有固定报文)

二、IP获取

使用MQTT连接的域名组成:

${YourProductKey}.iot-as-mqtt.${YourRegionId}.aliyuncs.com:1883

说明:

        ${YourProductKey}:请替换为设备所属产品的ProductKey;

        ${YourRegionId}:请替换为您的物联网平台设备所在地域代码;

        1883:端口号;

地域代码列表:

ESP-01S+AT指令基于MQTT协议连接阿里云步骤一、报文制作二、IP获取 三、连接阿里云

替换后的域名:

a1zqBbogNSH.iot-as-mqtt.cn-shanghai.aliyuncs.com

域名转IP:

Windows下:win+r->输入cmd->打开DOS窗口->输入命令nslookup +域名->回车。

ESP-01S+AT指令基于MQTT协议连接阿里云步骤一、报文制作二、IP获取 三、连接阿里云

IP:47.103.191.238

三、连接阿里云

 1、 硬件连接:(与串口)

       VCC--- 3.3V

       GND---GND

       TX ---  RX

       RX ---- TX

       EN---- 3.3V

2、发送AT指令步骤:

注意指令不要含有空格符!!!

1)AT+CWMODE=1    //配置为station模式

2)AT+CWJAP_DEF="wifi名","密码"  //连接wifi

3)AT+CIPMUX=0      //开启单链接

4)AT+CIPSTART="TCP","47.103.191.238",1883  //连接TCP服务器,需要快速发送后续指令

5)AT+CIPMODE=1    //开启透传

6)AT+CIPSEND  //开始发送信息

发送AT+CIPSEND指令等待回复“>”后即可发送连接报文和订阅报文(十六进制发送)。

发送连接报文:

ESP-01S+AT指令基于MQTT协议连接阿里云步骤一、报文制作二、IP获取 三、连接阿里云

回复(需要勾选16进制显示):

ESP-01S+AT指令基于MQTT协议连接阿里云步骤一、报文制作二、IP获取 三、连接阿里云

阿里云设备显示在线:

ESP-01S+AT指令基于MQTT协议连接阿里云步骤一、报文制作二、IP获取 三、连接阿里云

发送订阅报文:

ESP-01S+AT指令基于MQTT协议连接阿里云步骤一、报文制作二、IP获取 三、连接阿里云

APP端控制,服务端发布消息成功:

ESP-01S+AT指令基于MQTT协议连接阿里云步骤一、报文制作二、IP获取 三、连接阿里云

继续阅读