ESP8266连接阿里云物联网平台:本科毕业设计实战指南与步骤分享

我最近一直在做我的毕业设计。毕竟我已经本科4年了,作为计算机嵌入式专业的学生,​​我也在嵌入式实验室学习了三四年。我不想欺骗自己,所以我准备做好工作。最近,我突然决定将硬件连接到云平台,使用的是通用的ESP8266,因此我开始在阿里云上工作。花了两天时间,终于调试完成。我简单分享一下步骤。希望对第一次接触阿里云物联网平台的同学有所帮助。前提是你需要了解ESP8266的基本AT命令,了解MQTT协议,阿里云基础知识,否则每一步都会很迷茫。

1. 向阿里云注册创建设备并获取设备三元组。

1. 注册阿里云、钉钉、支付宝。实名认证后,进入IoT平台(自行查找,随着不断升级位置可能会改变)

2.点击进入公有实例

3.创建一个新产品(全部默认即可,即:直连设备、wifi、ICA)

4.选择您创建的产品,点击右侧的设备管理

5.进入后点击添加设备即可创建自己的设备。这是D001(目前显示为离线,因为我已经连接过了,刚创建后应该是处于非活动状态),然后点击右侧查看设备属性。

6、在设备信息界面点击查看,查看并获取设备的三元组

这个三元组是连接阿里云的重要信息。您可以一键复制进行备份。

2.准备连接阿里云并生成消息

这里仅演示连接消息。消息转换并不复杂。你只需要小心不要犯错误。即使有一点错误,也将无法连接。

1.复制到记事本备用

2、首先明确我们在阿里云创建的设备的IP地址,也就是我们后面要连接的地址(我的是华东2)

*.iot-as-mqtt.cn-shanghai.aliyuncs.com 端口号:1883 “*”是我们设备的ProductKey值

也就是说我的设备地址是:

3.生成MQTT协议的连接消息,首先是固定头加上可变头

固定头+可变头如下: 10 ??00 04 4D 51 54 54 04 C2 00 64

4.接下来是消息加载

阿里云物联网平台app_阿里云物联网平台_阿里云物联网管理平台

load1>>>(DEVICENAME)|securemode=3,signmethod=hmacsha1|

加载2>>>(设备名称)&(产品密钥)

加载 3>>ClientId(DEVICENAME)deviceName(DEVICENAME)productKey(ProductKEY)

加密密钥(DeviceSecret)

用我们的三元组替换括号及其内容。小心不要误删除任何字母。

4.1 3的哈希加密:输入payload 3>>>和DeviceSecret,点击HmacSHA1进行加密,得到一串加密数据

4.2 加密加载1、加载2替换、加载3替换后得到

4.3 将上面得到的三串数据进行转换

转换为十六进制代码,加上转换为十六进制后的报文长度,得到新的负载1,2,3

蓝色框中的两个字节是对应的长度(以十六进制表示)。

4.4 获取最终连接消息

将新获得的净荷消息1、2、3添加到固定加可变消息后面,并将消息的第二个字节(??)替换为消息的总长度(??到的下一个字节的长度)最后一个字节),我的总长度是110,换算成十六进制6E

至此消息已完成。你一定要小心。如果出现单字节错误,您将无法连接。

3、打开网络助手,将ESP8266与串口模块连接起来,准备调试。

淘宝上花5块钱买的ESP8266只需要连接五个引脚:TX、RX、VCC、GND和EN。您可以在这里自己连接它们。

1、连接完成准备调试后,在右侧加载一次AT指令。

详情如下:

AT+RST

AT+CWMODE=1

AT+CWAUTOCONN=0

AT+CWJAP="wifi名称","wifi密码"根据自己的wifi修改

AT+CIP模式=1

AT+CIPMUX=0

AT+CIPSTART="TCP","(ProductKey).iot-as-mqtt.cn-shanghai.aliyuncs.com",1883

注意:将(ProductKey)替换为自己设备对应的值

AT+CIPSEND 进入透传模式。别忘了。不要不耐烦而忘记了。

10 6E 00 04 4D 51 54 54 04 C2************************..... 进入透传后,开始发送连接消息。请注意这一点。它必须以十六进制格式发送。

只要不返回Close就表示成功。由于目前以字符串形式显示,因此无法看到回复 20 02 00 00。

此时,显示模式变为HEX模式。

发送 ping 数据包 C0 00

回复D0 00表示连接正常。

总结

mqtt协议并不难。一旦清楚地理解了消息格式,就可以完成它。手动生成消息时必须小心,不要出错。即使多了一个空间,你也会立刻被阿里云踢出去。当心。

互联网上找到的大多数信息都谈到使用蜂窝连接。设备选择2G模块,通过这种方式连接云平台。我特地测试了一下,没有选择模块,就选择了WIFI。您仍然可以连接。 (如果你不知道,如果你知道的话可以忽略它)。

上一篇:Link SDK环境支持与RAM占用详解:Ubuntu16.04推荐开发环境及FreeRTOS移植指南 下一篇:阿里云推出千里传音播报服务,助力AIoT设备云端一体应用开发
标签:
分享到:

相关文章

    最新文章
    热门
    最新推荐