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.接下来是消息加载
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。您仍然可以连接。 (如果你不知道,如果你知道的话可以忽略它)。
生活日报网·版权声明
本网站所收集的部分公开资料来源于互联网,转载的目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。本站部分作品是由网友自主投稿和发布、编辑整理上传,对此类作品本站仅提供交流平台,不为其版权负责。如果您发现网站上有侵犯您的知识产权的作品,请与我们取得联系,我们会及时修改或删除。
本网站所提供的信息,只供参考之用。本网站不保证信息的准确性、有效性、及时性和完整性。本网站及其雇员一概毋须以任何方式就任何信息传递或传送的失误、不准确或错误,对用户或任何其他人士负任何直接或间接责任。在法律允许的范围内,本网站在此声明,不承担用户或任何人士就使用或未能使用本网站所提供的信息或任何链接所引致的任何直接、间接、附带、从属、特殊、惩罚性或惩戒性的损害赔偿。
【特别提醒】:如您不希望作品出现在本站,可联系我们要求撤下您的作品。邮箱 sunny@sdlife.com.cn